From fd935cd5516da6b37d747f660fcfadfe630faa04 Mon Sep 17 00:00:00 2001 From: Glenn Vorhes <gavorhes@wisc.edu> Date: Tue, 14 Mar 2017 17:06:53 -0500 Subject: [PATCH] update demos --- test/serve/js/animate.js | 87 +++++++++++++-------------- test/serve/js/animate.js.map | 2 +- test/serve/js/another.js | 6 +- test/serve/js/another.js.map | 2 +- test/serve/js/compare-test.js | 43 +++++++------ test/serve/js/compare-test.js.map | 2 +- test/serve/js/itsMap.js | 84 +++++++++++++------------- test/serve/js/itsMap.js.map | 2 +- test/serve/js/my_little_test.js | 16 ++--- test/serve/js/my_little_test.js.map | 2 +- test/serve/js/range_media.js | 16 ++--- test/serve/js/range_media.js.map | 2 +- test/serve/js/reacttst.js.map | 2 +- test/serve/js/reacttst.tsx | 93 ----------------------------- test/serve/js/simple_map.js | 37 ++++++------ test/serve/js/simple_map.js.map | 2 +- test/serve/js/slider-test.js | 23 +++---- test/serve/js/slider-test.js.map | 2 +- 18 files changed, 161 insertions(+), 262 deletions(-) delete mode 100644 test/serve/js/reacttst.tsx diff --git a/test/serve/js/animate.js b/test/serve/js/animate.js index ac54cb0..d46ec32 100644 --- a/test/serve/js/animate.js +++ b/test/serve/js/animate.js @@ -63,7 +63,7 @@ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 34); +/******/ return __webpack_require__(__webpack_require__.s = 33); /******/ }) /************************************************************************/ /******/ ([ @@ -100,7 +100,7 @@ function provide(namespace) { provide('util'); window['gv'].util.provide = provide; exports.default = provide; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3ZpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUdIOzs7O0dBSUc7QUFDSCxpQkFBaUIsU0FBUztJQUN0QixZQUFZLENBQUM7SUFDYixFQUFFLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDO1FBQ2hDLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwQyxFQUFFLENBQUMsQ0FBQyxPQUFPLFNBQVMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1lBQ2pDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUVELFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFFcEMsa0JBQWUsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTAvMjAxNS5cclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIGNyZWF0ZSBhIG5hbWVzcGFjZSBvbiB0aGUgZ3Ygb2JqZWN0XHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UgdG8gY3JlYXRlXHJcbiAqIEByZXR1cm5zIHtvYmplY3R9IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5hbWVzcGFjZVxyXG4gKi9cclxuZnVuY3Rpb24gcHJvdmlkZShuYW1lc3BhY2Upe1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvd1snZ3YnXSA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgd2luZG93WydndiddID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBhcnRzID0gbmFtZXNwYWNlLnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgbmFtZVNwYWNlID0gd2luZG93WydndiddO1xyXG5cclxuICAgIGZvciAobGV0IGk9MDsgaTwgcGFydHMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGxldCBuZXdPYmplY3QgPSBuYW1lU3BhY2VbcGFydHNbaV1dO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG5ld09iamVjdCA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgICAgIG5hbWVTcGFjZVtwYXJ0c1tpXV0gPSB7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5hbWVTcGFjZSA9IG5hbWVTcGFjZVtwYXJ0c1tpXV07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5hbWVTcGFjZTtcclxufVxyXG5cclxucHJvdmlkZSgndXRpbCcpO1xyXG53aW5kb3dbJ2d2J10udXRpbC5wcm92aWRlID0gcHJvdmlkZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHByb3ZpZGU7XHJcbiJdfQ== /***/ }), /* 1 */ @@ -139,7 +139,7 @@ function makeGuid() { } nm.makeGuid = makeGuid; exports.default = makeGuid; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUd1aWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYWtlR3VpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgscUNBQWdDO0FBQ2hDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFHekI7OztHQUdHO0FBQ0g7SUFDUSxNQUFNLENBQUMsc0NBQXNDO1NBQ3hDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUVqRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztBQUVmLENBQUM7QUFDRCxFQUFFLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUN2QixrQkFBZSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8zLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi9wcm92aWRlJztcclxubGV0IG5tID0gcHJvdmlkZSgndXRpbCcpO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBndWlkcyBhcmUgdXNlZCB0byB1bmlxdWVseSBpZGVudGlmeSBncm91cHMgYW5kIGZlYXR1cmVzXHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IGEgbmV3IGd1aWRcclxuICovXHJcbmZ1bmN0aW9uIG1ha2VHdWlkKCkge1xyXG4gICAgICAgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4J1xyXG4gICAgICAgICAgICAucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbiAoYykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHIgPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwLCB2ID0gYyA9PSAneCcgPyByIDogciAmIDB4MyB8IDB4ODtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxufVxyXG5ubS5tYWtlR3VpZCA9IG1ha2VHdWlkO1xyXG5leHBvcnQgZGVmYXVsdCBtYWtlR3VpZDtcclxuXHJcblxyXG4iXX0= /***/ }), /* 4 */ @@ -158,7 +158,7 @@ var mapPopupCls_1 = __webpack_require__(12); */ exports.mapPopup = new mapPopupCls_1.default(); exports.default = exports.mapPopup; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwUG9wdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBQb3B1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsNkNBQXdDO0FBRXhDOzs7R0FHRztBQUNVLFFBQUEsUUFBUSxHQUFHLElBQUkscUJBQVcsRUFBaUIsQ0FBQztBQUN6RCxrQkFBZSxnQkFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMy8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBNYXBQb3B1cENscyBmcm9tICcuL21hcFBvcHVwQ2xzJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2luZ2xlIHBvcHVwIG9iamVjdCBjYXRjaCBpcyB0aGF0IGl0IGlzIGNvbW1vbiB0byBtdWx0aW1hcCBwYWdlc1xyXG4gKiBAdHlwZSB7TWFwUG9wdXBDbHN9XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgbWFwUG9wdXAgPSBuZXcgTWFwUG9wdXBDbHMoKSBhcyBNYXBQb3B1cENscztcclxuZXhwb3J0IGRlZmF1bHQgbWFwUG9wdXA7XHJcbiJdfQ== /***/ }), /* 5 */ @@ -241,7 +241,7 @@ var MapInteractionBase = (function () { exports.MapInteractionBase = MapInteractionBase; nm.MapInteractionBase = MapInteractionBase; exports.default = MapInteractionBase; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwSW50ZXJhY3Rpb25CYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWFwSW50ZXJhY3Rpb25CYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7O0dBRUc7QUFDSCwyQ0FBc0M7QUFFdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUloQzs7R0FFRztBQUNIO0lBS0k7OztPQUdHO0lBQ0gsNEJBQVksT0FBZTtRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlDQUFJLEdBQUosVUFBSyxNQUFjO1FBQ2YsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUEsQ0FBQztZQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztZQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQU1ELHNCQUFJLG1DQUFHO1FBSlA7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyQixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDJDQUFXO1FBSmY7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM3QixDQUFDOzs7T0FBQTtJQUVEOzs7T0FHRztJQUNILHVDQUFVLEdBQVY7UUFDSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksR0FBRyxHQUFNLElBQUksQ0FBQyxRQUFRLDRCQUF5QixDQUFDO1lBQ3BELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsTUFBTSxHQUFHLENBQUM7UUFDZCxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0NBQVMsR0FBVDtRQUNJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0wseUJBQUM7QUFBRCxDQUFDLEFBOURELElBOERDO0FBOURZLGdEQUFrQjtBQWdFL0IsRUFBRSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0FBQzNDLGtCQUFlLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvOC8yMDE1LlxyXG4gKi9cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnb2xIZWxwZXJzJyk7XHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiBiYXNlIGludGVyYWN0aW9uXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTWFwSW50ZXJhY3Rpb25CYXNlIHtcclxuICAgIF9tYXA6IG9sLk1hcDtcclxuICAgIF9pbml0aWFsaXplZDogYm9vbGVhbjtcclxuICAgIF9zdWJ0eXBlOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBtYXAgaW50ZXJhY3Rpb24gYmFzZVxyXG4gICAgICogQHBhcmFtIHN1YnR5cGUgLSB0aGUgaW50ZXJhY3Rpb24gc3VidHlwZVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihzdWJ0eXBlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9tYXAgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fc3VidHlwZSA9IHN1YnR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBiYXNlIGluaXRpYWxpemVyLCByZXR1cm5zIHRydWUgZm9yIGFscmVhZHkgaW5pdGlhbGl6ZWRcclxuICAgICAqIEBwYXJhbSB0aGVNYXAgLSB0aGUgb2wgTWFwXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIGZvciBhbHJlYWR5IGluaXRpYWxpemVkXHJcbiAgICAgKi9cclxuICAgIGluaXQodGhlTWFwOiBvbC5NYXApe1xyXG4gICAgICAgIGlmICghdGhpcy5faW5pdGlhbGl6ZWQpe1xyXG4gICAgICAgICAgICB0aGlzLl9tYXAgPSB0aGVNYXA7XHJcbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgcmVmZXJlbmNlIHRvIHRoZSBvbCBtYXAgb2JqZWN0XHJcbiAgICAgKiBAcmV0dXJucyB7b2wuTWFwfSB0aGUgbWFwIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBnZXQgbWFwKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgaWYgaXMgaW5pdGlhbGl6ZWRcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBpcyBpbml0aWFsaXplZFxyXG4gICAgICovXHJcbiAgICBnZXQgaW5pdGlhbGl6ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxpemVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgdGhlIGluaXRpYWxpemF0aW9uIHN0YXR1cyBhbmQgdGhyb3cgZXhjZXB0aW9uIGlmIG5vdCB2YWxpZCB5ZXRcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqL1xyXG4gICAgX2NoZWNrSW5pdCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgbGV0IG1zZyA9IGAke3RoaXMuX3N1YnR5cGV9IG9iamVjdCBub3QgaW5pdGlhbGl6ZWRgO1xyXG4gICAgICAgICAgICBhbGVydChtc2cpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhtc2cpO1xyXG4gICAgICAgICAgICB0aHJvdyBtc2c7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgdGhlIGluaXRpYWxpemF0aW9uIHN0YXR1cyBhbmQgdGhyb3cgZXhjZXB0aW9uIGlmIG5vdCB2YWxpZCB5ZXRcclxuICAgICAqL1xyXG4gICAgY2hlY2tJbml0KCl7XHJcbiAgICAgICAgdGhpcy5fY2hlY2tJbml0KCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbm5tLk1hcEludGVyYWN0aW9uQmFzZSA9IE1hcEludGVyYWN0aW9uQmFzZTtcclxuZXhwb3J0IGRlZmF1bHQgTWFwSW50ZXJhY3Rpb25CYXNlO1xyXG4iXX0= /***/ }), /* 6 */ @@ -260,7 +260,7 @@ var mapMoveCls_1 = __webpack_require__(11); */ exports.mapMove = new mapMoveCls_1.default(); exports.default = exports.mapMove; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwTW92ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hcE1vdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUVILDJDQUFzQztBQUV0Qzs7O0dBR0c7QUFFVSxRQUFBLE9BQU8sR0FBRyxJQUFJLG9CQUFVLEVBQUUsQ0FBQztBQUN4QyxrQkFBZSxlQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8zLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IE1hcE1vdmVDbHMgZnJvbSAnLi9tYXBNb3ZlQ2xzJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2luZ2xlIG1hcCBtb3ZlIG9iamVjdCBjYXRjaCBpcyB0aGF0IGl0IGlzIGNvbW1vbiB0byBtdWx0aW1hcCBwYWdlc1xyXG4gKiBAdHlwZSB7TWFwTW92ZUNsc31cclxuICovXHJcblxyXG5leHBvcnQgY29uc3QgbWFwTW92ZSA9IG5ldyBNYXBNb3ZlQ2xzKCk7XHJcbmV4cG9ydCBkZWZhdWx0IG1hcE1vdmU7XHJcbiJdfQ== /***/ }), /* 7 */ @@ -302,7 +302,7 @@ function quickMap(options) { exports.quickMap = quickMap; nm.quickMap = quickMap; exports.default = quickMap; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2tNYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJxdWlja01hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsK0NBQTZEO0FBQzdELDJDQUFzQztBQUN0QyxxQ0FBZ0M7QUFDaEMsdUNBQWtDO0FBRWxDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFOUI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsa0JBQXlCLE9BQTBCO0lBQy9DLElBQUksQ0FBQyxHQUFHLDJCQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsaUJBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEIsa0JBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNiLENBQUM7QUFMRCw0QkFLQztBQUdELEVBQUUsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3ZCLGtCQUFlLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzE1LzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtxdWlja01hcE9wdGlvbnMsIHF1aWNrTWFwQmFzZX0gZnJvbSAnLi9xdWlja01hcEJhc2UnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFwTW92ZSBmcm9tICcuL21hcE1vdmUnO1xyXG5pbXBvcnQgbWFwUG9wdXAgZnJvbSAnLi9tYXBQb3B1cCc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5sZXQgbm0gPSBwcm92aWRlKCdvbEhlbHBlcnMnKTtcclxuXHJcbi8qKlxyXG4gKiBTZXRzIHVwIGEgbWFwIHdpdGggc29tZSBkZWZhdWx0IHBhcmFtZXRlcnMgYW5kIGluaXRpYWxpemVzXHJcbiAqIG1hcE1vdmUgYW5kIG1hcFBvcHVwXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucz17fV0gY29uZmlnIG9wdGlvbnNcclxuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmRpdklkPW1hcF0gbWFwIGRpdiBpZFxyXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMuY2VudGVyPXt9XSBjZW50ZXIgY29uZmlnIG9iamVjdFxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuY2VudGVyLng9LTEwMDE4Mzc4XSBjZW50ZXIgeCwgd2ViIG1lcmNhdG9yIHggb3IgbG9uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5jZW50ZXIueT01NTc0OTEwXSBjZW50ZXIgeSwgd2ViIG1lcmNhdG9yIHkgb3IgbGF0XHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56b29tPTddIHpvb20gbGV2ZWxcclxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSBtaW4gem9vbVxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIG1heCB6b29tXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuYmFzZVN3aXRjaGVyPXRydWVdIGlmIGFkZCBiYXNlIG1hcCBzd2l0Y2hlclxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmZ1bGxTY3JlZW49ZmFsc2VdIGlmIGFkZCBiYXNlIG1hcCBzd2l0Y2hlclxyXG4gKiBAcmV0dXJucyB7b2wuTWFwfSB0aGUgb2wgbWFwXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcXVpY2tNYXAob3B0aW9ucz8gOiBxdWlja01hcE9wdGlvbnMpOiBvbC5NYXAge1xyXG4gICAgbGV0IG0gPSBxdWlja01hcEJhc2Uob3B0aW9ucyk7XHJcbiAgICBtYXBNb3ZlLmluaXQobSk7XHJcbiAgICBtYXBQb3B1cC5pbml0KG0pO1xyXG4gICAgcmV0dXJuIG07XHJcbn1cclxuXHJcblxyXG5ubS5xdWlja01hcCA9IHF1aWNrTWFwO1xyXG5leHBvcnQgZGVmYXVsdCBxdWlja01hcDtcclxuIl19 /***/ }), /* 8 */ @@ -711,7 +711,7 @@ var LayerBase = (function () { exports.LayerBase = LayerBase; nm.LayerBase = LayerBase; exports.default = LayerBase; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMEVBQTRFO0FBQzVFLDJDQUFzQztBQUV0Qyw2Q0FBd0M7QUFDeEMsMEJBQTZCO0FBRTdCLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFtQjdCOzs7R0FHRztBQUNIO0lBMEJJOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsbUJBQVksR0FBVyxFQUFFLE9BQThCO1FBQTlCLHdCQUFBLEVBQUEsWUFBOEI7UUFDbkQsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFzQixDQUFDO1FBRTVDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxhQUFhLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBR2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxPQUFPLENBQUMsTUFBTSxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUN2RSxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sT0FBTyxDQUFDLGNBQWMsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDbkcsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxjQUFjLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBRWxHLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxrQkFBUSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLGVBQWUsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMs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QixDQUFDOzs7T0FBQTtJQUVTLDhCQUFVLEdBQXBCO1FBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUNMLGdCQUFDO0FBQUQsQ0FBQyxBQXhaRCxJQXdaQztBQXhacUIsOEJBQVM7QUEwWi9CLEVBQUUsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0FBQ3pCLGtCQUFlLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHpvb21SZXNvbHV0aW9uQ29udmVydCBmcm9tICcuLi9vbEhlbHBlcnMvem9vbVJlc29sdXRpb25Db252ZXJ0JztcclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCBtYWtlR3VpZCBmcm9tICcuLi91dGlsL21ha2VHdWlkJztcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckJhc2VPcHRpb25ze1xyXG4gICAgaWQ/OiBzdHJpbmc7XHJcbiAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgb3BhY2l0eT86IG51bWJlcjtcclxuICAgIHZpc2libGU/OiBib29sZWFuO1xyXG4gICAgbWluWm9vbT86IG51bWJlcjtcclxuICAgIG1heFpvb20/OiBudW1iZXI7XHJcbiAgICBwYXJhbXM/OiBhbnk7XHJcbiAgICB6SW5kZXg/OiBudW1iZXI7XHJcbiAgICBsb2FkQ2FsbGJhY2s/OiBGdW5jdGlvbjtcclxuICAgIGxlZ2VuZENvbGxhcHNlPzogYm9vbGVhbjtcclxuICAgIGxlZ2VuZENoZWNrYm94PzogYm9vbGVhbjtcclxuICAgIGxlZ2VuZENvbnRlbnQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGhlIGJhc2UgbGF5ZXIgY2xhc3NcclxuICogQGFic3RyYWN0XHJcbiAqL1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGF5ZXJCYXNlIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgX2xlZ2VuZENoZWNrYm94OiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF91cmw6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBfb3BhY2l0eTogbnVtYmVyO1xyXG4gICAgcHJvdGVjdGVkIF9taW5ab29tOiBudW1iZXI7XHJcbiAgICBwcm90ZWN0ZWQgX21heFpvb206IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCBfdmlzaWJsZTogYm9vbGVhbjtcclxuICAgIHByb3RlY3RlZCBfbG9hZGVkOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF96SW5kZXg6IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCBfbGVnZW5kQ29udGVudDogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIF9wYXJhbXM6IGFueTtcclxuICAgIHByb3RlY3RlZCBfaWQ6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBfbmFtZTogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIF9zb3VyY2U6IG9sLnNvdXJjZS5Tb3VyY2U7XHJcbiAgICBwcm90ZWN0ZWQgX2FuaW1hdGU6IGJvb2xlYW47XHJcbiAgICBwcm90ZWN0ZWQgX2xlZ2VuZENvbGxhcHNlOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF9tYXhSZXNvbHV0aW9uOiBudW1iZXI7XHJcbiAgICBwcm90ZWN0ZWQgX21pblJlc29sdXRpb246IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCAgXyRsZWdlbmREaXY6IEpRdWVyeTtcclxuICAgIGxvYWRDYWxsYmFjazogRnVuY3Rpb247XHJcbiAgICBwcm90ZWN0ZWQgX29sTGF5ZXI6IG9sLmxheWVyLkxheWVyO1xyXG4gICAgcHJvdGVjdGVkIF9hcHBseUNvbGxhcHNlQ2FsbGVkOiBib29sZWFuO1xyXG5cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYmFzZSBsYXllciBmb3IgYWxsIG90aGVyc1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIHVybCBmb3Igc291cmNlXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmlkPW1ha2VHdWlkKCldIC0gbGF5ZXIgaWRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5uYW1lPVVubmFtZWQgTGF5ZXJdIC0gbGF5ZXIgbmFtZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm9wYWNpdHk9MV0gLSBvcGFjaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnZpc2libGU9dHJ1ZV0gLSBkZWZhdWx0IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5ab29tPXVuZGVmaW5lZF0gLSBtaW4gem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIC0gbWF4IHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnBhcmFtcz17fV0gLSB0aGUgZ2V0IHBhcmFtZXRlcnMgdG8gaW5jbHVkZSB0byByZXRyaWV2ZSB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56SW5kZXg9MF0gLSB0aGUgeiBpbmRleCBmb3IgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy5sb2FkQ2FsbGJhY2tdIC0gZnVuY3Rpb24gdG8gY2FsbCBvbiBsb2FkLCBjb250ZXh0IHRoaXMgaXMgdGhlIGxheWVyIG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb2xsYXBzZT1mYWxzZV0gLSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGJlIGluaXRpYWxseSBjb2xsYXBzZWRcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ2hlY2tib3g9dHJ1ZV0gLSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGhhdmUgYSBjaGVja2JveCBmb3IgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb250ZW50PXVuZGVmaW5lZF0gLSBhZGRpdGlvbmFsIGNvbnRlbnQgdG8gYWRkIHRvIHRoZSBsZWdlbmRcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IodXJsOiBzdHJpbmcsIG9wdGlvbnM6IExheWVyQmFzZU9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9IGFzIExheWVyQmFzZU9wdGlvbnM7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdXJsICE9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB0aHJvdyAnSW52YWxpZCBVUkwnO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl91cmwgPSB1cmw7XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9wYXJhbXMgPSB0eXBlb2Ygb3B0aW9ucy5wYXJhbXMgPT0gJ29iamVjdCcgPyBvcHRpb25zLnBhcmFtcyA6IHt9O1xyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbGxhcHNlID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kQ29sbGFwc2UgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5sZWdlbmRDb2xsYXBzZSA6IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENoZWNrYm94ID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kQ2hlY2tib3ggPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5sZWdlbmRDaGVja2JveCA6IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuaWQgPSBvcHRpb25zLmlkIHx8IG1ha2VHdWlkKCk7XHJcbiAgICAgICAgdGhpcy5fbmFtZSA9IG9wdGlvbnMubmFtZSB8fCAnVW5uYW1lZCBMYXllcic7XHJcbiAgICAgICAgdGhpcy5hbmltYXRlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IHR5cGVvZiBvcHRpb25zLm9wYWNpdHkgPT0gJ251bWJlcicgPyBvcHRpb25zLm9wYWNpdHkgOiAxO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fb3BhY2l0eSA+IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5fb3BhY2l0eSA9IDE7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9vcGFjaXR5IDwgMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9vcGFjaXR5ID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB0eXBlb2Ygb3B0aW9ucy52aXNpYmxlID09PSAnYm9vbGVhbicgPyBvcHRpb25zLnZpc2libGUgOiB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLl9zb3VyY2UgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByb3RlY3RlZFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuX21heFJlc29sdXRpb24gPSB6b29tUmVzb2x1dGlvbkNvbnZlcnQuem9vbVRvUmVzb2x1dGlvbihvcHRpb25zLm1pblpvb20pO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5fbWF4UmVzb2x1dGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5fbWF4UmVzb2x1dGlvbiArPSAwLjAwMDAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9taW5SZXNvbHV0aW9uID0gem9vbVJlc29sdXRpb25Db252ZXJ0Lnpvb21Ub1Jlc29sdXRpb24ob3B0aW9ucy5tYXhab29tKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWluWm9vbSA9IHR5cGVvZiBvcHRpb25zLm1pblpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLm1pblpvb20gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbWF4Wm9vbSA9IHR5cGVvZiBvcHRpb25zLm1heFpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLm1heFpvb20gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fekluZGV4ID0gdHlwZW9mIG9wdGlvbnMuekluZGV4ID09ICdudW1iZXInID8gb3B0aW9ucy56SW5kZXggOiAwO1xyXG5cclxuICAgICAgICB0aGlzLmxvYWRDYWxsYmFjayA9IHR5cGVvZiBvcHRpb25zLmxvYWRDYWxsYmFjayA9PSAnZnVuY3Rpb24nID8gb3B0aW9ucy5sb2FkQ2FsbGJhY2sgOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgfTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgPSAnJztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2xlZ2VuZENoZWNrYm94KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgKz0gYDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiAke3RoaXMudmlzaWJsZSA/ICdjaGVja2VkJyA6ICcnfSBgICtcclxuICAgICAgICAgICAgICAgIGBjbGFzcz1cImxlZ2VuZC1jaGVja1wiIGlkPVwiJHt0aGlzLmlkfS1sZWdlbmQtbGF5ZXItY2hlY2tcIj48c3Bhbj48L3NwYW4+YDtcclxuICAgICAgICAgICAgdGhpcy5fbGVnZW5kQ29udGVudCArPSBgPGxhYmVsIGZvcj1cIiR7dGhpcy5pZH0tbGVnZW5kLWxheWVyLWNoZWNrXCIgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbmFtZVwiPiR7dGhpcy5uYW1lfTwvbGFiZWw+YDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9sZWdlbmRDb250ZW50ICs9IGA8bGFiZWwgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbmFtZVwiPiR7dGhpcy5uYW1lfTwvbGFiZWw+YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuXyRsZWdlbmREaXYgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2FwcGx5Q29sbGFwc2VDYWxsZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9hZGRMZWdlbmRDb250ZW50KHR5cGVvZiBvcHRpb25zLmxlZ2VuZENvbnRlbnQgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5sZWdlbmRDb250ZW50IDogdW5kZWZpbmVkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGJhc2UgbG9hZCBmdW5jdGlvbiwgc2V0cyBfbG9hZGVkID0gdHJ1ZSBpZiBpdCBpcyBub3QgYWxyZWFkeVxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IGlmIGFscmVhZHkgbG9hZGVkXHJcbiAgICAgKi9cclxuICAgIF9sb2FkKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmxvYWRlZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHRoZSBsZWdlbmQgaHRtbCwgYmUgc3VyZSB0byBvbmx5IGFkZCB0byB0aGUgRE9NIG9uY2VcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IGh0bWwgZm9yIGxheWVyIHdyYXBwZWQgaW4gYSBkaXZcclxuICAgICAqL1xyXG4gICAgZ2V0TGVnZW5kRGl2KCkge1xyXG4gICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImxlZ2VuZC1sYXllci1kaXZcIiBpZD1cIiR7dGhpcy5pZH0tbGVnZW5kLWxheWVyLWRpdlwiPiR7dGhpcy5fbGVnZW5kQ29udGVudH08L2Rpdj5gO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBhZGRpdGlvbmFsQ29udGVudCAtIGFkZGl0aW9uYWwgY29udGVudCB0byBhZGQgdG8gbGVnZW5kXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBfYWRkTGVnZW5kQ29udGVudChhZGRpdGlvbmFsQ29udGVudD0nJykge1xyXG5cclxuICAgICAgICBsZXQgYWRkQ29sbGFwc2UgPSBhZGRpdGlvbmFsQ29udGVudC5pbmRleE9mKCc8dWw+JykgPiAtMTtcclxuXHJcbiAgICAgICAgaWYgKGFkZENvbGxhcHNlKSB7XHJcbiAgICAgICAgICAgIGFkZGl0aW9uYWxDb250ZW50ID0gJzxzcGFuIGNsYXNzPVwibGVnZW5kLWl0ZW1zLWV4cGFuZGVyXCIgdGl0bGU9XCJFeHBhbmQvQ29sbGFwc2VcIj4mIzk2NjA7PC9zcGFuPicgKyBhZGRpdGlvbmFsQ29udGVudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgKz0gYWRkaXRpb25hbENvbnRlbnQ7XHJcblxyXG4gICAgICAgIHRoaXMuXyRsZWdlbmREaXYgPSAkKGAjJHt0aGlzLmlkfS1sZWdlbmQtbGF5ZXItZGl2YCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl8kbGVnZW5kRGl2Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5fJGxlZ2VuZERpdi5hcHBlbmQoYWRkaXRpb25hbENvbnRlbnQpO1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5Q29sbGFwc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhZGQgYWRkaXRpb25hbCBjb250ZW50IHRvIHRoZSBsZWdlbmRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbYWRkaXRpb25hbENvbnRlbnQ9XSAtIGFkZGl0b25hbCBjb250ZW50IHRvIGFkZFxyXG4gICAgICovXHJcbiAgICBhZGRMZWdlbmRDb250ZW50KGFkZGl0aW9uYWxDb250ZW50KSB7XHJcbiAgICAgICAgdGhpcy5fYWRkTGVnZW5kQ29udGVudChhZGRpdGlvbmFsQ29udGVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXBwbHlDb2xsYXBzZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5fYXBwbHlDb2xsYXBzZUNhbGxlZCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY29sbGFwc2UgYWxyZWFkeSBhcHBsaWVkJyk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fJGxlZ2VuZERpdiA9ICQoYCMke3RoaXMuaWR9LWxlZ2VuZC1sYXllci1kaXZgKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuXyRsZWdlbmREaXYubGVuZ3RoID4gMCkge1xyXG5cclxuICAgICAgICAgICAgbGV0ICRleHBhbmRlciA9IHRoaXMuXyRsZWdlbmREaXYuZmluZCgnLmxlZ2VuZC1pdGVtcy1leHBhbmRlcicpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCRleHBhbmRlci5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hcHBseUNvbGxhcHNlQ2FsbGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAkZXhwYW5kZXIuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCAkdGhpcyA9ICQodGhpcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICR0aGlzLnNpYmxpbmdzKCd1bCcpLnNsaWRlVG9nZ2xlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy5oYXNDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLnJlbW92ZUNsYXNzKCdsZWdlbmQtbGF5ZXItZ3JvdXAtY29sbGFwc2VkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLmh0bWwoJyYjOTY2MDsnKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5hZGRDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5odG1sKCcmIzk2NTQ7Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2xlZ2VuZENvbGxhcHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJGV4cGFuZGVyLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmljayB0byByZWZyZXNoIHRoZSBsYXllclxyXG4gICAgICovXHJcbiAgICByZWZyZXNoKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNvdXJjZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNvdXJjZS5yZWZyZXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBpZCgpOiBzdHJpbmd7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lkO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBpZChuZXdJZDogc3RyaW5nKXtcclxuICAgICAgICB0aGlzLl9pZCA9IG5ld0lkO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhbmltYXRlKCk6IGJvb2xlYW57XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FuaW1hdGU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGFuaW1hdGUoYW5pbWF0ZTogYm9vbGVhbil7XHJcbiAgICAgICAgdGhpcy5fYW5pbWF0ZSA9IGFuaW1hdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIGxlZ2VuZCBjb250ZW50XHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICovXHJcbiAgICBnZXQgbGVnZW5kQ29udGVudCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbGVnZW5kQ29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgbGVnZW5kIGNvbnRlbnQgZGlyZWN0bHlcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuZXdWYWwgLSBuZXcgY29udGVudFxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICovXHJcbiAgICBzZXQgbGVnZW5kQ29udGVudChuZXdWYWwpIHtcclxuICAgICAgICB0aGlzLl9sZWdlbmRDb250ZW50ID0gbmV3VmFsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtYXAgZ2V0IHBhcmFtc1xyXG4gICAgICogQHR5cGUge29iamVjdH1cclxuICAgICAqL1xyXG4gICAgZ2V0IHBhcmFtcygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IHRoZSBtYXAgZ2V0IHBhcmFtc1xyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IG5ld1BhcmFtcyAtIG5ldyBnZXQgcGFyYW1zXHJcbiAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgKi9cclxuICAgIHNldCBwYXJhbXMobmV3UGFyYW1zKSB7XHJcbiAgICAgICAgdGhpcy5fcGFyYW1zID0gbmV3UGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtaW5pbXVtIHJlc29sdXRpb25cclxuICAgICAqIEB0eXBlIHtudW1iZXJ8Kn1cclxuICAgICAqL1xyXG4gICAgZ2V0IG1pblJlc29sdXRpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pblJlc29sdXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIG1heGltdW0gcmVzb2x1dGlvblxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWF4UmVzb2x1dGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4UmVzb2x1dGlvbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCBtaW4gem9vbVxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWluWm9vbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWluWm9vbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCBtYXggem9vbVxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWF4Wm9vbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4Wm9vbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgdXJsXHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICovXHJcbiAgICBnZXQgdXJsKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91cmw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGxheWVyIHZpc2liaWxpdHlcclxuICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHZpc2liaWxpdHlcclxuICAgICAqL1xyXG4gICAgc2V0IHZpc2libGUodmlzaWJpbGl0eTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuc2V0VmlzaWJsZSh2aXNpYmlsaXR5KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0VmlzaWJsZSh2aXNpYmlsaXR5OiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZpc2liaWxpdHk7XHJcbiAgICAgICAgaWYgKHRoaXMub2xMYXllcikge1xyXG4gICAgICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0VmlzaWJsZSh0aGlzLl92aXNpYmxlKTtcclxuICAgICAgICAgICAgaWYgKHZpc2liaWxpdHkgJiYgIXRoaXMuX2xvYWRlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCB0aGUgbGF5ZXIgb3BhY2l0eVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqL1xyXG4gICAgZ2V0IG9wYWNpdHkoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wYWNpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIGxheWVyIG9wYWNpdHlcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvcGFjaXR5IC0gbGF5ZXIgb3BhY2l0eVxyXG4gICAgICovXHJcbiAgICBzZXQgb3BhY2l0eShvcGFjaXR5KSB7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IG9wYWNpdHk7XHJcbiAgICAgICAgaWYgKHRoaXMub2xMYXllcikge1xyXG4gICAgICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0T3BhY2l0eSh0aGlzLl9vcGFjaXR5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGxheWVyIG5hbWVcclxuICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgKi9cclxuICAgIGdldCBuYW1lKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9uYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IHRoZSBsYXllciBuYW1lXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3TmFtZSAtIHRoZSBuZXcgbmFtZVxyXG4gICAgICovXHJcbiAgICBzZXQgbmFtZShuZXdOYW1lKSB7XHJcbiAgICAgICAgdGhpcy5fbmFtZSA9IG5ld05hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGUgbGF5ZXIgaXMgbG9hZGVkXHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqL1xyXG4gICAgZ2V0IGxvYWRlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBsYXllciBzb3VyY2VcclxuICAgICAqIEB0eXBlIHsqfVxyXG4gICAgICovXHJcbiAgICBnZXQgc291cmNlKCk6IG9sLnNvdXJjZS5Tb3VyY2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNvdXJjZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0U291cmNlKCk6IG9sLnNvdXJjZS5Tb3VyY2V7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgeiBpbmRleFxyXG4gICAgICovXHJcbiAgICBnZXQgekluZGV4KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3pJbmRleDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgeiBpbmRleFxyXG4gICAgICovXHJcbiAgICBzZXQgekluZGV4KG5ld1o6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX3pJbmRleCA9IG5ld1o7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHNldFpJbmRleChuZXdaOiBudW1iZXIpe1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHRoZSB0aGUgb2wgbGF5ZXJcclxuICAgICAqL1xyXG4gICAgZ2V0IG9sTGF5ZXIoKTogb2wubGF5ZXIuTGF5ZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE9sTGF5ZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0T2xMYXllcigpOiBvbC5sYXllci5MYXllcntcclxuICAgICAgICByZXR1cm4gdGhpcy5fb2xMYXllcjtcclxuICAgIH1cclxufVxyXG5cclxubm0uTGF5ZXJCYXNlID0gTGF5ZXJCYXNlO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckJhc2U7XHJcbiJdfQ== /***/ }), /* 9 */ @@ -744,7 +744,7 @@ function definedAndNotNull(input) { } exports.definedAndNotNull = definedAndNotNull; nm.definedAndNotNull = definedAndNotNull; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tEZWZpbmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2hlY2tEZWZpbmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscUNBQWdDO0FBQ2hDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUV0Qzs7OztHQUlHO0FBQ0gseUJBQWlDLEtBQUs7SUFDbEMsWUFBWSxDQUFDO0lBRWIsTUFBTSxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBSkQsMENBSUM7QUFFRCxFQUFFLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztBQUdyQzs7OztHQUlHO0FBQ0gsMkJBQW1DLEtBQVU7SUFDekMsWUFBWSxDQUFDO0lBRWIsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBSkQsOENBSUM7QUFFRCxFQUFFLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcHJvdmlkZSBmcm9tICcuL3Byb3ZpZGUnO1xyXG5sZXQgbm0gPSBwcm92aWRlKCd1dGlsLmNoZWNrRGVmaW5lZCcpO1xyXG5cclxuLyoqXHJcbiAqIGNoZWNrIGlmIHRoZSBpbnB1dCBpcyB1bmRlZmluZWQgb3IgbnVsbFxyXG4gKiBAcGFyYW0gaW5wdXQgLSBpbnB1dCBwb2ludGVyXHJcbiAqIEByZXR1cm5zIHRydWUgdW5kZWZpbmVkIG9yIG51bGxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1bmRlZmluZWRPck51bGwgKGlucHV0KTogYm9vbGVhbntcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG5cclxuICAgIHJldHVybiAodHlwZW9mIGlucHV0ID09PSAndW5kZWZpbmVkJyB8fCBpbnB1dCA9PT0gbnVsbCk7XHJcbn1cclxuXHJcbm5tLnVuZGVmaW5lZE9yTnVsbCA9IHVuZGVmaW5lZE9yTnVsbDtcclxuXHJcblxyXG4vKipcclxuICogY2hlY2sgaWYgdGhlIGlucHV0IGlzIGRlZmluZWQgYW5kIG5vdCBudWxsXHJcbiAqIEBwYXJhbSBpbnB1dCAtIGlucHV0IHBvaW50ZXJcclxuICogQHJldHVybnMgdHJ1ZSBkZWZpbmVkIGFuZCBub3QgbnVsbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZWRBbmROb3ROdWxsIChpbnB1dDogYW55KTogYm9vbGVhbntcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG5cclxuICAgIHJldHVybiAhKHVuZGVmaW5lZE9yTnVsbChpbnB1dCkpO1xyXG59XHJcblxyXG5ubS5kZWZpbmVkQW5kTm90TnVsbCA9IGRlZmluZWRBbmROb3ROdWxsO1xyXG5cclxuIl19 /***/ }), /* 10 */ @@ -903,7 +903,7 @@ var LayerEsriMapServer = (function (_super) { exports.LayerEsriMapServer = LayerEsriMapServer; nm.LayerEsriMapServer = LayerEsriMapServer; exports.default = LayerEsriMapServer; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJFc3JpTWFwU2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJFc3JpTWFwU2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gseUNBQXdEO0FBQ3hELHFEQUF1RDtBQUN2RCxrREFBNkM7QUFDN0MsMkNBQXNDO0FBQ3RDLDhCQUFpQztBQUNqQywwQkFBNkI7QUFFN0IsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQVE3Qjs7O0dBR0c7QUFDSDtJQUF3QyxzQ0FBUztJQUk3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Ba0JHO0lBQ0gsNEJBQVksR0FBRyxFQUFFLE9BQXVDO1FBQXZDLHdCQUFBLEVBQUEsWUFBdUM7UUFBeEQsWUFFSSxrQkFBTSxHQUFHLEVBQUUsT0FBTyxDQUFDLFNBNEJ0QjtRQTNCRyxLQUFJLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3ZDO1lBQ0ksR0FBRyxFQUFFLEtBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLFNBQVMsR0FBRyxLQUFJLENBQUMsR0FBRztZQUMxQyxNQUFNLEVBQUUsT0FBTyxPQUFPLENBQUMsVUFBVSxJQUFJLFdBQVcsR0FBRyxTQUFTLEdBQUcsRUFBQyxNQUFNLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFDO1NBQ2xILENBQ0osQ0FBQztRQUVGLEtBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM5QixNQUFNLEVBQUUsS0FBSSxDQUFDLE9BQXlCO1lBQ3RDLE9BQU8sRUFBRSxLQUFJLENBQUMsT0FBTztZQUNyQixPQUFPLEVBQUUsS0FBSSxDQUFDLE9BQU87WUFDckIsYUFBYSxFQUFFLEtBQUksQ0FBQyxjQUFjO1lBQ2xDLGFBQWEsRUFBRSxL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QUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMi83LzIwMTUuXHJcbiAqL1xyXG5pbXBvcnQge0xheWVyQmFzZSwgTGF5ZXJCYXNlT3B0aW9uc30gZnJvbSAnLi9MYXllckJhc2UnO1xyXG5pbXBvcnQgKiBhcyBlc3JpVG9PbCBmcm9tICcuLi9vbEhlbHBlcnMvZXNyaVRvT2xTdHlsZSc7XHJcbmltcG9ydCBtYXBQb3B1cCBmcm9tICcuLi9vbEhlbHBlcnMvbWFwUG9wdXAnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgb2wgPSByZXF1aXJlKCdjdXN0b20tb2wnKTtcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckVzcmlNYXBTZXJ2ZXJPcHRpb25zIGV4dGVuZHMgTGF5ZXJCYXNlT3B0aW9ucyB7XHJcbiAgICBhZGRQb3B1cD86IGJvb2xlYW47XHJcbiAgICBzaG93TGF5ZXJzPzogQXJyYXk8bnVtYmVyPjtcclxufVxyXG5cclxuLyoqXHJcbiAqIGVzcmkgbWFwc2VydmVyIGxheWVyXHJcbiAqIEBhdWdtZW50cyBMYXllckJhc2VcclxuICovXHJcbmV4cG9ydCBjbGFzcyBMYXllckVzcmlNYXBTZXJ2ZXIgZXh0ZW5kcyBMYXllckJhc2Uge1xyXG4gICAgX2VzcmlGb3JtYXQ6IG9sLmZvcm1hdC5Fc3JpSlNPTjtcclxuICAgIF9wb3B1cFJlcXVlc3Q6IEpRdWVyeVhIUjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBiYXNlIGxheWVyIGZvciBhbGwgb3RoZXJzXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gcmVzb3VyY2UgdXJsXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdIC0gY29uZmlnXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuaWRdIC0gbGF5ZXIgaWRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5uYW1lPVVubmFtZWQgTGF5ZXJdIC0gbGF5ZXIgbmFtZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm9wYWNpdHk9MV0gLSBvcGFjaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnZpc2libGU9dHJ1ZV0gLSBkZWZhdWx0IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5ab29tPXVuZGVmaW5lZF0gLSBtaW4gem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIC0gbWF4IHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnBhcmFtcz17fV0gdGhlIGdldCBwYXJhbWV0ZXJzIHRvIGluY2x1ZGUgdG8gcmV0cmlldmUgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuekluZGV4PTBdIHRoZSB6IGluZGV4IGZvciB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtvcHRpb25zLmxvYWRDYWxsYmFja10gZnVuY3Rpb24gdG8gY2FsbCBvbiBsb2FkLCBjb250ZXh0IHRoaXMgaXMgdGhlIGxheWVyIG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb2xsYXBzZT1mYWxzZV0gaWYgdGhlIGxlZ2VuZCBpdGVtIHNob3VsZCBiZSBpbml0aWFsbHkgY29sbGFwc2VkXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENoZWNrYm94PXRydWVdIGlmIHRoZSBsZWdlbmQgaXRlbSBzaG91bGQgaGF2ZSBhIGNoZWNrYm94IGZvciB2aXNpYmlsaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENvbnRlbnRdIGFkZGl0aW9uYWwgY29udGVudCB0byBhZGQgdG8gdGhlIGxlZ2VuZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5hZGRQb3B1cD1mYWxzZV0gaWYgYSBwb3B1cCBzaG91bGQgYmUgYWRkZWRcclxuICAgICAqIEBwYXJhbSB7dW5kZWZpbmVkfEFycmF5PG51bWJlcj59IFtvcHRpb25zLnNob3dMYXllcnM9dW5kZWZpbmVkXSBpZiBhIHBvcHVwIHNob3VsZCBiZSBhZGRlZFxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcih1cmwsIG9wdGlvbnM6IExheWVyRXNyaU1hcFNlcnZlck9wdGlvbnMgPSB7fSkge1xyXG5cclxuICAgICAgICBzdXBlcih1cmwsIG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuX3NvdXJjZSA9IG5ldyBvbC5zb3VyY2UuVGlsZUFyY0dJU1Jlc3QoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHVybDogdGhpcy51cmwgPT0gJycgPyB1bmRlZmluZWQgOiB0aGlzLnVybCxcclxuICAgICAgICAgICAgICAgIHBhcmFtczogdHlwZW9mIG9wdGlvbnMuc2hvd0xheWVycyA9PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IHtsYXllcnM6ICdzaG93OicgKyBvcHRpb25zLnNob3dMYXllcnMuam9pbignLCcpfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5fb2xMYXllciA9IG5ldyBvbC5sYXllci5UaWxlKHtcclxuICAgICAgICAgICAgc291cmNlOiB0aGlzLl9zb3VyY2UgYXMgb2wuc291cmNlLlRpbGUsXHJcbiAgICAgICAgICAgIHZpc2libGU6IHRoaXMudmlzaWJsZSxcclxuICAgICAgICAgICAgb3BhY2l0eTogdGhpcy5vcGFjaXR5LFxyXG4gICAgICAgICAgICBtaW5SZXNvbHV0aW9uOiB0aGlzLl9taW5SZXNvbHV0aW9uLFxyXG4gICAgICAgICAgICBtYXhSZXNvbHV0aW9uOiB0aGlzLl9tYXhSZXNvbHV0aW9uXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIuc2V0WkluZGV4KHRoaXMuX3pJbmRleCk7XHJcblxyXG4gICAgICAgIG9wdGlvbnMuYWRkUG9wdXAgPSB0eXBlb2Ygb3B0aW9ucy5hZGRQb3B1cCA9PSAnYm9vbGVhbicgPyBvcHRpb25zLmFkZFBvcHVwIDogZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuX2VzcmlGb3JtYXQgPSBuZXcgb2wuZm9ybWF0LkVzcmlKU09OKCk7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBSZXF1ZXN0ID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5hZGRMZWdlbmRDb250ZW50KCk7XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmFkZFBvcHVwKSB7XHJcbiAgICAgICAgICAgIG1hcFBvcHVwLmFkZE1hcFNlcnZpY2VQb3B1cCh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhZGQgYWRkaXRpb25hbCBjb250ZW50IHRvIHRoZSBsZWdlbmRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbYWRkaXRpb25hbENvbnRlbnQ9JyddIGFkZGl0aW9uYWwgY29udGVudCBmb3IgbGVnZW5kXHJcbiAgICAgKi9cclxuICAgIGFkZExlZ2VuZENvbnRlbnQoYWRkaXRpb25hbENvbnRlbnQ/OiBzdHJpbmcpIHtcclxuICAgICAgICBsZXQgdXJsQ29weSA9IHRoaXMudXJsO1xyXG5cclxuICAgICAgICBpZiAodXJsQ29weVt1cmxDb3B5Lmxlbmd0aCAtIDFdICE9PSAnLycpIHtcclxuICAgICAgICAgICAgdXJsQ29weSArPSAnLyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1cmxDb3B5ICs9ICdsZWdlbmQ/Zj1wanNvbiZjYWxsYmFjaz0/JztcclxuXHJcbiAgICAgICAgJC5nZXQodXJsQ29weSwge30sIChkKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBuZXdIdG1sID0gZXNyaVRvT2wubWFrZU1hcFNlcnZpY2VMZWdlbmQoZCk7XHJcbiAgICAgICAgICAgIHN1cGVyLmFkZExlZ2VuZENvbnRlbnQobmV3SHRtbCk7XHJcbiAgICAgICAgfSwgJ2pzb24nKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgZ2V0UG9wdXBJbmZvKHF1ZXJ5UGFyYW1zKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHVybENvcHkgPSB0aGlzLnVybDtcclxuXHJcbiAgICAgICAgaWYgKHVybENvcHlbdXJsQ29weS5sZW5ndGggLSAxXSAhPSAnLycpIHtcclxuICAgICAgICAgICAgdXJsQ29weSArPSAnLyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1cmxDb3B5ICs9ICdpZGVudGlmeT9jYWxsYmFjaz0/JztcclxuXHJcbiAgICAgICAgbGV0IF9fdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9wb3B1cFJlcXVlc3QgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cFJlcXVlc3QuYWJvcnQoKTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9wb3B1cFJlcXVlc3QgPSAkLmdldCh1cmxDb3B5LCBxdWVyeVBhcmFtcywgZnVuY3Rpb24gKGQpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgciBvZiBkWydyZXN1bHRzJ10pIHtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgcG9wdXBIdG1sID0gJzx0YWJsZSBjbGFzcz1cImVzcmktcG9wdXAtdGFibGVcIj4nO1xyXG5cclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGEgaW4gclsnYXR0cmlidXRlcyddKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJbJ2F0dHJpYnV0ZXMnXS5oYXNPd25Qcm9wZXJ0eShhKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXR0clZhbCA9IHJbJ2F0dHJpYnV0ZXMnXVthXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdHRyVmFsID09IG51bGwgfHwgYXR0clZhbC50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT0gJ251bGwnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGF0dHIgPSBhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ci5sZW5ndGggPiAxNCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ciA9IGF0dHIuc2xpY2UoMCwgMTEpICsgJy4uLic7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcHVwSHRtbCArPSBgPHRyPjx0ZD4ke2F0dHJ9PC90ZD48dGQ+JHthdHRyVmFsfTwvdGQ+PC90cj5gO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzwvdGFibGU+JztcclxuXHJcbiAgICAgICAgICAgICAgICBtYXBQb3B1cC5hZGRNYXBTZXJ2aWNlUG9wdXBDb250ZW50KF9fdGhpcy5fZXNyaUZvcm1hdC5yZWFkRmVhdHVyZShyKSwgX190aGlzLCBwb3B1cEh0bWwsIHJbJ2xheWVyTmFtZSddKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sICdqc29uJyk7XHJcblxyXG4gICAgICAgIHRoaXMuX3BvcHVwUmVxdWVzdC5hbHdheXMoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBfX3RoaXMuX3BvcHVwUmVxdWVzdCA9IG51bGw7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtvbC5zb3VyY2UuVGlsZUFyY0dJU1Jlc3R9IHRoZSB2ZWN0b3Igc291cmNlXHJcbiAgICAgKi9cclxuICAgIGdldCBzb3VyY2UoKTogb2wuc291cmNlLlRpbGVBcmNHSVNSZXN0IHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0U291cmNlKCkgYXMgb2wuc291cmNlLlRpbGVBcmNHSVNSZXN0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHRoZSBvbCBsYXllclxyXG4gICAgICovXHJcbiAgICBnZXQgb2xMYXllcigpOiBvbC5sYXllci5UaWxlIHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0T2xMYXllcigpIGFzIG9sLmxheWVyLlRpbGU7XHJcbiAgICB9XHJcbn1cclxubm0uTGF5ZXJFc3JpTWFwU2VydmVyID0gTGF5ZXJFc3JpTWFwU2VydmVyO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckVzcmlNYXBTZXJ2ZXI7XHJcbiJdfQ== /***/ }), /* 11 */ @@ -1148,7 +1148,7 @@ var MapMoveCls = (function (_super) { exports.MapMoveCls = MapMoveCls; nm.MapMoveCls = MapMoveCls; exports.default = MapMoveCls; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwTW92ZUNscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hcE1vdmVDbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EsMkRBQXNEO0FBQ3RELG1EQUFxRDtBQUNyRCwyQ0FBc0M7QUFDdEMsNkNBQXdDO0FBRXhDLDBCQUE2QjtBQUM3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBcUJoQzs7O0dBR0c7QUFDSDtJQUFnQyw4QkFBa0I7SUFhOUM7O09BRUc7SUFDSDtRQUFBLFlBQ0ksa0JBQU0sVUFBVSxDQUFDLFNBZXBCO1FBZEcsS0FBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsS0FBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsS0FBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFFdkIsS0FBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixLQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLEtBQUksQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7UUFDakMsS0FBSSxDQUFDLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUNsQyxLQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBRWxDLEtBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLEtBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDOztJQUVoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gseUJBQUksR0FBSixVQUFLLE1BQWM7UUFBbkIsaUJBaUJDO1FBaEJHLGlCQUFNLElBQUksWUFBQyxNQUFNLENBQUMsQ0FBQztRQUVuQixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLFVBQUMs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Q0FBQztRQUNoRSxDQUFDO0lBQ0wsQ0FBQztJQUNMLGlCQUFDO0FBQUQsQ0FBQyxBQWxRRCxDQUFnQyw0QkFBa0IsR0FrUWpEO0FBbFFZLGdDQUFVO0FBb1F2QixFQUFFLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztBQUMzQixrQkFBZSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGF5ZXJCYXNlVmVjdG9yIGZyb20gXCIuLi9sYXllcnMvTGF5ZXJCYXNlVmVjdG9yXCI7XHJcbmltcG9ydCBNYXBJbnRlcmFjdGlvbkJhc2UgZnJvbSAnLi9tYXBJbnRlcmFjdGlvbkJhc2UnO1xyXG5pbXBvcnQgKiBhcyBjaGVja0RlZmluZWQgZnJvbSAnLi4vdXRpbC9jaGVja0RlZmluZWQnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFrZUd1aWQgZnJvbSAnLi4vdXRpbC9tYWtlR3VpZCc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycycpO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgZXh0ZW50T2JqZWN0e1xyXG4gICAgbWluWDogbnVtYmVyO1xyXG4gICAgbWluWTogbnVtYmVyO1xyXG4gICAgbWF4WDogbnVtYmVyO1xyXG4gICAgbWF4WTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIG1hcE1vdmVDYWxsYmFja0Z1bmN0aW9ue1xyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGV4dGVudCBleHRlbnQgYXMgcHJlZGVmaW5lZCBvYmplY3QgbWluWCwgbWluWCwgbWF4WCwgbWF4WVxyXG4gICAgICogQHBhcmFtIHpvb21MZXZlbCBjdXJyZW50IHpvb20gbGV2ZWxcclxuICAgICAqIEBwYXJhbSBldnRUeXBlIHRoZSBldmVudCB0eXBlICdjaGFuZ2U6Y2VudGVyJywgJ2NoYW5nZTpyZXNvbHV0aW9uJ1xyXG4gICAgICovXHJcbiAgICAoZXh0ZW50OiBleHRlbnRPYmplY3QsIHpvb21MZXZlbDogbnVtYmVyLCBldnRUeXBlPzogc3RyaW5nKTogYW55XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogYXNzaXN0cyB3aXRoIG1hcCBtb3ZlIGludGVyYWN0aW9ucywgdHJpZ2dlciBjYWxsYmFjayBmdW5jdGlvbnNcclxuICogQGF1Z21lbnRzIE1hcEludGVyYWN0aW9uQmFzZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIE1hcE1vdmVDbHMgZXh0ZW5kcyBNYXBJbnRlcmFjdGlvbkJhc2Uge1xyXG4gICAgX21hcEV4dGVudDogZXh0ZW50T2JqZWN0O1xyXG4gICAgX3pvb21MZXZlbDogbnVtYmVyO1xyXG4gICAgX2xvb2t1cExheWVyOiBPYmplY3Q7XHJcbiAgICBfYXJyTGF5ZXI6IEFycmF5PExheWVyQmFzZVZlY3Rvcj47XHJcbiAgICBfYXJyTHlyVGltZW91dDogQXJyYXk8bnVtYmVyPjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0OiBBcnJheTxudW1iZXI+O1xyXG4gICAgX21hcE1vdmVDYWxsYmFja0RlbGF5czogQXJyYXk8bnVtYmVyPjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tzTG9va3VwOiBPYmplY3Q7XHJcbiAgICBfbWFwTW92ZUNhbGxiYWNrQ29udGV4dDogQXJyYXk8T2JqZWN0PjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tzOiBBcnJheTxtYXBNb3ZlQ2FsbGJhY2tGdW5jdGlvbj47XHJcbiAgICBfYXJyTHlyUmVxdWVzdDogQXJyYXk8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGNvbnN0cnVjdG9yIGNhbGxlZCBpbXBsaWNpdGx5XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCdtYXAgbW92ZScpO1xyXG4gICAgICAgIHRoaXMuX2Fyckx5clJlcXVlc3QgPSBbXTtcclxuICAgICAgICB0aGlzLl9hcnJMeXJUaW1lb3V0ID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyTGF5ZXIgPSBbXTtcclxuICAgICAgICB0aGlzLl9sb29rdXBMYXllciA9IHt9O1xyXG5cclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzID0gW107XHJcbiAgICAgICAgdGhpcy5fbWFwTW92ZUNhbGxiYWNrc0xvb2t1cCA9IHt9O1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja0RlbGF5cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja0NvbnRleHQgPSBbXTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0ID0gW107XHJcblxyXG4gICAgICAgIHRoaXMuX21hcEV4dGVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl96b29tTGV2ZWwgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogaW5pdGlhbGl6ZSB0aGUgbWFwIG1vdmUgb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0gdGhlTWFwIC0gdGhlIG9sIG1hcFxyXG4gICAgICovXHJcbiAgICBpbml0KHRoZU1hcDogb2wuTWFwKXtcclxuICAgICAgICBzdXBlci5pbml0KHRoZU1hcCk7XHJcblxyXG4gICAgICAgIHRoaXMubWFwLmdldFZpZXcoKS5vbihbJ2NoYW5nZTpjZW50ZXInLCAnY2hhbmdlOnJlc29sdXRpb24nXSwgKGUpID0+e1xyXG5cclxuICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHRyaWdnZXIgdGhlIGxheWVyIHVwZGF0ZXNcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9hcnJMYXllci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyTHlyTG9hZCh0aGlzLl9hcnJMYXllcltpXSwgaSwgZS50eXBlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gdHJpZ2dlciB0aGUgbWFwIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX21hcE1vdmVDYWxsYmFja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlck1vdmVDYWxsYmFjayhpLCBlLnR5cGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgX3VwZGF0ZU1hcEV4dGVudCgpIHtcclxuICAgICAgICBsZXQgdGhlVmlldyA9IHRoaXMubWFwLmdldFZpZXcoKTtcclxuICAgICAgICB0aGlzLl96b29tTGV2ZWwgPSB0aGVWaWV3LmdldFpvb20oKTtcclxuXHJcbiAgICAgICAgbGV0IGV4dGVudEFycmF5ID0gdGhlVmlldy5jYWxjdWxhdGVFeHRlbnQodGhpcy5tYXAuZ2V0U2l6ZSgpKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWFwRXh0ZW50ID0ge1xyXG4gICAgICAgICAgICBtaW5YOiBleHRlbnRBcnJheVswXSxcclxuICAgICAgICAgICAgbWluWTogZXh0ZW50QXJyYXlbMV0sXHJcbiAgICAgICAgICAgIG1heFg6IGV4dGVudEFycmF5WzJdLFxyXG4gICAgICAgICAgICBtYXhZOiBleHRlbnRBcnJheVszXVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiByZXR1cm4gdGhlIG1hcCBleHRlbnRcclxuICAgICAqL1xyXG4gICAgZ2V0IG1hcEV4dGVudCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX21hcEV4dGVudCkge1xyXG4gICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXBFeHRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUcmlnZ2VyIHRoZSBsYXllciBsb2FkXHJcbiAgICAgKiBAcGFyYW0gbHlyIHRoZSBsYXllciBiZWluZyBhY3RlZCBvblxyXG4gICAgICogQHBhcmFtIGluZGV4IGluZGV4IG9mIHRoZSBsYXllclxyXG4gICAgICogQHBhcmFtIGV2ZW50VHlwZSB0aGUgZXZlbnQgdHJpZ2dlcmluZyB0aGUgbG9hZCwgYXMgJ2NoYW5nZTpjZW50ZXInIG9yICdjaGFuZ2U6cmVzb2x1dGlvbidcclxuICAgICAqL1xyXG4gICAgdHJpZ2dlckx5ckxvYWQobHlyOiBMYXllckJhc2VWZWN0b3IsIGluZGV4PzogbnVtYmVyLCBldmVudFR5cGU/OiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgaWYgKGNoZWNrRGVmaW5lZC51bmRlZmluZWRPck51bGwobHlyKSAmJiBjaGVja0RlZmluZWQudW5kZWZpbmVkT3JOdWxsKGluZGV4KSkge1xyXG4gICAgICAgICAgICB0aHJvdyAnbmVlZCB0byBkZWZpbmUgbHlyIG9yIGluZGV4JztcclxuICAgICAgICB9IGVsc2UgaWYgKGNoZWNrRGVmaW5lZC5kZWZpbmVkQW5kTm90TnVsbChseXIpICYmIGNoZWNrRGVmaW5lZC51bmRlZmluZWRPck51bGwoaW5kZXgpKSB7XHJcbiAgICAgICAgICAgIGluZGV4ID0gdGhpcy5fYXJyTGF5ZXIuaW5kZXhPZihseXIpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY2hlY2tEZWZpbmVkLnVuZGVmaW5lZE9yTnVsbChseXIpICYmIGNoZWNrRGVmaW5lZC5kZWZpbmVkQW5kTm90TnVsbChpbmRleCkpIHtcclxuICAgICAgICAgICAgbHlyID0gdGhpcy5fYXJyTGF5ZXJbaW5kZXhdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gY2xlYXIgdGhlIHRpbWVvdXRcclxuICAgICAgICBpZiAodGhpcy5fYXJyTHlyVGltZW91dFtpbmRleF0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fYXJyTHlyVGltZW91dFtpbmRleF0pO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJUaW1lb3V0W2luZGV4XSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBhYm9ydCBpZiBuZWNlc3NhcnkgYW5kIGNsZWFyIHRoZSByZXF1ZXN0XHJcbiAgICAgICAgaWYgKHRoaXMuX2Fyckx5clJlcXVlc3RbaW5kZXhdICE9IG51bGwgJiYgdGhpcy5fYXJyTHlyUmVxdWVzdFtpbmRleF0gIT0gNCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0W2luZGV4XS5hYm9ydCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0W2luZGV4XSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBkdW1teSBjYWxsYmFjayB1c2VkIGlmIGJlZm9yZSBsb2FkIHJldHVybnMgZmFsc2VcclxuICAgICAgICBsZXQgY2FsbGJhY2tGdW5jID0gZnVuY3Rpb24gKCkge307XHJcblxyXG4gICAgICAgIGlmIChseXIubWFwTW92ZUJlZm9yZSh0aGlzLl96b29tTGV2ZWwsIGV2ZW50VHlwZSkpIHtcclxuICAgICAgICAgICAgbHlyLm1hcE1vdmVNYWtlR2V0UGFyYW1zKHRoaXMuX21hcEV4dGVudCwgdGhpcy5fem9vbUxldmVsKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBfX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICAgICAgY2FsbGJhY2tGdW5jID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gaW5uZXJGdW5jdGlvbih0aGVMYXllciwgdGhlSW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgX2lubmVyVGhpcyA9IHRoaXM7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXJyTHlyUmVxdWVzdFt0aGVJbmRleF0gPSAkLmdldChcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlTGF5ZXIudXJsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5tYXBNb3ZlUGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBAdHlwZSB7TGF5ZXJCYXNlVmVjdG9yfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5tYXBNb3ZlQ2FsbGJhY2soZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5sb2FkQ2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgJ2pzb24nKS5mYWlsKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoanFYSFIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqcVhIUi5zdGF0dXNUZXh0ICE9ICdhYm9ydCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZmFpbGVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhlTGF5ZXIudXJsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGVMYXllci5tYXBNb3ZlUGFyYW1zKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSkuYWx3YXlzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5uZXJUaGlzLl9hcnJMeXJUaW1lb3V0W3RoZUluZGV4XSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5uZXJUaGlzLl9hcnJMeXJSZXF1ZXN0W3RoZUluZGV4XSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaW5uZXJGdW5jdGlvbi5jYWxsKF9fdGhpcywgbHlyLCBpbmRleCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbHlyLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2Fyckx5clRpbWVvdXRbaW5kZXhdID0gc2V0VGltZW91dChjYWxsYmFja0Z1bmMsIGx5ci5vbkRlbWFuZERlbGF5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyaWdnZXIgdGhlIG1hcCBtb3ZlIGNhbGwgYmFjayBhdCB0aGUgZ2l2ZW4gaW5kZXhcclxuICAgICAqIEBwYXJhbSBpbmQgLSB0aGUgaW5kZXggb2YgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gZXZlbnRUeXBlPXVuZGVmaW5lZCB0aGUgZXZlbnQgdHJpZ2dlcmluZyB0aGUgbG9hZCBhcyAnY2hhbmdlOmNlbnRlcicgb3IgJ2NoYW5nZTpyZXNvbHV0aW9uJ1xyXG4gICAgICogQHBhcmFtIGZ1bmN0aW9uSWQ9dW5kZWZpbmVkIHRoZSBmdW5jdGlvbiBpZCB1c2VkIHRvIHJlZmVyZW5jZSB0aGUgYWRkZWQgY2FsbGJhY2sgZnVuY3Rpb25cclxuICAgICAqL1xyXG4gICAgdHJpZ2dlck1vdmVDYWxsYmFjayhpbmQ6IG51bWJlciwgZXZlbnRUeXBlPzogc3RyaW5nLCBmdW5jdGlvbklkPzogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgaW5kID09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBmdW5jdGlvbklkID09ICd1bmRlZmluZWQnKXtcclxuICAgICAgICAgICAgdGhyb3cgJ2VpdGhlciB0aGUgZnVuY3Rpb24gaW5kZXggb3IgdGhlIGlkIG11c3QgYmUgZGVmaW5lZCc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIGluZCAhPT0gJ251bWJlcicpe1xyXG4gICAgICAgICAgICBpbmQgPSB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzLmluZGV4T2YodGhpcy5fbWFwTW92ZUNhbGxiYWNrc0xvb2t1cFtmdW5jdGlvbklkXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaW5kIDwgMCl7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdmdW5jdGlvbiBub3QgZm91bmQnKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGNsZWFyIHRoZSB0aW1lb3V0XHJcbiAgICAgICAgaWYgKHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXRbaW5kXSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0W2luZF0pO1xyXG4gICAgICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0W2luZF0gPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGN0eCA9IHRoaXMuX21hcE1vdmVDYWxsYmFja0NvbnRleHRbaW5kXTtcclxuICAgICAgICBsZXQgdGhlRnVuYyA9IHRoaXMuX21hcE1vdmVDYWxsYmFja3NbaW5kXTtcclxuXHJcbiAgICAgICAgbGV0IF9fdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIGxldCBmID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAoY3R4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGVGdW5jLmNhbGwoY3R4LCBfX3RoaXMuX21hcEV4dGVudCwgX190aGlzLl96b29tTGV2ZWwsIGV2ZW50VHlwZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGVGdW5jKF9fdGhpcy5fbWFwRXh0ZW50LCBfX3RoaXMuX3pvb21MZXZlbCwgZXZlbnRUeXBlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXRbaW5kXSA9IHNldFRpbWVvdXQoZiwgdGhpcy5fbWFwTW92ZUNhbGxiYWNrRGVsYXlzW2luZF0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIGEgbGF5ZXIgdG8gdGhlIGludGVyYWN0aW9uXHJcbiAgICAgKiBAcGFyYW0gIGx5ciAtIGxheWVyIHRvIGFkZFxyXG4gICAgICogQHBhcmFtIHRyaWdnZXJPbkFkZCAtIGlmIHRoZSBsYXllciBzaG91bGQgYmUgbG9hZGVkIG9uIGFkZFxyXG4gICAgICovXHJcbiAgICBhZGRWZWN0b3JMYXllcihseXI6IExheWVyQmFzZVZlY3RvciwgdHJpZ2dlck9uQWRkOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgICAgIGlmICh0aGlzLl9hcnJMYXllci5pbmRleE9mKGx5cikgPiAtMSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnYWxyZWFkeSBhZGRlZCAnICsgbHlyLm5hbWUgKyAnIHRvIG1hcCBtb3ZlJyk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2NoZWNrSW5pdCgpO1xyXG5cclxuICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0LnB1c2gobnVsbCk7XHJcbiAgICAgICAgdGhpcy5fYXJyTHlyVGltZW91dC5wdXNoKG51bGwpO1xyXG4gICAgICAgIHRoaXMuX2FyckxheWVyLnB1c2gobHlyKTtcclxuICAgICAgICB0aGlzLl9sb29rdXBMYXllcltseXIuaWRdID0gbHlyO1xyXG5cclxuICAgICAgICB0cmlnZ2VyT25BZGQgPSB0eXBlb2YgdHJpZ2dlck9uQWRkID09ICdib29sZWFuJyA/IHRyaWdnZXJPbkFkZCA6IHRydWU7XHJcblxyXG4gICAgICAgIGlmICh0cmlnZ2VyT25BZGQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX21hcEV4dGVudCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJMeXJMb2FkKGx5ciwgdGhpcy5fYXJyTGF5ZXIubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIGFkZCBhIGNhbGxiYWNrIHRvIHRoZSBtYXAgbW92ZSBldmVudFxyXG4gICAgICogQHBhcmFtIGZ1bmMgLSBjYWxsYmFjayBmdW5jdGlvblxyXG4gICAgICogQHBhcmFtIGNvbnRleHQgLSB0aGUgY29udGV4dCB0byB1c2UgZm9yIHRoaXMgZnVuY3Rpb25cclxuICAgICAqIEBwYXJhbSBkZWxheT01MCB0aGUgZGVsYXkgYmVmb3JlIGNhbGwgbG9hZFxyXG4gICAgICogQHBhcmFtIHRyaWdnZXJPbkFkZCBpZiB0aGUgbGF5ZXIgc2hvdWxkIGJlIGxvYWRlZCBvbiBhZGQgdG8gbWFwTW92ZVxyXG4gICAgICogQHBhcmFtIGZ1bmN0aW9uSWQgb3B0aW9uYWwgaWQgdG8gcmVmZXJlbmNlIHRoZSBmdW5jdGlvbiBsYXRlciBmb3Igb3V0c2lkZSB0cmlnZ2VyaW5nXHJcbiAgICAgKi9cclxuICAgIGFkZENhbGxiYWNrKGZ1bmM6IG1hcE1vdmVDYWxsYmFja0Z1bmN0aW9uLCBjb250ZXh0PzogYW55LCBkZWxheT86IG51bWJlciwgdHJpZ2dlck9uQWRkPyA6IGJvb2xlYW4sIGZ1bmN0aW9uSWQ/OiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX21hcE1vdmVDYWxsYmFja3MuaW5kZXhPZihmdW5jKSA+IC0xKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCd0aGlzIGZ1bmN0aW9uIGFscmVhZHkgYWRkZWQgdG8gbWFwIG1vdmUnKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICBpZiAoIWZ1bmN0aW9uSWQpe1xyXG4gICAgICAgICAgICBmdW5jdGlvbklkID0gbWFrZUd1aWQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja3MucHVzaChmdW5jKTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzTG9va3VwW2Z1bmN0aW9uSWRdID0gZnVuY3Rpb25JZDtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tEZWxheXMucHVzaCh0eXBlb2YgZGVsYXkgPT0gJ251bWJlcicgPyBkZWxheSA6IDUwKTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tDb250ZXh0LnB1c2goY2hlY2tEZWZpbmVkLmRlZmluZWRBbmROb3ROdWxsKGNvbnRleHQpID8gY29udGV4dCA6IG51bGwpO1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXQucHVzaChudWxsKTtcclxuXHJcbiAgICAgICAgdHJpZ2dlck9uQWRkID0gdHlwZW9mIHRyaWdnZXJPbkFkZCA9PSAnYm9vbGVhbicgPyB0cmlnZ2VyT25BZGQgOiB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodHJpZ2dlck9uQWRkKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9tYXBFeHRlbnQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTWFwRXh0ZW50KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy50cmlnZ2VyTW92ZUNhbGxiYWNrKHRoaXMuX21hcE1vdmVDYWxsYmFja3MubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5ubS5NYXBNb3ZlQ2xzID0gTWFwTW92ZUNscztcclxuZXhwb3J0IGRlZmF1bHQgTWFwTW92ZUNscztcclxuIl19 /***/ }), /* 12 */ @@ -1583,7 +1583,7 @@ var MapPopupCls = (function (_super) { exports.MapPopupCls = MapPopupCls; nm.MapPopupCls = MapPopupCls; exports.default = MapPopupCls; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwUG9wdXBDbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBQb3B1cENscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7Ozs7Ozs7Ozs7OztBQUVILDJEQUFzRDtBQUV0RCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBR2pDLDBCQUE2QjtBQUU3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBMEJoQztJQVNJOzs7Ozs7O09BT0c7SUFDSCxnQ0FBWSxPQUFtQixFQUFFLEtBQXlDLEVBQUUsVUFBa0IsRUFBRSxjQUErQixFQUFFLGFBQXNCO1FBQ25KLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxhQUFhLElBQUksUUFBUSxHQUFHLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDdEYsQ0FBQztJQUVELHNCQUFJLDZDQUFTO2FBQWI7WUFDSSxFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDOUIsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUMzQixDQUFDO1FBQ0wsQ0FBQzs7O09BQUE7SUFDTCw2QkFBQztBQUFELENBQUMsQUFqQ0QsSUFpQ0M7QUFqQ1ksd0RBQXNCO0FBbUNuQzs7O0dBR0c7QUFDSDtJQUFpQywrQkFBa0I7SUFxQi9DOzs7OztPQUtHO0lBR0g7O09BRUc7SUFDSDtRQUFBLFlBQ0ksa0JBQU0sV0FBVyxDQUFDLFNBMkJyQjtRQTFCRyxLQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLEtBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDOUIsS0FBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsS0FBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixLQUFJLENBQUMsd0JBQXdCLEdBQUcsRUFBRSxDQUFDO1FBQ25DLEtBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7UUFDbEMsS0FBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7UUFDaEMsS0FBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDL0IsS0FBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDL0IsS0FBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUMzQixLQUFJLENBQUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLEtBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7UUFFN0IsZ0VBQWdFO1FBQ2hFLHNDQUFzQztRQUN0QyxLQUFJLENBQUMsc0JBQXNCLEdBQUcsRUFBRSxDQUFDO1FBQ2pDLEtBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFFaEMsS0FBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsS0FBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUU3QixLQUFJLENBQUMsNkJBQTZCLEdBQUcsRUFBRSxDQUFDO1FBRXhDLEtBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3QixLQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDOztJQUVqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsMEJBQUksR0FBSixVQUFLLE1BQWM7UUFBbkIsaUJBMEtDO1FBektHLGlCQUFNLElBQUksWUFBQyxNQUFNLENBQUMsQ0FBQztRQUVuQixJQUFJLElBQUksQ0FBQztRQUNULElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFbEMsRUFBRSxDQUFDLENBQUMsT0FBTyxNQUFNLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztZQUM1QixJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUM7WUFDRixJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUNQLHdCQUF3QjtZQUN4Qix3Q0FBd0M7WUFDeEMsbUNBQW1DO1lBQ25DLFFBQVEsQ0FDWCxDQUFDO1FBRUYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFbkQsSUFBSSxLQUFLLEdBQUcsVUFBQyxDQUFTO1lBQ2xCLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUM7UUFHRixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQztZQUNoQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUNqQyxPQUFPLEVBQUUsSUFBSTtZQUNiLGdCQUFnQixFQUFFO2dCQUNkLFFBQVEsRUFBRSxHQUFHO2dCQUNiLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFO2dCQUNwQyxNQUFNLEVBQUUsS0FBSzthQUNoQjtTQUNKLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFDLEdBQUc7WUFDekIsS0FBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBRUgseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxVQUFDLEdBQUc7WUFFNUIsS0FBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLEtBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFMUMsMEJBQTBCO1lBQzFCLEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFeEMsSUFBSSxXQUFXLEdBQUc7b0JBQ2QsUUFBUSxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO29CQUNyQyxZQUFZLEVBQUUsbUJBQW1CO29CQUNqQyxNQUFNLEVBQUUsS0FBSztvQkFDYixFQUFFLEVBQUUsS0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUMvRCxTQUFTLEVBQUcsS0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7b0JBQzNGLFlBQVksRUFBRyxLQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLO29CQUNqRSxjQUFjLEVBQUUsSUFBSTtvQkFDcEIsU0FBUyxFQUFFLEVBQUU7b0JBQ2IsQ0FBQyxFQUFFLE9BQU87aUJBQ2IsQ0FBQztnQkFFRixHQUFHLENBQUMsQ0FBVSxVQUEwQixFQUExQixLQUFBLEtBQUksQ0FBQyxxQkFBcUIsRUFBMUIsY0FBMEIsRUFBMUIsSUFBMEI7b0JBQW5DLElBQUksQ0FBQyxTQUFBO29CQUNOLENBQUMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7aUJBQy9CO1lBQ0wsQ0FBQztZQUVELElBQUksdUJBQXVCLEdBQUcsS0FBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBRWxFLEtBQUksQ0FBQyw2QkFBNkIsR0FBRyxFQUFFLENBQUM7WUFDeEMsS0FBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRTdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsdUJBQXVCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3RELElBQUksT0FBTyxHQUFHLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUV6QyxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUU1QyxJQUFJLG9CQUFvQixHQUFHLEtBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFFekcsMEJBQTBCO2dCQUMxQixFQUFFLENBQUMsQ0FBQyxvQkFBb0IsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUNqQyxXQUFXO2dCQUNmLENBQUM7Z0JBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sb0JBQW9CLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztvQkFDakQsT0FBTyxDQUFDLFlBQVksR0FBRyxvQkFBOEIsQ0FBQztvQkFDdEQsS0FBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDckQsQ0FBQztnQkFBQyxJQUFJLENBQUMsQ0FBQztvQkFDSixPQUFPLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ25FLENBQUM7WUFDTCxDQUFDO1lBRUQsS0FBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUksQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLENBQUM7WUFFckUsS0FBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRTdCLElBQUksU0FBUyxHQUFHLDRCQUE0QixDQUFDO1lBQzdDLFNBQVMsSUFBSSxnRUFBZ0UsQ0FBQztZQUM5RSxTQUFTLElBQUksNERBQTRELENBQUM7WUFDMUUsU0FBUyxJQUFJLGdGQUE0RSxDQUFDO1lBQzFGLFNBQVMsSUFBSSw2QkFBNkIsQ0FBQztZQUMzQyxTQUFTLElBQUksdUVBQWlFLEtBQUksQ0FBQyxtQkFBbUIsWUFBUyxDQUFDO1lBQ2hILFNBQVMsSUFBSSx3Q0FBd0MsQ0FBQztZQUN0RCxTQUFTLElBQUksa0RBQWdELENBQUM7WUFDOUQsU0FBUyxJQUFJLFFBQVEsQ0FBQztZQUN0QixTQUFTLElBQUksOEJBQThCLENBQUM7WUFFNUMsU0FBUyxJQUFJLFFBQVEsQ0FBQztZQUV0QixLQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUVwQyxLQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDOUMsRUFBRSxDQUFDLENBQUMsS0FBSSxDQUFDLG1CQUFtQixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2hDLE1BQU0sQ0FBQztnQkFDWCxDQUFDO2dCQUVELEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUMvQixLQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQztnQkFDM0QsQ0FBQztnQkFBQyxJQUFJLENBQUMsQ0FBQztvQkFDSixLQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztnQkFDOUIsQ0FBQztnQkFDRCxLQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FBQztZQUVILElBQUksU0FBUyxHQUFHLEtBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRXhELFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBQ1osRUFBRSxDQUFDLENBQUMsS0FBSSxDQUFDLG1CQUFtQixJQUFJLENBQUMsSUFBSSxLQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNoRSxNQUFNLENBQUM7Z0JBQ1gsQ0FBQztnQkFFRCxFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsa0JBQWtCLElBQUksS0FBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzFELEtBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7Z0JBQ2hDLENBQUM7Z0JBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ0osS0FBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQzlCLENBQUM7Z0JBQ0QsS0FBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDOUIsQ0FBQyxDQUFDLENBQUM7WUFHSCxFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0IsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDM0IsS0FBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsS0FBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQ3RELEtBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqQyxLQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUMzQixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFVBQUMsR0FBRztZQUM1QixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixNQUFNLENBQUM7WUFDWCxDQUFDO1lBQ0QsSUFBSSxLQUFLLEdBQUcsS0FBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDekQsSUFBSSxHQUFHLEdBQUcsS0FBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsVUFBQyxZQUFZO2dCQUNyRCxHQUFHLENBQUMsQ0FBZ0IsVUFBc0IsRUFBdEIsS0FBQSxLQUFJLENBQUMsaUJBQWlCLEVBQXRCLGNBQXNCLEVBQXRCLElBQXNCO29CQUFyQyxJQUFJLE9BQU8sU0FBQTtvQkFDWixFQUFFLENBQUMsQ0FBQyxZQUFZLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQzt3QkFDMUIsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDaEIsQ0FBQztpQkFDSjtnQkFFRCxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxVQUFVLEdBQUcsS0FBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBaUIsQ0FBQztZQUM1RCxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILHdDQUFrQixHQUFsQjtRQUNJLElBQUksdUJBQXVCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNyRixJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlELElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM3RSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN0RSxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxQyxVQUFVLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckUsR0FBRyxDQUFDLENBQVUsVUFBMkIsRUFBM0IsS0FBQSxJQUFJLENBQUMsc0JBQXNCLEVBQTNCLGNBQTJCLEVBQTNCLElBQTJCO1lBQXBDLElBQUksQ0FBQyxTQUFBO1lBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFHRDs7Ozs7O09BTUc7SUFDSCwrQ0FBeUIsR0FBekIsVUFBMEIsT0FBbUIsRUFBRSxHQUF1QixFQUFFLFlBQW9CLEVBQUUsUUFBZ0I7UUFFMUcsSUFBSSxlQUFlLEdBQUcsSUFBSSxzQkFBc0IsQ0FDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLENBQ3ZGLENBQUM7UUFDRixlQUFlLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUU1QyxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRTNCLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUVwRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6RCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUMzQixDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsc0NBQWdCLEdBQWhCLFVBQWlCLEtBQWU7UUFBaEMsaUJBY0M7UUFiRyxJQUFJLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUVqQyxJQUFJLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxVQUFDLE9BQW1CLEVBQUUsS0FBc0I7WUFDOUUsSUFBSSxRQUFRLEdBQUcsS0FBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVyRCxFQUFFLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoQix1QkFBdUIsQ0FBQyxJQUFJLENBQ3hCLElBQUksc0JBQXNCLENBQ3RCLE9BQU8sRUFBRSxLQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pHLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQztJQUNuQyxDQUFDO0lBRUQsZ0NBQVUsR0FBVjtRQUNJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU3QixNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFBQSxDQUFDO0lBR0Y7OztPQUdHO0lBQ0gsNkNBQXVCLEdBQXZCLFVBQXdCLFdBQWlDO1FBQ3JELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILG9DQUFjLEdBQWQsVUFBZSxHQUFvQixFQUFFLGNBQTBFO1FBQzNHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQixjQUFjLEdBQUcsY0FBYyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxjQUFjLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxLQUFLLElBQUkscUJBQXFCLENBQUM7UUFDckUsY0FBYyxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUVsRCxJQUFJLFFBQVEsQ0FBQztRQUViLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLFFBQVEsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDO1FBQ3RDLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLFFBQVEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUMxQixNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztvQkFDeEIsS0FBSyxFQUFFLGNBQWMsQ0FBQyxLQUFLO29CQUMzQixLQUFLLEVBQUUsY0FBYyxDQUFDLEtBQUs7aUJBQzlCLENBQUM7Z0JBQ0YsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7b0JBQ3ZCLE1BQU0sRUFBRSxDQUFDO29CQUNULElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxLQUFLLEVBQUMsQ0FBQztvQkFDdEQsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFDLENBQUM7aUJBQ3ZFLENBQUM7Z0JBQ0YsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQ3BCLEtBQUssRUFBRSxjQUFjLENBQUMsS0FBSztpQkFDOUIsQ0FBQzthQUNMLENBQUMsQ0FBQztRQUNQLENBQUM7UUFFRCxJQUFJLGNBQWMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUNwQztZQUNJLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQzlCLEtBQUssRUFBRSxRQUFRO1NBQ2xCLENBQ0osQ0FBQztRQUVGLGNBQWMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUNwRCxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVsQyxNQUFNLENBQUMsY0FBYyxDQUFDO0lBQzFCLENBQUM7SUFHRDs7Ozs7Ozs7O09BU0c7SUFDSCxvQ0FBYyxHQUFkLFVBQWUsR0FBb0IsRUFBRSxvQkFBbUMsRUFDekQsY0FBMkU7UUFDdEYsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRXpELE1BQU0sQ0FBQyxjQUFjLENBQUM7SUFDMUIsQ0FBQztJQUFBLENBQUM7SUFHRjs7O09BR0c7SUFDSCx1Q0FBaUIsR0FBakIsVUFBa0IsR0FBRztRQUNqQixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVqRCxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsd0NBQWtCLEdBQWxCLFVBQW1CLEdBQUcsRUFBRSxjQUFzRTtRQUMxRixJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXJDLE1BQU0sQ0FBQyxjQUFjLENBQUM7SUFDMUIsQ0FBQztJQUVELG9DQUFjLEdBQWQ7UUFDSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pELENBQUM7UUFDRCxHQUFHLENBQUMsQ0FBVSxVQUF1QixFQUF2QixLQUFBLElBQUksQ0FBQyxrQkFBa0IsRUFBdkIsY0FBdUIsRUFBdkIsSUFBdUI7WUFBaEMsSUFBSSxDQUFDLFNBQUE7WUFDTixDQUFDLEVBQUUsQ0FBQztTQUNQO0lBQ0wsQ0FBQztJQUFBLENBQUM7SUFFRjs7O09BR0c7SUFDSCx5Q0FBbUIsR0FBbkIsVUFBb0IsSUFBYztRQUM5QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDTCxrQkFBQztBQUFELENBQUMsQUF6Y0QsQ0FBaUMsNEJBQWtCLEdBeWNsRDtBQXpjWSxrQ0FBVztBQTBjeEIsRUFBRSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDN0Isa0JBQWUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMy8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBNYXBJbnRlcmFjdGlvbkJhc2UgZnJvbSAnLi9tYXBJbnRlcmFjdGlvbkJhc2UnO1xyXG5pbXBvcnQgcHJvcGVydGllc1pvb21TdHlsZSBmcm9tICcuLi9vbEhlbHBlcnMvcHJvcGVydGllc1pvb21TdHlsZSc7XHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQge0xheWVyQmFzZVZlY3Rvcn0gZnJvbSBcIi4uL2xheWVycy9MYXllckJhc2VWZWN0b3JcIjtcclxuaW1wb3J0IExheWVyRXNyaU1hcFNlcnZlciBmcm9tIFwiLi4vbGF5ZXJzL0xheWVyRXNyaU1hcFNlcnZlclwiO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5cclxuY29uc3Qgbm0gPSBwcm92aWRlKCdvbEhlbHBlcnMnKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgcG9wdXBDaGFuZ2VkRnVuY3Rpb24ge1xyXG4gICAgKCRwb3BDb250ZW50OiBKUXVlcnkpOiBhbnk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBwb3B1cENhbGxiYWNrIHtcclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRoZSBwb3B1cFxyXG4gICAgICogQHBhcmFtIGZlYXR1cmVQcm9wZXJ0aWVzXHJcbiAgICAgKiBAcGFyYW0ganFSZWZcclxuICAgICAqL1xyXG4gICAgKGZlYXR1cmVQcm9wZXJ0aWVzOiBPYmplY3QsIGpxUmVmPzogSlF1ZXJ5KTogc3RyaW5nIHwgYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIG1hcEV2ZW50IHtcclxuICAgIGNvb3JkaW5hdGU6IG9sLkNvb3JkaW5hdGU7XHJcbiAgICBwaXhlbDogb2wuUGl4ZWw7XHJcbiAgICBkcmFnZ2luZzogYm9vbGVhbnxhbnk7XHJcbiAgICBvcmlnaW5hbEV2ZW50OiBFdmVudDtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlTGF5ZXJQcm9wZXJ0aWVzIHtcclxuXHJcbiAgICBmZWF0dXJlOiBvbC5GZWF0dXJlO1xyXG4gICAgbGF5ZXI6IExheWVyQmFzZVZlY3RvcnxMYXllckVzcmlNYXBTZXJ2ZXI7XHJcbiAgICBsYXllckluZGV4OiBudW1iZXI7XHJcbiAgICBzZWxlY3Rpb25MYXllcjogb2wubGF5ZXIuVmVjdG9yO1xyXG4gICAgcG9wdXBDb250ZW50OiBzdHJpbmc7XHJcbiAgICBlc3JpTGF5ZXJOYW1lOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGZlYXR1cmUgdGhlIGZlYXR1cmVcclxuICAgICAqIEBwYXJhbSBsYXllciAtIHRoZSBsYXllciBpbiB0aGUgcG9wdXBcclxuICAgICAqIEBwYXJhbSBsYXllckluZGV4IC0gaW5kZXggb2YgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gc2VsZWN0aW9uTGF5ZXIgLSB0aGUgb2wgc2VsZWN0aW9uIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gW2VzcmlMYXllck5hbWU9dW5kZWZpbmVkXSAtIGVzcmkgbGF5ZXIgbmFtZVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihmZWF0dXJlOiBvbC5GZWF0dXJlLCBsYXllcjogTGF5ZXJCYXNlVmVjdG9yfExheWVyRXNyaU1hcFNlcnZlciwgbGF5ZXJJbmRleDogbnVtYmVyLCBzZWxlY3Rpb25MYXllcjogb2wubGF5ZXIuVmVjdG9yLCBlc3JpTGF5ZXJOYW1lPzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5mZWF0dXJlID0gZmVhdHVyZTtcclxuICAgICAgICB0aGlzLmxheWVyID0gbGF5ZXI7XHJcbiAgICAgICAgdGhpcy5sYXllckluZGV4ID0gbGF5ZXJJbmRleDtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbkxheWVyID0gc2VsZWN0aW9uTGF5ZXI7XHJcbiAgICAgICAgdGhpcy5wb3B1cENvbnRlbnQgPSAnJztcclxuICAgICAgICB0aGlzLmVzcmlMYXllck5hbWUgPSB0eXBlb2YgZXNyaUxheWVyTmFtZSA9PSAnc3RyaW5nJyA/IGVzcmlMYXllck5hbWUgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGxheWVyTmFtZSgpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXNyaUxheWVyTmFtZSA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lc3JpTGF5ZXJOYW1lO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxheWVyLm5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogbWFwIHBvcHVwIGNsYXNzXHJcbiAqIEBhdWdtZW50cyBNYXBJbnRlcmFjdGlvbkJhc2VcclxuICovXHJcbmV4cG9ydCBjbGFzcyBNYXBQb3B1cENscyBleHRlbmRzIE1hcEludGVyYWN0aW9uQmFzZSB7XHJcbiAgICBwcml2YXRlIF9wb3B1cE9wZW46IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIF9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5OiBBcnJheTxGZWF0dXJlTGF5ZXJQcm9wZXJ0aWVzPjtcclxuICAgIHByaXZhdGUgX2N1cnJlbnRQb3B1cEluZGV4OiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9wb3B1cENvbnRlbnRMZW5ndGg6IG51bWJlcjtcclxuICAgIHByaXZhdGUgX2VzcmlNYXBTZXJ2aWNlTGF5ZXJzOiBBcnJheTxMYXllckVzcmlNYXBTZXJ2ZXI+O1xyXG4gICAgcHJpdmF0ZSBfJHBvcHVwQ2xvc2VyOiBKUXVlcnk7XHJcbiAgICBwcml2YXRlIF8kcG9wdXBDb250ZW50OiBKUXVlcnk7XHJcbiAgICBwcml2YXRlIF8kcG9wdXBDb250YWluZXI6IEpRdWVyeTtcclxuICAgIHByaXZhdGUgX3BvcHVwT3ZlcmxheTogb2wuT3ZlcmxheTtcclxuICAgIHByaXZhdGUgX2FyclBvcHVwTGF5ZXJzOiBBcnJheTxMYXllckJhc2VWZWN0b3I+O1xyXG4gICAgcHJpdmF0ZSBfcG9wdXBDb29yZGluYXRlOiBvbC5Db29yZGluYXRlO1xyXG4gICAgcHJpdmF0ZSBfcG9wdXBDaGFuZ2VkRnVuY3Rpb25zOiBBcnJheTxwb3B1cENoYW5nZWRGdW5jdGlvbj47XHJcbiAgICBwcml2YXRlIF9tYXBDbGlja0Z1bmN0aW9uczogQXJyYXk8RnVuY3Rpb24+O1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uTGF5ZXJMb29rdXA6IE9iamVjdDtcclxuICAgIHByaXZhdGUgX2FyclBvcHVwTGF5ZXJJZHM6IEFycmF5PHN0cmluZz47XHJcbiAgICBwcml2YXRlIF9hcnJQb3B1cExheWVyTmFtZXM6IEFycmF5PHN0cmluZz47XHJcbiAgICBwcml2YXRlIF9hcnJQb3B1cE9sTGF5ZXJzOiBBcnJheTxvbC5sYXllci5WZWN0b3I+O1xyXG4gICAgcHJpdmF0ZSBfYXJyUG9wdXBDb250ZW50RnVuY3Rpb246IEFycmF5PHBvcHVwQ2FsbGJhY2s+O1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uTGF5ZXJzOiBBcnJheTxvbC5sYXllci5WZWN0b3I+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5pdGlvbiBmb3Igb3BlbmxheWVycyBzdHlsZSBmdW5jdGlvblxyXG4gICAgICogQGNhbGxiYWNrIG9sU3R5bGVGdW5jdGlvblxyXG4gICAgICogJnBhcmFtIGZlYXR1cmUgdGhlIG9wZW5sYXllcnMgdmVjdG9yIGZlYXR1cmVcclxuICAgICAqICRwYXJhbVxyXG4gICAgICovXHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIHBvcHVwIGNvbnN0cnVjdG9yXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCdtYXAgcG9wdXAnKTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cExheWVySWRzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcnMgPSBbXTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb24gPSBbXTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250YWluZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ29udGVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDbG9zZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVycyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVyTG9va3VwID0ge307XHJcbiAgICAgICAgdGhpcy5fbWFwQ2xpY2tGdW5jdGlvbnMgPSBbXTtcclxuXHJcbiAgICAgICAgLy9sZXQgYSA9IGZ1bmN0aW9uKCRqcXVlcnlDb250ZW50KXtjb25zb2xlLmxvZygkanF1ZXJ5Q29udGVudCl9O1xyXG4gICAgICAgIC8vdGhpcy5fcG9wdXBDaGFuZ2VkTG9va3VwID0geydhJzogYX07XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDaGFuZ2VkRnVuY3Rpb25zID0gW107XHJcbiAgICAgICAgdGhpcy5fZXNyaU1hcFNlcnZpY2VMYXllcnMgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5fcG9wdXBPcGVuID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDb29yZGluYXRlID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5fcGFzc1Rocm91Z2hMYXllckZlYXR1cmVBcnJheSA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IC0xO1xyXG4gICAgICAgIHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCA9IDA7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIHBvcHVwIGluaXRpYWxpemF0aW9uXHJcbiAgICAgKiBAcGFyYW0ge29sLk1hcH0gdGhlTWFwIC0gdGhlIG9sIG1hcFxyXG4gICAgICovXHJcbiAgICBpbml0KHRoZU1hcDogb2wuTWFwKSB7XHJcbiAgICAgICAgc3VwZXIuaW5pdCh0aGVNYXApO1xyXG5cclxuICAgICAgICBsZXQgJG1hcDtcclxuICAgICAgICBsZXQgdGFyZ2V0ID0gdGhpcy5tYXAuZ2V0VGFyZ2V0KCk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgICRtYXAgPSAkKCcjJyArIHRhcmdldCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAkbWFwID0gJCh0YXJnZXQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJG1hcC5hcHBlbmQoXHJcbiAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwib2wtcG9wdXBcIj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwib2wtcG9wdXAtY2xvc2VyXCI+WDwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+PC9kaXY+JyArXHJcbiAgICAgICAgICAgICc8L2Rpdj4nXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ29udGFpbmVyID0gJG1hcC5maW5kKCcub2wtcG9wdXAnKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250ZW50ID0gJG1hcC5maW5kKCcucG9wdXAtY29udGVudCcpO1xyXG4gICAgICAgIHRoaXMuXyRwb3B1cENsb3NlciA9ICRtYXAuZmluZCgnLm9sLXBvcHVwLWNsb3NlcicpO1xyXG5cclxuICAgICAgICBsZXQgX2Vhc2UgPSAobjogbnVtYmVyKTogbnVtYmVyID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG9sLmVhc2luZy5pbkFuZE91dChuKTtcclxuICAgICAgICB9O1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5ID0gbmV3IG9sLk92ZXJsYXkoe1xyXG4gICAgICAgICAgICBlbGVtZW50OiB0aGlzLl8kcG9wdXBDb250YWluZXJbMF0sXHJcbiAgICAgICAgICAgIGF1dG9QYW46IHRydWUsXHJcbiAgICAgICAgICAgIGF1dG9QYW5BbmltYXRpb246IHtcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyNTAsXHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IHRoZU1hcC5nZXRWaWV3KCkuZ2V0Q2VudGVyKCksXHJcbiAgICAgICAgICAgICAgICBlYXNpbmc6IF9lYXNlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWFwLmFkZE92ZXJsYXkodGhpcy5fcG9wdXBPdmVybGF5KTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ2xvc2VyLmNsaWNrKChldnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIGRpc3BsYXkgcG9wdXAgb24gY2xpY2tcclxuICAgICAgICB0aGlzLl9tYXAub24oJ3NpbmdsZWNsaWNrJywgKGV2dCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwQ29vcmRpbmF0ZSA9IGV2dFsnY29vcmRpbmF0ZSddO1xyXG5cclxuICAgICAgICAgICAgLy8gZXNyaSBtYXAgc2VydmljZSBsYXllcnNcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2VzcmlNYXBTZXJ2aWNlTGF5ZXJzLmxlbmd0aCA+IDApIHtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgcXVlcnlQYXJhbXMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZ2VvbWV0cnk6IGV2dFsnY29vcmRpbmF0ZSddLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgICAgICBnZW9tZXRyeVR5cGU6ICdlc3JpR2VvbWV0cnlQb2ludCcsXHJcbiAgICAgICAgICAgICAgICAgICAgbGF5ZXJzOiAnYWxsJyxcclxuICAgICAgICAgICAgICAgICAgICBzcjogdGhpcy5fbWFwLmdldFZpZXcoKS5nZXRQcm9qZWN0aW9uKCkuZ2V0Q29kZSgpLnNwbGl0KCc6JylbMV0sXHJcbiAgICAgICAgICAgICAgICAgICAgbWFwRXh0ZW50OiAodGhpcy5fbWFwLmdldFZpZXcoKS5jYWxjdWxhdGVFeHRlbnQodGhpcy5fbWFwLmdldFNpemUoKSkgYXMgbnVtYmVyW10pLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZURpc3BsYXk6ICh0aGlzLl9tYXAuZ2V0U2l6ZSgpIGFzIG51bWJlcltdKS5qb2luKCcsJykgKyAnLDk2JyxcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm5HZW9tZXRyeTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICB0b2xlcmFuY2U6IDE1LFxyXG4gICAgICAgICAgICAgICAgICAgIGY6ICdwanNvbidcclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgbCBvZiB0aGlzLl9lc3JpTWFwU2VydmljZUxheWVycykge1xyXG4gICAgICAgICAgICAgICAgICAgIGwuZ2V0UG9wdXBJbmZvKHF1ZXJ5UGFyYW1zKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IGxheWVyRmVhdHVyZU9iamVjdEFycmF5ID0gdGhpcy5fZmVhdHVyZXNBdFBpeGVsKGV2dFsncGl4ZWwnXSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID0gLTE7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxheWVyRmVhdHVyZU9iamVjdEFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZmVhdE9iaiA9IGxheWVyRmVhdHVyZU9iamVjdEFycmF5W2ldO1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCBwcm9wcyA9IGZlYXRPYmouZmVhdHVyZS5nZXRQcm9wZXJ0aWVzKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHBvcHVwQ29udGVudFJlc3BvbnNlID0gdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb25bZmVhdE9iai5sYXllckluZGV4XShwcm9wcywgdGhpcy5fJHBvcHVwQ29udGVudCk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy9za2lwIGlmIHJldHVybiB3YXMgZmFsc2VcclxuICAgICAgICAgICAgICAgIGlmIChwb3B1cENvbnRlbnRSZXNwb25zZSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL2NvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcG9wdXBDb250ZW50UmVzcG9uc2UgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICBmZWF0T2JqLnBvcHVwQ29udGVudCA9IHBvcHVwQ29udGVudFJlc3BvbnNlIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5LnB1c2goZmVhdE9iaik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGZlYXRPYmouc2VsZWN0aW9uTGF5ZXIuZ2V0U291cmNlKCkuYWRkRmVhdHVyZShmZWF0T2JqLmZlYXR1cmUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cENvbnRlbnRMZW5ndGggPSB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID0gLTE7XHJcblxyXG4gICAgICAgICAgICBsZXQgcG9wdXBIdG1sID0gJzxkaXYgY2xhc3M9XCJvbC1wb3B1cC1uYXZcIj4nO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzxzcGFuIGNsYXNzPVwicHJldmlvdXMtcG9wdXAgb2wtcG9wdXAtbmF2LWFycm93XCI+JiM5NjY0Ozwvc3Bhbj4nO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzxzcGFuIGNsYXNzPVwibmV4dC1wb3B1cCBvbC1wb3B1cC1uYXYtYXJyb3dcIj4mIzk2NTQ7PC9zcGFuPic7XHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSBgPHNwYW4gY2xhc3M9XCJjdXJyZW50LXBvcHVwLWl0ZW0tbnVtYmVyXCIgc3R5bGU9XCJmb250LXdlaWdodDogYm9sZDtcIj48L3NwYW4+YDtcclxuICAgICAgICAgICAgcG9wdXBIdG1sICs9IGA8c3Bhbj4mbmJzcDtvZiZuYnNwOzwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gYDxzcGFuIGNsYXNzPVwicG9wdXAtY29udGVudC1sZW5ndGhcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkO1wiPiR7dGhpcy5fcG9wdXBDb250ZW50TGVuZ3RofTwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gYDxzcGFuPiZuYnNwOyZuYnNwOy0mbmJzcDsmbmJzcDs8L3NwYW4+YDtcclxuICAgICAgICAgICAgcG9wdXBIdG1sICs9IGA8c3BhbiBjbGFzcz1cImN1cnJlbnQtcG9wdXAtbGF5ZXItbmFtZVwiPjwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzwvZGl2Pic7XHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSAnPGRpdiBjbGFzcz1cIm9sLXBvcHVwLWlubmVyXCI+JztcclxuXHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSAnPC9kaXY+JztcclxuXHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuaHRtbChwb3B1cEh0bWwpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fJHBvcHVwQ29udGVudC5maW5kKCcucHJldmlvdXMtcG9wdXAnKS5jbGljaygoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4LS07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyRmVhdFNlbGVjdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGxldCBuZXh0UG9wdXAgPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5uZXh0LXBvcHVwJyk7XHJcblxyXG4gICAgICAgICAgICBuZXh0UG9wdXAuY2xpY2soKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCA9PSAxICYmIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID09IHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IDA7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyRmVhdFNlbGVjdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgbmV4dFBvcHVwLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9wb3B1cE92ZXJsYXkuc2V0UG9zaXRpb24odGhpcy5fcG9wdXBDb29yZGluYXRlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuc2Nyb2xsVG9wKDApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcG9wdXBPcGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvL2NoYW5nZSBtb3VzZSBjdXJzb3Igd2hlbiBvdmVyIG1hcmtlclxyXG4gICAgICAgIHRoaXMuX21hcC5vbigncG9pbnRlcm1vdmUnLCAoZXZ0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChldnRbJ2RyYWdnaW5nJ10pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgcGl4ZWwgPSB0aGlzLm1hcC5nZXRFdmVudFBpeGVsKGV2dFsnb3JpZ2luYWxFdmVudCddKTtcclxuICAgICAgICAgICAgbGV0IGhpdCA9IHRoaXMubWFwLmhhc0ZlYXR1cmVBdFBpeGVsKHBpeGVsLCAobHlyQ2FuZGlkYXRlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBvbExheWVyIG9mIHRoaXMuX2FyclBvcHVwT2xMYXllcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobHlyQ2FuZGlkYXRlID09IG9sTGF5ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGxldCBtYXBFbGVtZW50ID0gdGhpcy5tYXAuZ2V0VGFyZ2V0RWxlbWVudCgpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICBtYXBFbGVtZW50LnN0eWxlLmN1cnNvciA9IGhpdCA/ICdwb2ludGVyJyA6ICcnO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGhlbHBlciB0byBzZWxlY3QgZmVhdHVyZXNcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIF90cmlnZ2VyRmVhdFNlbGVjdCgpIHtcclxuICAgICAgICBsZXQgJGN1cnJlbnRQb3B1cEl0ZW1OdW1iZXIgPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5jdXJyZW50LXBvcHVwLWl0ZW0tbnVtYmVyJyk7XHJcbiAgICAgICAgbGV0ICRpbm5lclBvcHVwID0gdGhpcy5fJHBvcHVwQ29udGVudC5maW5kKCcub2wtcG9wdXAtaW5uZXInKTtcclxuICAgICAgICBsZXQgJGxheWVyTmFtZVNwYW4gPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5jdXJyZW50LXBvcHVwLWxheWVyLW5hbWUnKTtcclxuICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICAgICAgbGV0IGx5ckZlYXRPYmogPSB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5W3RoaXMuX2N1cnJlbnRQb3B1cEluZGV4XTtcclxuICAgICAgICAkY3VycmVudFBvcHVwSXRlbU51bWJlci5odG1sKCh0aGlzLl9jdXJyZW50UG9wdXBJbmRleCArIDEpLnRvRml4ZWQoKSk7XHJcbiAgICAgICAgJGxheWVyTmFtZVNwYW4uaHRtbChseXJGZWF0T2JqLmxheWVyTmFtZSk7XHJcbiAgICAgICAgJGlubmVyUG9wdXAuaHRtbChseXJGZWF0T2JqLnBvcHVwQ29udGVudCk7XHJcbiAgICAgICAgbHlyRmVhdE9iai5zZWxlY3Rpb25MYXllci5nZXRTb3VyY2UoKS5hZGRGZWF0dXJlKGx5ckZlYXRPYmouZmVhdHVyZSk7XHJcbiAgICAgICAgZm9yIChsZXQgZiBvZiB0aGlzLl9wb3B1cENoYW5nZWRGdW5jdGlvbnMpIHtcclxuICAgICAgICAgICAgZih0aGlzLl8kcG9wdXBDb250ZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBmZWF0dXJlIC0gdGhlIG9sIGZlYXR1cmVcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJFc3JpTWFwU2VydmVyfSBseXIgLSB0aGUgbWFwIHNlcnZlciBsYXllclxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHBvcHVwQ29udGVudCAtIHBvcHVwIGNvbnRlbnRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBlc3JpTmFtZSAtIGVzcmkgbGF5ZXIgbmFtZVxyXG4gICAgICovXHJcbiAgICBhZGRNYXBTZXJ2aWNlUG9wdXBDb250ZW50KGZlYXR1cmU6IG9sLkZlYXR1cmUsIGx5cjogTGF5ZXJFc3JpTWFwU2VydmVyLCBwb3B1cENvbnRlbnQ6IHN0cmluZywgZXNyaU5hbWU6IHN0cmluZykge1xyXG5cclxuICAgICAgICBsZXQgZmVhdExheWVyT2JqZWN0ID0gbmV3IEZlYXR1cmVMYXllclByb3BlcnRpZXMoXHJcbiAgICAgICAgICAgIGZlYXR1cmUsIGx5ciwgdGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoLCB0aGlzLl9zZWxlY3Rpb25MYXllckxvb2t1cFtseXIuaWRdLCBlc3JpTmFtZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgZmVhdExheWVyT2JqZWN0LnBvcHVwQ29udGVudCA9IHBvcHVwQ29udGVudDtcclxuXHJcbiAgICAgICAgdGhpcy5fcGFzc1Rocm91Z2hMYXllckZlYXR1cmVBcnJheS5wdXNoKGZlYXRMYXllck9iamVjdCk7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoKys7XHJcblxyXG4gICAgICAgICQoJy5wb3B1cC1jb250ZW50LWxlbmd0aCcpLmh0bWwodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoLnRvRml4ZWQoKSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fcG9wdXBPcGVuKSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuZmluZCgnLm5leHQtcG9wdXAnKS50cmlnZ2VyKCdjbGljaycpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5LnNldFBvc2l0aW9uKHRoaXMuX3BvcHVwQ29vcmRpbmF0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuc2Nyb2xsVG9wKDApO1xyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cE9wZW4gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gIHBpeGVsIC0gdGhlIG9sIHBpeGVsXHJcbiAgICAgKiBAcmV0dXJucyAgZmVhdHVyZSBsYXllciBwcm9wZXJ0aWVzXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBfZmVhdHVyZXNBdFBpeGVsKHBpeGVsOiBvbC5QaXhlbCk6IEFycmF5PEZlYXR1cmVMYXllclByb3BlcnRpZXM+IHtcclxuICAgICAgICBsZXQgbGF5ZXJGZWF0dXJlT2JqZWN0QXJyYXkgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5tYXAuZm9yRWFjaEZlYXR1cmVBdFBpeGVsKHBpeGVsLCAoZmVhdHVyZTogb2wuRmVhdHVyZSwgbGF5ZXI6IG9sLmxheWVyLlZlY3RvcikgPT4ge1xyXG4gICAgICAgICAgICBsZXQgbHlySW5kZXggPSB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzLmluZGV4T2YobGF5ZXIpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGx5ckluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIGxheWVyRmVhdHVyZU9iamVjdEFycmF5LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAgbmV3IEZlYXR1cmVMYXllclByb3BlcnRpZXMoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZlYXR1cmUsIHRoaXMuX2FyclBvcHVwTGF5ZXJzW2x5ckluZGV4XSwgbHlySW5kZXgsIHRoaXMuX3NlbGVjdGlvbkxheWVyc1tseXJJbmRleF0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gbGF5ZXJGZWF0dXJlT2JqZWN0QXJyYXk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VQb3B1cCgpIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICB0aGlzLl9wb3B1cE9wZW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9wb3B1cE92ZXJsYXkuc2V0UG9zaXRpb24odW5kZWZpbmVkKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDbG9zZXJbMF0uYmx1cigpO1xyXG4gICAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24oKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250ZW50Lmh0bWwoJycpO1xyXG5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY2hnRnVuY3Rpb24gLSBwb3B1cCBjaGFuZ2UgZnVuY3Rpb25cclxuICAgICAqL1xyXG4gICAgYWRkUG9wdXBDaGFuZ2VkRnVuY3Rpb24oY2hnRnVuY3Rpb246IHBvcHVwQ2hhbmdlZEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDaGFuZ2VkRnVuY3Rpb25zLnB1c2goY2hnRnVuY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJCYXNlfCp9IGx5ciAtIHRoZSBsYXllciBiZWluZyBhY3RlZCBvblxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtzZWxlY3Rpb25TdHlsZT17fV0gdGhlIHNlbGVjdGlvbiBzdHlsZSBjb25maWd1cmF0aW9uXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3NlbGVjdGlvblN0eWxlLmNvbG9yPXJnYmEoMjU1LDE3MCwwLDAuNSldIHRoZSBzZWxlY3Rpb24gY29sb3JcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc2VsZWN0aW9uU3R5bGUud2lkdGg9MTBdIHRoZSBzZWxlY3Rpb24gd2lkdGggZm9yIGxpbmVhciBmZWF0dXJlc1xyXG4gICAgICogQHBhcmFtIHtvYmplY3R8ZnVuY3Rpb259IFtzZWxlY3Rpb25TdHlsZS5vbFN0eWxlPXVuZGVmaW5lZF0gYW4gb3BlbmxheWVycyBzdHlsZSBvYmplY3Qgb3IgZnVuY3Rpb25cclxuICAgICAqIEByZXR1cm5zICB0aGUgbmV3IHNlbGVjdGlvbiBsYXllclxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgX2FkZFBvcHVwTGF5ZXIobHlyOiBMYXllckJhc2VWZWN0b3IsIHNlbGVjdGlvblN0eWxlOiB7Y29sb3I/OiBzdHJpbmcsIHdpZHRoPzogbnVtYmVyLCBvbFN0eWxlPzogb2wuc3R5bGUuU3R5bGV9KTogb2wubGF5ZXIuVmVjdG9yIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuXHJcbiAgICAgICAgc2VsZWN0aW9uU3R5bGUgPSBzZWxlY3Rpb25TdHlsZSB8fCB7fTtcclxuICAgICAgICBzZWxlY3Rpb25TdHlsZS5jb2xvciA9IHNlbGVjdGlvblN0eWxlLmNvbG9yIHx8ICdyZ2JhKDI1NSwxNzAsMCwwLjUpJztcclxuICAgICAgICBzZWxlY3Rpb25TdHlsZS53aWR0aCA9IHNlbGVjdGlvblN0eWxlLndpZHRoIHx8IDEwO1xyXG5cclxuICAgICAgICBsZXQgdGhlU3R5bGU7XHJcblxyXG4gICAgICAgIGlmIChzZWxlY3Rpb25TdHlsZS5vbFN0eWxlKSB7XHJcbiAgICAgICAgICAgIHRoZVN0eWxlID0gc2VsZWN0aW9uU3R5bGUub2xTdHlsZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGVTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICBzdHJva2U6IG5ldyBvbC5zdHlsZS5TdHJva2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzZWxlY3Rpb25TdHlsZS5jb2xvcixcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogc2VsZWN0aW9uU3R5bGUud2lkdGhcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5DaXJjbGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHJhZGl1czogNyxcclxuICAgICAgICAgICAgICAgICAgICBmaWxsOiBuZXcgb2wuc3R5bGUuRmlsbCh7Y29sb3I6IHNlbGVjdGlvblN0eWxlLmNvbG9yfSksXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiBuZXcgb2wuc3R5bGUuU3Ryb2tlKHtjb2xvcjogc2VsZWN0aW9uU3R5bGUuY29sb3IsIHdpZHRoOiAxfSlcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgZmlsbDogbmV3IG9sLnN0eWxlLkZpbGwoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzZWxlY3Rpb25TdHlsZS5jb2xvclxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgc2VsZWN0aW9uTGF5ZXIgPSBuZXcgb2wubGF5ZXIuVmVjdG9yKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IG5ldyBvbC5zb3VyY2UuVmVjdG9yKCksXHJcbiAgICAgICAgICAgICAgICBzdHlsZTogdGhlU3R5bGVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHNlbGVjdGlvbkxheWVyLnNldFpJbmRleCgxMDApO1xyXG5cclxuICAgICAgICB0aGlzLl9zZWxlY3Rpb25MYXllcnMucHVzaChzZWxlY3Rpb25MYXllcik7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uTGF5ZXJMb29rdXBbbHlyLmlkXSA9IHNlbGVjdGlvbkxheWVyO1xyXG4gICAgICAgIHRoaXMubWFwLmFkZExheWVyKHNlbGVjdGlvbkxheWVyKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHNlbGVjdGlvbkxheWVyO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBwb3B1cCB0byB0aGUgbWFwXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyQmFzZXwqfSBseXIgVGhlIGxheWVyIHRoYXQgdGhlIHBvcHVwIHdpdGggYWN0IG9uXHJcbiAgICAgKiBAcGFyYW0ge3BvcHVwQ2FsbGJhY2t9IHBvcHVwQ29udGVudEZ1bmN0aW9uIC0gcG9wdXAgY29udGVudCBmdW5jdGlvbiB0aGF0IG1ha2VzIHBvcHVwIGluZm9cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbc2VsZWN0aW9uU3R5bGU9e31dIHRoZSBzZWxlY3Rpb24gc3R5bGUgY29uZmlndXJhdGlvblxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzZWxlY3Rpb25TdHlsZS5jb2xvcj1yZ2JhKDI1NSwxNzAsMCwwLjUpXSB0aGUgc2VsZWN0aW9uIGNvbG9yXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3NlbGVjdGlvblN0eWxlLndpZHRoPTEwXSB0aGUgc2VsZWN0aW9uIHdpZHRoIGZvciBsaW5lYXIgZmVhdHVyZXNcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fGZ1bmN0aW9ufSBbc2VsZWN0aW9uU3R5bGUub2xTdHlsZT11bmRlZmluZWRdIGFuIG9wZW5sYXllcnMgc3R5bGUgb2JqZWN0IG9yIGZ1bmN0aW9uXHJcbiAgICAgKiBAcmV0dXJucyB7b2JqZWN0fSBhIHJlZmVyZW5jZSB0byB0aGUgb2wgc2VsZWN0aW9uIGxheWVyXHJcbiAgICAgKi9cclxuICAgIGFkZFZlY3RvclBvcHVwKGx5cjogTGF5ZXJCYXNlVmVjdG9yLCBwb3B1cENvbnRlbnRGdW5jdGlvbjogcG9wdXBDYWxsYmFjayxcclxuICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblN0eWxlPzoge2NvbG9yPzogc3RyaW5nLCB3aWR0aD86IG51bWJlciwgb2xTdHlsZT86IG9sLnN0eWxlLlN0eWxlfSkge1xyXG4gICAgICAgIGxldCBzZWxlY3Rpb25MYXllciA9IHRoaXMuX2FkZFBvcHVwTGF5ZXIobHlyLCBzZWxlY3Rpb25TdHlsZSk7XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcklkcy5wdXNoKGx5ci5pZCk7XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzLnB1c2gobHlyLm5hbWUpO1xyXG4gICAgICAgIHRoaXMuX2FyclBvcHVwTGF5ZXJzLnB1c2gobHlyKTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzLnB1c2gobHlyLm9sTGF5ZXIpO1xyXG4gICAgICAgIHRoaXMuX2FyclBvcHVwQ29udGVudEZ1bmN0aW9uLnB1c2gocG9wdXBDb250ZW50RnVuY3Rpb24pO1xyXG5cclxuICAgICAgICByZXR1cm4gc2VsZWN0aW9uTGF5ZXI7XHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyQmFzZX0gbHlyIC0gbGF5ZXJcclxuICAgICAqL1xyXG4gICAgcmVtb3ZlVmVjdG9yUG9wdXAobHlyKSB7XHJcbiAgICAgICAgbGV0IGlkeCA9IHRoaXMuX2FyclBvcHVwTGF5ZXJJZHMuaW5kZXhPZihseXIuaWQpO1xyXG5cclxuICAgICAgICBpZiAoaWR4ID4gLTEpIHtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcklkcy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzLnNwbGljZShpZHgsIDEpO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJQb3B1cExheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBPbExheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb24uc3BsaWNlKGlkeCwgMSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NlbGVjdGlvbkxheWVyTG9va3VwW2x5ci5pZF07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJFc3JpTWFwU2VydmVyfSBseXIgLSBtYXAgc2VydmVyIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW3NlbGVjdGlvblN0eWxlPXt9XSB0aGUgc2VsZWN0aW9uIHN0eWxlIGNvbmZpZ3VyYXRpb25cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc2VsZWN0aW9uU3R5bGUuY29sb3I9cmdiYSgyNTUsMTcwLDAsMC41KV0gdGhlIHNlbGVjdGlvbiBjb2xvclxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzZWxlY3Rpb25TdHlsZS53aWR0aD0xMF0gdGhlIHNlbGVjdGlvbiB3aWR0aCBmb3IgbGluZWFyIGZlYXR1cmVzXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdHxmdW5jdGlvbn0gW3NlbGVjdGlvblN0eWxlLm9sU3R5bGU9dW5kZWZpbmVkXSBhbiBvcGVubGF5ZXJzIHN0eWxlIG9iamVjdCBvciBmdW5jdGlvblxyXG4gICAgICogQHJldHVybnMge29iamVjdH0gYSByZWZlcmVuY2UgdG8gdGhlIG9sIHNlbGVjdGlvbiBsYXllclxyXG4gICAgICovXHJcbiAgICBhZGRNYXBTZXJ2aWNlUG9wdXAobHlyLCBzZWxlY3Rpb25TdHlsZT86IG9sLnN0eWxlLlN0eWxlfEFycmF5PG9sLnN0eWxlLlN0eWxlPnxvbC5TdHlsZUZ1bmN0aW9uKSB7XHJcbiAgICAgICAgbGV0IHNlbGVjdGlvbkxheWVyID0gdGhpcy5fYWRkUG9wdXBMYXllcihseXIsIHNlbGVjdGlvblN0eWxlKTtcclxuICAgICAgICB0aGlzLl9lc3JpTWFwU2VydmljZUxheWVycy5wdXNoKGx5cik7XHJcblxyXG4gICAgICAgIHJldHVybiBzZWxlY3Rpb25MYXllcjtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhclNlbGVjdGlvbigpIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3NlbGVjdGlvbkxheWVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25MYXllcnNbaV0uZ2V0U291cmNlKCkuY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgZiBvZiB0aGlzLl9tYXBDbGlja0Z1bmN0aW9ucykge1xyXG4gICAgICAgICAgICBmKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBtYXAgaXMgY2xpY2tlZCBidXQgYmVmb3JlIGFueSBwb3B1cHMgYXJlIGltcGxlbWVudGVkXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIC0gdGhlIG1hcCBjbGljayBmdW5jdGlvblxyXG4gICAgICovXHJcbiAgICBhZGRNYXBDbGlja0Z1bmN0aW9uKGZ1bmM6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fbWFwQ2xpY2tGdW5jdGlvbnMucHVzaChmdW5jKTtcclxuICAgIH1cclxufVxyXG5ubS5NYXBQb3B1cENscyA9IE1hcFBvcHVwQ2xzO1xyXG5leHBvcnQgZGVmYXVsdCBNYXBQb3B1cENscztcclxuIl19 /***/ }), /* 13 */ @@ -1681,7 +1681,7 @@ function quickMapBase(options) { exports.quickMapBase = quickMapBase; nm.quickMapBase = quickMapBase; exports.default = quickMapBase; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2tNYXBCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicXVpY2tNYXBCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFFSCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBQ2pDLDBCQUE2QjtBQUM3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBWWhDOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILHNCQUE2QixPQUF5QjtJQUNsRCxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQXFCLENBQUM7SUFDM0MsT0FBTyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztJQUN2QyxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBQyxDQUFDO0lBQzlELE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxPQUFPLENBQUMsSUFBSSxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNsRSxPQUFPLENBQUMsWUFBWSxHQUFHLE9BQU8sT0FBTyxDQUFDLFlBQVksSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDOUYsT0FBTyxDQUFDLFVBQVUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxVQUFVLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBR3pGLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXBDLElBQUksUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVB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RUgsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDckIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUM7QUFDZixDQUFDO0FBNUVELG9DQTRFQztBQUVELEVBQUUsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0FBQy9CLGtCQUFlLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzE1LzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnb2xIZWxwZXJzJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIHF1aWNrTWFwT3B0aW9ucyB7XHJcbiAgICBkaXZJZD86IHN0cmluZztcclxuICAgIGNlbnRlcj86IHt4OiBudW1iZXIsIHk6IG51bWJlcn07XHJcbiAgICB6b29tPzogbnVtYmVyO1xyXG4gICAgbWluWm9vbT86IG51bWJlcjtcclxuICAgIG1heFpvb20/OiBudW1iZXI7XHJcbiAgICBiYXNlU3dpdGNoZXI/OiBib29sZWFuO1xyXG4gICAgZnVsbFNjcmVlbj86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXRzIHVwIGEgbWFwIHdpdGggc29tZSBkZWZhdWx0IHBhcmFtZXRlcnMgYW5kIGluaXRpYWxpemVzXHJcbiAqIG1hcE1vdmUgYW5kIG1hcFBvcHVwXHJcbiAqXHJcbiAqIEBwYXJhbSBbb3B0aW9ucz17fV0gY29uZmlnIG9wdGlvbnNcclxuICogQHBhcmFtIFtvcHRpb25zLmRpdklkPW1hcF0gbWFwIGRpdiBpZFxyXG4gKiBAcGFyYW0gW29wdGlvbnMuY2VudGVyPXt9XSBjZW50ZXIgY29uZmlnIG9iamVjdFxyXG4gKiBAcGFyYW0gW29wdGlvbnMuY2VudGVyLng9LTEwMDE4Mzc4XSBjZW50ZXIgeCwgd2ViIG1lcmNhdG9yIHggb3IgbG9uXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5jZW50ZXIueT01NTc0OTEwXSBjZW50ZXIgeSwgd2ViIG1lcmNhdG9yIHkgb3IgbGF0XHJcbiAqIEBwYXJhbSBbb3B0aW9ucy56b29tPTddIHpvb20gbGV2ZWxcclxuICogQHBhcmFtIFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSBtaW4gem9vbVxyXG4gKiBAcGFyYW0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIG1heCB6b29tXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5iYXNlU3dpdGNoZXI9dHJ1ZV0gaWYgYWRkIGJhc2UgbWFwIHN3aXRjaGVyXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5mdWxsU2NyZWVuPWZhbHNlXSBpZiBhZGQgYmFzZSBtYXAgc3dpdGNoZXJcclxuICogQHJldHVybnMgdGhlIG9sIG1hcFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHF1aWNrTWFwQmFzZShvcHRpb25zPzogcXVpY2tNYXBPcHRpb25zKTogb2wuTWFwIHtcclxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9IGFzIHF1aWNrTWFwT3B0aW9ucztcclxuICAgIG9wdGlvbnMuZGl2SWQgPSBvcHRpb25zLmRpdklkIHx8ICdtYXAnO1xyXG4gICAgb3B0aW9ucy5jZW50ZXIgPSBvcHRpb25zLmNlbnRlciB8fCB7eDogLTEwMDE4Mzc4LCB5OiA1NTc0OTEwfTtcclxuICAgIG9wdGlvbnMuem9vbSA9IHR5cGVvZiBvcHRpb25zLnpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLnpvb20gOiA3O1xyXG4gICAgb3B0aW9ucy5iYXNlU3dpdGNoZXIgPSB0eXBlb2Ygb3B0aW9ucy5iYXNlU3dpdGNoZXIgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5iYXNlU3dpdGNoZXIgOiB0cnVlO1xyXG4gICAgb3B0aW9ucy5mdWxsU2NyZWVuID0gdHlwZW9mIG9wdGlvbnMuZnVsbFNjcmVlbiA9PSAnYm9vbGVhbicgPyBvcHRpb25zLmZ1bGxTY3JlZW4gOiBmYWxzZTtcclxuXHJcblxyXG4gICAgbGV0ICRtYXBEaXYgPSAkKCcjJyArIG9wdGlvbnMuZGl2SWQpO1xyXG4gICAgJG1hcERpdi5jc3MoJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XHJcblxyXG4gICAgbGV0IG9zbUxheWVyID0gbmV3IG9sLmxheWVyLlRpbGUoe3NvdXJjZTogbmV3IG9sLnNvdXJjZS5PU00oKX0pO1xyXG4gICAgLy8gbGV0IHNhdExheWVyID0gbmV3IG9sLmxheWVyLlRpbGUoe3Zpc2libGU6IGZhbHNlLCBzb3VyY2U6IG5ldyBvbC5zb3VyY2UuTWFwUXVlc3Qoe2xheWVyOiAnc2F0J30pfSk7XHJcblxyXG4gICAgbGV0IG9zbUNzcyA9IFwidXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURBQUFBQXdDQU1BQUFCZzNBbTFBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFNQVVFeFVSUUFBQURRMU5EazVPVVJGUkV0TFMxRkhTRmxaV0dKUlZHSmlZV2RtWld4c2JIUm1hWEJwYW5OMGMzVjBkSHA1ZVg1K2ZJVnpkNEYzZWVWMGp1ZDVqdVo4azRhSGhvbUhob3lHaDVlR2o1T1ZsSmlWbFppWWw1cVptSnlkbktPVGxhS1ptcUtkbmFPaW9hcXFxS3V6c2JPdnJyU3lzTGEzdGJXNHVMbTZ1YjI3dWIrL3ZiR1h3YkNad2JDZ3hMS2x4ck9xeUxTdHliTzN5clN4eXJXenpiVzJ5N2ExemJLNHk3VzZ6Ylc4eTc2MHlyVEF6YlRGenJQS3pyTE96clRKenJUT3pyN0N3YlhDMExYSzBMVE8wTDNJMGJQUXo3VFF6N1BTMGJYUTBMblIwYnJXMWJ6VDByN1UwNzdWMUx6YzJkcU5xdGVVc2R5WHNjYXF1dU9IbmVhR211ZUhuT2VKbnVpQmxlaUtuK2VOb09pT29PV1VwT2lSbytpU3BlaVVwZXFZcHVtYXFPbWRyUFN5bmVtZ3J1U3F0T21pc09tbHN1dXF0ZXF1dU9XMXZPdXh1K3V4dk9xMXZlK3h2UEswcHZXM28vVzVwZk81cXZTN3FmQ3d2TU91d2MyL3dOZW54Tnl5ek5lLzBOcTMxTnE1MWR5NzJPeTN3T3U0d091K3hleTR3Tys2eE8yK3hmVEFyL1RDc3ZmRnRQSEx2dlRKdU1QRHdNZkh4Y1hLeWMzRHhNdkZ5TXZMeU0zUHpjRFYwOERWMU1UWDFjYlkxczdYMXNqWjFzcmEyTW5kM003YjJjN2MydGZIMXRuQjF0N0YyZDdNMjlmWDF0TFkxdERkMnRIZTNOVGYzTm5TMTlyWjF0dmEyTm5mM3QzZDI4cmgzdFhnM05uaDN0emozOTNrMzluaTRON2s0TjduNXVYRHlPZkx6K3pBeHUzQ3lPekV5ZXpLemVESjNlTE0zdXZQMHUzUDBlUGYyKzdSMHU3UTF1L1UwKzdVMWV6YzArN2EyZS9kMiszZjN2YkZ6dkxPd2ZITjBQUFF3L1RVeC9MV3l2TFl6UERRMWZQZTB1YmM0dnZlNHVIaDMrbmgzKy9oMnUvaDN2SGoydkhsM3VIbTRlVG40dURwNWVibzQrWG81T0RxNmVicTZPVHY2K25sNCsvajRPN2w0ZTduNXVqcDQrbnA1T3pxNWU3czV1cnQ2Tzd0Nk9ydzZ1N3g2dTN4N3ZQajVQRGw0ZkRvNHZEcTVmRHQ1dkR1NlBEdjdQVHY2ZkR4NnZIeDdmSDE3Zlh3NmZYeTdmYjA3L2J6OGZUMTh2bjM4dnIzOWZyNDgvcjU5UHI2K1AzKysvLysvZ0FBQUxOVFNrMEFBQUVBZEZKT1UvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vd0JUOXdjbEFBQUFDWEJJV1hNQUFBN0RBQUFPd3dISGI2aGtBQUFBR0hSRldIUlRiMlowZDJGeVpRQndZV2x1ZEM1dVpYUWdOQzR3TGpsc00zNU9BQUFGTkVsRVFWUklTMVZWQ1p4VlV4aS85bDBVSVVUMmJNblk0M2JWSTJjMFkwMWtTV0lhUzBqMkpFdGtONDFwaW9tWnJQUEtRMmFRN0pLSW1PWmxubTI0OTNUSnpEdWZ1VTFaaSt2L2ZlZSttWi8vNzkzdm5QT2Q3enZmZXM1ekRCRVprQkJqQWNJamIrSWlvdHFnZGhhdDhBTUswdmw3L1I5TjdHaVd0c2hxSXIrRVo1Z1lLaWJ5VXNYWTFsL21mRnBzc3ZVbFdRMEZrVTNneTQrUkIvK2t3WWNPOHBSU25sZGNPVS9yMmxBSEFSU3drMk9SZ0VtT2RDMUVzdVJpWVNxTVB3d3JvTUlyYVprNVYyZllKUWpDS2ZaclJtaDNnU0FaaTJpNGI3d1N5bFd1OEVxWndTNTlKa0ZVYVc5NkpiTlNjK0NFVW10NHJvcnd1Wm1XZERhb2MrdVpFVHVRbFRDVTV4WXpSN211VW5WVVZvK0JjUmhyZS9Wd1VwYXNnSndoSDdKa1lJWUEwc054aG1Dd1VLK2x3NnZDS0JaZWh3MDFkRWl5dzRRNGFFMFo0YWhEaEthRlFzR25KMkJncUtvVEJzTmpGeTBTbFc2d2hSQVpUZG04REJKbWtCWmhEaTFqNHhKUUJrNnl3cldVVHltYUN4YWM4bFJPY2RhdVJHelFTTnRBN0VIVVloWHlFd2hoZ2pGVXFSdU8rcmF1aEYxYXdGcHpDc213VWJqSUZCUjB1MWJLdHlHcHVsVy9IL2NWVnpreUdhSVdUSVI5cEZBVjZHSzJnUE1YTVg4Z1BrOXp6eFhnSTFraW1jQWx0RVlyK2NqaW8xaW1sS3BFYTlyT2lwTG0rcCtDWjZCdy8vcWQxL2YvTytHd014YlNMcHlvWkVjd2t5aDJqSWtzKzNobWRkMmpXVXc0c2N4Tnlzbkh4VTduU3NwVFJjSmpDWkdMM0lzanNZSk1NZzVtd2d4N2dhSU9MQkZDb2dBZ0JCb05hOXcrREU2SStCczdGVGd3d3JKYkhqV0RncFlvMkt3dEJUY1lFRHVsb0M5Z2VRdytrMlJHblBHcFRhT2xxN0FTK1lJQ1V6NERaVmFYMlRpTkRodVlmVHRZNGdlTGkwSW9DbTNYY2N3TTloeDRrVTI4U3RRRWxqRHMzWkVwRkdBKzhkS3pMbVY5eW1Jd0Y1Rk9HbjJHZEpNOEtMSERKYlh5aVlWTUc5TVJUTGlYR0dnMlFLYXhNM2toUFNScndNOXpFSWFyZHhVMncvRWlBMGdPZVlLSHpEUjBWNy9RR1YzbEtJQTlrdHJEQXJ4TzNnZEErazZTS29CaVZ3Y203TmpaYjkrSG56dGcyODJUdUhWWjlMT0lTRk50OU1neUNldFpWY3pTeG55RGJsMTdQZW5xNm1xcGcxSWhSYUVPMmFWTFVPNC9yMTdIOHRUdjZmMTNoNzFkZHV2WkkzWSt1TWRXa3NOU2F1TG92Snc1aHNxaVBJVXZ0MGt1Ny9pQmVVUjNza3Ntb21ZV3RSYkFqYmlMZnYybFg5L1Y3TFZHNHVZblVaWGhRN2YyT1BDWkV4OXdyWVdUY2VQRVFxUEVNTDhwbDRtTWRyL2psWGx2SGlSaUoyK01TVEZZNFRUU1lTdHV2ejJSL0pYaCtQUGVHWG0wNTVKKzMvWURXdU51M1IzREFyUHV0eWcwWmd5a01WRFU5TmRtMjIrd1lhbHIycnNlNDhDbnNUSUZjTW43M3ZmaE5ya3R4MUVVY1puUHY2YWgzWXk1Y0RUUmRCRW9Hb0JlYWg3MWRxRnlqWkRKTGtXazNOM3Y0dXVrdHNzaldwemNpTVB4UWVIajhuTUt6Y0d1QjB0QXl6RmhkQ0tPWVd2NEh3T1FWd0l4TEc5OWE2dXZIM3NKQ3lPM2grazRFWitHNyt4ajVmNFhYa3NvYUdyZE1SelNjOEFSQTgrY2RPdWsyeDZmZmZOTnQ1eCtSbzFvbVBsclQvQ1FEbGNObHB4NE5CSVdYaGt4N1kzWnAzb2ZOUjdVdjg5T20vYmVXMFRMSXluSHYzdnMxVnNPRnBTV1NYdmZ1UFVmOUJyUkZ5eGdYZEhvS0puUUZlZ1BPb3Z2eno1OW50cnp5ZTI0MGlnOFVRM2xESTJWcXdhZ3JLSVFjTFhORkwzd2dsTjJPSGRCUTYvdkkza0VORFZCd1JiM2sxWHRjekZialduNEV6TVlpN0NGMzEyOStKVFl1UlNkckd1UzkyZzVkcHFuNnFYb0pRczV4bUw4cCtXdDRoTGJ0MG14Mk9MTlpSMmJiUHk4ekpOUUdGTS9mL0NmWFpla1JZRmpHQ1dqSUpwTStXaUN6R0JQV0hob3lhQXNqUlQvQjJHeTV5ellKa3dVQUFBQUFFbEZUa1N1UW1DQycpXCI7XHJcbiAgICBsZXQgYWVyaWFsQ3NzID0gXCJ1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBREFBQUFBd0NBTUFBQUJnM0FtMUFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQU1BVUV4VVJRQUxCZ0lNRFFnT0J3UU9FUWNUQndVU0N3b1ZEQXdkQnc4WkRnVVJFd1lVR0FZWkZRWVpHZ2tURlFvVkdRc1pGQXdaSEJNZURoSWJGQkViSEF3V0lBNGJJUkVjSVE0aENRd2pGdzRsSEJna0RCOHNEeFVpRXhJaUdoQW9HeG9oRlJzaEdSb3JIUWNyS1FzaUlRd21LZ29vSkEwcEtRODFKdzh5TFJNaUl4SW1LeFVySlJFdUtoc2xKQjBySWhvb0tSVXVNQk15TGhrd0pob3pLaDQ4THhVek1STTlNQnd6TWlVdkZDTXRHaU13RWl3ekZDZ3pIREkrR1NJc0lTa3ZKU1F4SWlNMkxpWTVKaWMrTHlrMEpTbzBLeTQ5SlNzOUtTVTFOU003TkNzMk5TOCtORE0xSnpVOUxqZzdJREpDSFMxRExTTkFNaXRDTVN4SU9qUkVJVFpMSURaSktEbEZJanBGS3p0S0pUMUxLekpCTXpwSE1EMUpNanBLUEQxUktqbFFOQzFEUWo1UVFFQThNRUpHSmtCS0pVSk5LMGxMTEVKTU1rVk1QRXBPTkVOU0xVZFpMMHBUTGtwYUxrUlVNa1JTUEVWWk1rdFVNMHBWT2tsWk1rbFpORXBjTlUxWk1rMVpOVXhmTWs1ZE5reGNPVkZVTTFSVU9GSmJOVkZaT1ZOWVBWRmRPVkpkUEZWYU9WVmFQVlZkT2xWZFBWcGFObHBkTzBwaE4wMWhPbEJpTjFOaFBGTm9QMXBpUFdGYlBtUmpQRU5PUUV0UFNVUlRRa0pWUzB4VlFrMVZTa3hiUWt4Y1MwaGVVVkZYUkZSY1FsSmZURnhlUWxwZVMwNWxRazFrU0ZSalFWUmpTbFpwUTF0a1FseGxTbHhwUkYxclNWVm5VVnRsVTFsbFhGOXRVMXhvWGx4d1NsOXJhbVJmUW1KbFEyRmhTV0ZsU1dGbFRtVmxTV1JtVEdGb1FXRnBSV0ZzUm1WcFJXVnRSbU5zU210bFJHcHFSbXBzUzJCbVdHUnNVbUZyVzJwdFVtWnlSMlJ4VEdweFRXVnlVMlJ5VzJkNVYydHpVbXQwV1cxNVZHMTVXWEZ1VEhOdFZuRnhUWEY0VDNoMFRuSnpVbkoxWEhKNFZYTjZXbnAwVkh4MVczMTVWWHA4WEdSMFlHeDBZSFZ6WlhKMGFIUjlaWFYrYUhsOVlIT0NYWHFCWFhlQ1lIeUNZM2lFYUh5SVluK0phWHFLY1lCNVdJTjZZNFNDWG9DRFpJR0VhWUNJWm9PTGE0aUNhSW1KYklPT2RZdU1jbzZPZUl1VmNwT0tiWktQYzVhUWI1ZVhlNXVmZzZLamhBQUFBQUFBQUFBQUFBQUFBT0dDZVFnQUFBRUFkRkpPVS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy93QlQ5d2NsQUFBQUNYQklXWE1BQUE3REFBQU93d0hIYjZoa0FBQUFHSFJGV0hSVGIyWjBkMkZ5WlFCd1lXbHVkQzV1WlhRZ05DNHdMamxzTTM1T0FBQUg4MGxFUVZSSVN5MVdiWFFVVnhtKzZ3cW5rM1ptcHhsMkZHMkVHZzkyQzhHRGxXcHRWVHdhK3VGM3hjS21EZkZ6Q1V6RHNKTnN1blhpcGdsSlhKYnJ0Sldtd1pOU25IRDNqb2pSZ1VJbTJVdW1JWjBKWjdKQnlyQUxiTVdXMElCVzhhUmE0K2NmNzZUZVgzTm0zdWMrei9zKzcvdnVnbDRyL2FNVHJUNGUxcFBUcW5ubUpObjVBeVV6Um5yUmxlL3FFMzNkc3ZyQnRBUVZveHRwWk5LM3pTellqVWp2aVdPMkFnK1I3N2RsN1czNm4vMUVwOUtCUEcvUytQeTBQa2pVL2dQS1FHcXdUSHJ5aVdZRkFYU3ZNYWlyc2lvN1NqeU5zbkN6aDBxS0ltVjkvN21oZkhRWngyeU4xTys3clhVbTMzTVVQYWJvT2tBSkhhb0lkWGZKajJ4V2V5RDhqTUZFWGt2SXU1cXpwVTk4OGdXQjV6bCtHUytzRmU1NXRyRVZQZFdaQjJtaXE4YkJWa05GTzJSMHFucmZraVhoY0podEROWEU2dGJXOTcvczlPOS83WmZWaHg4Ni9Dd3JST3BmdnZ4Ym9NcWVMc3VxUHIxajQ0cUV3RE5NT0J4aW1VaVlvVThzdzdCQy9hN1Q3MnVFbnlKRGxHeFo5S2NnbFpSeXVxcXJ2L3RTWkVyZ09JNE5nUkJUSXc5RW1IQW9GR1pabnA2YUdhSjJHVHhmeFlzOGtLVlVRaDdXQjVoUWVDM0xzVXhveFZLVzE0bDNCWDJXY29VWVBpWnlMTGU4dGVaK2l1VDRHR2h2VjVLcEtXa3B5enhFcjJNWmdRMXhkUmpmUkJvSCsyazZsSUhqS1RIUFBCbzhDU0pJU3FxcTR3R0dPY1d5bElHbGd2Z05YMUdkOHZGNWYrSVVJd2IzMG5nK0dnMlFmQlJJTXZ5MGpHOFNWa1lvNE4wenZVWFZSenRiSi9MNnhMN2xVWkVYQkVIa3VacWxTNmdFQVVnS0p1cm5oRnRmcEFDT1lkOGIvaFZiSlBxd2k0NGE2S0Ewc1BWaklpL1NJeXhiM3U4S2xBSjBTOGpSVmdybFcrblZIUGRyaGlYQ3h1NDJkODZCeWtzRGM4MFAzTWtKRkJGUThIbzFsUWVncFdKUldGR3NEc1J3d3Y3cEl5dnVRVzBaa3JYNk5EVkZicWN2YVFJOHZieXF6dDVBQVJyc2JLeDV5aFFFR3Mrd1BPNTZiT0srMHJjd01yT0trcFViWldZeFYwNFVlWlp2L2NCS0ZoUkw2UWR2OXk0TGZFREE3L3RoZzd0VG12MWE1L0duTzB3bDBkUWc4MHdnbFphSFVteFJ2andBSE9meU4wbXhycHFMVXBjanNLM05IWU1vNFIxbzZlaG8yWnlJYjJGb2VPQzNJTEs4a1oySFFNT3VXeXdHWFVrSkJDZVRiWUZTMCt5bTFoMi82VWdtdm5ydktZWlp0SUVYR2Y3NUMyY0lBcDVMSE5kNzF4N3VQb1RqYWtyV0g5ZTNLRnBhYXRqVXZKVXlzRncwS3JMTVlNVzJsVGc0UGVVUXg2a0pFQUx2eFhFbUNkVnlQTEh0Q1NqQmhjMDFYQ2pJZ2FmeG91K1BFNktDMWRoeFNDd29CQ2MrTjRQM2J0TTg0cG1kU1NqSm5qTy9udlk0TFFmVnl6NS9JK3Y2SXdqVU9NankrTVZDeEliS3VwVEphRWt0cDdjVEtVNDJQdmpoMm0vOGNTcEM2YVBzYVgvTUhTdVVRTFZWc0lhNFJVVHMvci9CVkFleE5kamRuc05HN2ovclY5M3hoZUxNektuRnJQZVRFUWNoQ3lDY0tiMjVhQUluN2xyQWVydHJad3lOWE04TjZ6ZldyRm8zZDJTbU9FY0Y4M3gvcitPT0ZnckFIWVdGN2NFTGpoVjdVUW8vNldBSVVWbDlKRmw4YS8vSFo2NlZwYlkzSTlRS1pxUHJ1NzdsQStpT1dBSXIwaEt4SENtbXIwb3RoU3llSWw1eTNxdDR4VDhnU05yS0Vab3pzOEVsczY3cmdzTE9aK3lnendNZmJ0TmhvYmZnenBFeUduejdodFB0elVpNlB1T29qN0swV0YvTVhpVUZ4d0dhalJEMWhqWVhIWEk5cDQwNnFPeWlucDUvdGlXY0RIWTBqSXU0bjY0UWZxN2tsaUIyZ2VtYWc5UWJPaWEwUGJiRE1iZDQzU0h1dnhGeHJBb2N4aW5zN01YNUtxYmUxUWl4S0J4b1Y0Ly9QZkFnR0N1K1JsbTRTdlppenlESCswcmVESHA5MmlPMEJ1WDNiQ2ZJdGwwUEV3dllMcXB3WEcyTUhsR3NRNFM4cE1KWnYxSkdtSGlFb0hRRGRPandtVmxFUC9uRTlBREtqSTh4TEkwT09HSVRmeTBTYmVHL0MyaktVREdTbERoTTlJM0lwSzlpdXA2WG5iUk5DN3lxdWVOc0pDQ0lpWHpkUWhuYUdOKzQ2dW1uRWR5NVU1VWJVSjQ4TEZNOUdrSm84QmRET2lBWjdaSVFiS2hZTE1xdmhVMndtTnhqRUFzUzJBSTd5NG5XRjY0ZHVlUGJrN1lWM3p2QVZMRU1EOUF4SlJOYTNLRFVpYlY3RGpua3Vwck1FWWpTY0ZOY2FSMmNlUDJ1OVIvNWsxMDUyUnltZTVwaEFGUnN3bEhqQXVkaVA0ZE95N0NheExnZEpoOXZVbFUxNzAyLytMUGExVTlmdlBpOXFsQTRYRVVCSmMzZEZscHNSNDU3SURsMWlQcUxwN284MU5RZ3lWMTlpWVUzOHVUaXY5NzVQZDNTaXdRY3NHangrdjQvNmZsNVQ3RU9PTVRDdHBiS3hmZW1zUXEvM29sUVpjbWluQURBQUkwY3VHTEhhSE9GeGJ1R3ZSay9aOXU3Q1VMcW9WUjZORTB5eDFhdmozMG9SaGMvaldVb0lBTEd4a3owZGcxRGw5aWFJN0xxT09YS3NYSkZ3aml1RUFpNzBKcmEyblcxUEwwOHpMQmhac01BQnBXNWNzSTdUUGZldzlpcEZLY241azFpKzFLeUNXS2pDM1cvOGRGMWQ2NjYrUmFhYkJWVEZUSGFjam9vakJORGgwTkR4aytJUFRsd2ZxSmtXcGJucEZIWEliTGJtcHhFUTNmZi9aMGcvbWF1WHNvbG45d0RSankvTkhzUUZ3M1A2dld1VEo0My8rRlpyazJjdkFGUmlwQ0tkZkQ5eTIrcGpSajc4czBLZENVREtKdmRWOTFDaG5nVjM4VDIwVE0rZ2doanBKYVBscEZyMnhiRXo1ZzRBL05HdDVyTndkd21ZR2VlZU1YQlNMSEhVSWMrNlJzb2pSSDlWVFVtMy9tTGYvNjRiNDcwWHZveG9US2hsTUJRMmpNRXpvMlBqeGRHTXBwbW4xUk0yNGJXRkpxYVF2NEJjdUphMlNhbTdab2txMWxkQ3N6MDZOQ0JIcmh3cVZRWXBmRmo0Mk5aZXh6MUVXOVNSL2tUNThuRWVRS0piMmZQWGpqcDB1L1lVa3dIRWdMZU9uZjJuT3VmMVRSVE0wMkNMS0xUUHk2MC94MUNDenRxbjdFditCZHNDM20rMzBkZWNRdlcvd0JOVHdVK0NmVVFBUUFBQUFCSlJVNUVya0pnZ2c9PScpXCI7XHJcblxyXG4gICAgaWYgKG9wdGlvbnMuYmFzZVN3aXRjaGVyKSB7XHJcbiAgICAgICAgLy8gIGxldCBzd2l0Y2hlckNvbnRlbnQgPSAnPGRpdiBjbGFzcz1cImJhc2UtbWFwLXN3aXRjaGVyXCIgdGl0bGU9XCJUb2dnbGUgQmFzZSBMYXllclwiIHN0eWxlPVwiJztcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9ICdwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNzBweDsgbGVmdDogNHB4OyBib3JkZXI6IHNvbGlkIGJsYWNrIDFweDsgJztcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9IGBoZWlnaHQ6IDUwcHg7IHdpZHRoOiA1MHB4OyB6LWluZGV4OiAxMDsgYm9yZGVyLXJhZGl1czogNHB4OyBiYWNrZ3JvdW5kOiAke2FlcmlhbENzc307YDtcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9ICdcIj48L2Rpdj4nO1xyXG4gICAgICAgIC8vICAkbWFwRGl2LmFwcGVuZChzd2l0Y2hlckNvbnRlbnQpO1xyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gJG1hcERpdi5maW5kKCcuYmFzZS1tYXAtc3dpdGNoZXInKS5jbGljayhmdW5jdGlvbigpIHtcclxuICAgICAgICAvLyAgICAgIFwidXNlIHN0cmljdFwiO1xyXG4gICAgICAgIC8vICAgICAgb3NtTGF5ZXIuc2V0VmlzaWJsZSghb3NtTGF5ZXIuZ2V0VmlzaWJsZSgpKTtcclxuICAgICAgICAvLyAgICAgIHNhdExheWVyLnNldFZpc2libGUoIXNhdExheWVyLmdldFZpc2libGUoKSk7XHJcbiAgICAgICAgLy9cclxuICAgICAgICAvLyAgICAgIGlmIChvc21MYXllci5nZXRWaXNpYmxlKCkpe1xyXG4gICAgICAgIC8vICAgICAgICAgICQodGhpcykuY3NzKCdiYWNrZ3JvdW5kJywgYWVyaWFsQ3NzKTtcclxuICAgICAgICAvLyAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgJCh0aGlzKS5jc3MoJ2JhY2tncm91bmQnLCBvc21Dc3MpO1xyXG4gICAgICAgIC8vICAgICAgfVxyXG4gICAgICAgIC8vICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0aW9ucy56b29tIDwgMCB8fCBvcHRpb25zLnpvb20gPiAyOCkge1xyXG4gICAgICAgIHRocm93ICd6b29tIG91dCBvZiByYW5nZSc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9wdGlvbnMuY2VudGVyLnggPj0gLTE4MCAmJiBvcHRpb25zLmNlbnRlci54IDw9IDE4MCAmJiBvcHRpb25zLmNlbnRlci55ID49IC05MCAmJiBvcHRpb25zLmNlbnRlci55IDw9IDkwKSB7XHJcbiAgICAgICAgbGV0IHAgPSBuZXcgb2wuZ2VvbS5Qb2ludChbb3B0aW9ucy5jZW50ZXIueCwgb3B0aW9ucy5jZW50ZXIueV0pO1xyXG4gICAgICAgIG5ldyBvbC5wcm9qLlByb2plY3Rpb24oe2NvZGU6IFwiRVBTRzo0MzI2XCJ9KTtcclxuXHJcbiAgICAgICAgcC50cmFuc2Zvcm0obmV3IG9sLnByb2ouUHJvamVjdGlvbih7Y29kZTogXCJFUFNHOjQzMjZcIn0pLCBuZXcgb2wucHJvai5Qcm9qZWN0aW9uKHtjb2RlOiBcIkVQU0c6Mzg1N1wifSkpO1xyXG4gICAgICAgIGxldCBjb29yZGluYXRlcyA9IHAuZ2V0Q29vcmRpbmF0ZXMoKTtcclxuICAgICAgICBvcHRpb25zLmNlbnRlci54ID0gY29vcmRpbmF0ZXNbMF07XHJcbiAgICAgICAgb3B0aW9ucy5jZW50ZXIueSA9IGNvb3JkaW5hdGVzWzFdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xzID0gb2wuY29udHJvbC5kZWZhdWx0cyh7XHJcbiAgICAgICAgICAgIGF0dHJpYnV0aW9uT3B0aW9uczoge2NvbGxhcHNpYmxlOiBmYWxzZX1cclxuICAgICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IHZpZXcgPSBuZXcgb2wuVmlldyh7XHJcbiAgICAgICAgY2VudGVyOiBbb3B0aW9ucy5jZW50ZXIueCwgb3B0aW9ucy5jZW50ZXIueV0sXHJcbiAgICAgICAgem9vbTogb3B0aW9ucy56b29tLFxyXG4gICAgICAgIG1pblpvb206IG9wdGlvbnMubWluWm9vbSxcclxuICAgICAgICBtYXhab29tOiBvcHRpb25zLm1heFpvb21cclxuICAgIH0pO1xyXG5cclxuICAgIGxldCBtYXAgPSBuZXcgb2wuTWFwKHtcclxuICAgICAgICBsYXllcnM6IFtvc21MYXllcl0sXHJcbiAgICAgICAgdGFyZ2V0OiBvcHRpb25zLmRpdklkLFxyXG4gICAgICAgIGNvbnRyb2xzOiBjb250cm9scyxcclxuICAgICAgICB2aWV3OiB2aWV3XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAob3B0aW9ucy5mdWxsU2NyZWVuKSB7XHJcbiAgICAgICAgbWFwLmFkZENvbnRyb2wobmV3IG9sLmNvbnRyb2wuRnVsbFNjcmVlbih7fSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtYXA7XHJcbn1cclxuXHJcbm5tLnF1aWNrTWFwQmFzZSA9IHF1aWNrTWFwQmFzZTtcclxuZXhwb3J0IGRlZmF1bHQgcXVpY2tNYXBCYXNlO1xyXG4iXX0= /***/ }), /* 14 */ @@ -1763,7 +1763,7 @@ function resolutionToZoom(resolution) { } exports.resolutionToZoom = resolutionToZoom; nm.resolutionToZoom = resolutionToZoom; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbVJlc29sdXRpb25Db252ZXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiem9vbVJlc29sdXRpb25Db252ZXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFFSCwyQ0FBc0M7QUFDdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBRXRELElBQUksY0FBYyxHQUFHO0lBQ2pCLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLHFCQUFxQjtJQUNyQixxQkFBcUIsQ0FBQyxJQUFJO0NBQzdCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsMEJBQWlDLFNBQVM7SUFDdEMsWUFBWSxDQUFDO0lBRWIsRUFBRSxDQUFDLENBQUMsT0FBTyxTQUFTLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMvQixFQUFFLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLElBQUksQ0FBQyxJQUFJLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNELE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBZ0MsU0FBVyxDQUFDLENBQUM7WUFFekQsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNyQixDQUFDO0lBQ0wsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUNyQixDQUFDO0FBQ0wsQ0FBQztBQWRELDRDQWNDO0FBQ0QsRUFBRSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0FBR3ZDOzs7O0dBSUc7QUFDSCwwQkFBaUMsVUFBVTtJQUN2QyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUMsQ0FBQztRQUM1QyxFQUFFLENBQUMsQ0FBQyxVQUFVLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUEsQ0FBQztZQUNsQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2IsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ2IsQ0FBQztBQVJELDRDQVFDO0FBRUQsRUFBRSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTQvMjAxNS5cclxuICovXHJcblxyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycy56b29tUmVzb2x1dGlvbkNvbnZlcnQnKTtcclxuXHJcbmxldCBfem9vbVJlc0xvb2t1cCA9IFtcclxuICAgIDE1NjU0My4wMzM5MjgwNDA5NywgLy8wXHJcbiAgICA3ODI3MS41MTY5NjQwMjA0OCwgLy8xXHJcbiAgICAzOTEzNS43NTg0ODIwMTAyNCwgLy8yXHJcbiAgICAxOTU2Ny44NzkyNDEwMDUxMiwgLy8zXHJcbiAgICA5NzgzLjkzOTYyMDUwMjU2LCAvLzRcclxuICAgIDQ4OTEuOTY5ODEwMjUxMjgsIC8vNVxyXG4gICAgMjQ0NS45ODQ5MDUxMjU2NCwgLy82XHJcbiAgICAxMjIyLjk5MjQ1MjU2MjgyLCAvLzdcclxuICAgIDYxMS40OTYyMjYyODE0MSwgLy84XHJcbiAgICAzMDUuNzQ4MTEzMTQwNzA1LCAvLzlcclxuICAgIDE1Mi44NzQwNTY1NzAzNTI1LCAvLzEwXHJcbiAgICA3Ni40MzcwMjgyODUxNzYyNSwgLy8xMVxyXG4gICAgMzguMjE4NTE0MTQyNTg4MTMsIC8vMTJcclxuICAgIDE5LjEwOTI1NzA3MTI5NDA2MywgLy8xM1xyXG4gICAgOS41NTQ2Mjg1MzU2NDcwMzIsIC8vMTRcclxuICAgIDQuNzc3MzE0MjY3ODIzNTE2LCAvLzE1XHJcbiAgICAyLjM4ODY1NzEzMzkxMTc1OCwgLy8xNlxyXG4gICAgMS4xOTQzMjg1NjY5NTU4NzksIC8vMTdcclxuICAgIDAuNTk3MTY0MjgzNDc3OTM5NSwgLy8xOFxyXG4gICAgMC4yOTg1ODIxNDE3Mzg5Njk3NCwgLy8xOVxyXG4gICAgMC4xNDkyOTEwNzA4Njk0ODQ4NywgLy8yMFxyXG4gICAgMC4wNzQ2NDU1MzU0MzQ3NDI0NCwgLy8yMVxyXG4gICAgMC4wMzczMjI3Njc3MTczNzEyMiwgLy8yMlxyXG4gICAgMC4wMTg2NjEzODM4NTg2ODU2MSwgLy8yM1xyXG4gICAgMC4wMDkzMzA2OTE5MjkzNDI4MDQsIC8vMjRcclxuICAgIDAuMDA0NjY1MzQ1OTY0NjcxNDAyLCAvLzI1XHJcbiAgICAwLjAwMjMzMjY3Mjk4MjMzNTcwMSwgLy8yNlxyXG4gICAgMC4wMDExNjYzMzY0OTExNjc4NTA2LCAvLzI3XHJcbiAgICAwLjAwMDU4MzE2ODI0NTU4MzkyNTMgLy8yOFxyXG5dO1xyXG5cclxuLyoqXHJcbiAqIEdldCB0aGUgcmVzb2x1dGlvbiBnaXZlbiB0aGUgem9vbSBsZXZlbFxyXG4gKiBAcGFyYW0ge251bWJlcn0gem9vbUxldmVsIC0gdGhlIHpvb20gbGV2ZWxcclxuICogQHJldHVybnMge251bWJlcnwqfSB0aGUgbWFwIHJlc29sdXRpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB6b29tVG9SZXNvbHV0aW9uKHpvb21MZXZlbCkge1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB6b29tTGV2ZWwgPT0gJ251bWJlcicpIHtcclxuICAgICAgICBpZiAoem9vbUxldmVsICUgMSA9PT0gMCAmJiB6b29tTGV2ZWwgPj0gMCAmJiB6b29tTGV2ZWwgPD0gMjgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIF96b29tUmVzTG9va3VwW3pvb21MZXZlbF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYGludmFsaWQgem9vbSBsZXZlbCBwcm92aWRlZDogJHt6b29tTGV2ZWx9YCk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxufVxyXG5ubS56b29tVG9SZXNvbHV0aW9uID0gem9vbVRvUmVzb2x1dGlvbjtcclxuXHJcblxyXG4vKipcclxuICogR2V0IHJlc29sdXRpb24gZnJvbSB0aGUgem9vbSBsZXZlbFxyXG4gKiBAcGFyYW0ge251bWJlcn0gcmVzb2x1dGlvbiAtIHRoZSByZXNvbHV0aW9uXHJcbiAqIEByZXR1cm5zIHtudW1iZXJ8Kn0gdGhlIHpvb20gbGV2ZWxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZXNvbHV0aW9uVG9ab29tKHJlc29sdXRpb24pe1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBfem9vbVJlc0xvb2t1cC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgaWYgKHJlc29sdXRpb24gPj0gX3pvb21SZXNMb29rdXBbaV0gKXtcclxuICAgICAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAwO1xyXG59XHJcblxyXG5ubS5yZXNvbHV0aW9uVG9ab29tID0gcmVzb2x1dGlvblRvWm9vbTtcclxuIl19 /***/ }), /* 15 */ @@ -2142,7 +2142,7 @@ function makeMapServiceLegend(esriResponse) { } exports.makeMapServiceLegend = makeMapServiceLegend; nm.makeMapServiceLegend = makeMapServiceLegend; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNyaVRvT2xTdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVzcmlUb09sU3R5bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0dBRUc7QUFDSCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBQ2pDLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUU5Qzs7Ozs7R0FLRztBQUVIOzs7Ozs7R0FNRztBQUNILDJCQUEyQixVQUFVLEVBQUUsT0FBTztJQUMxQyxZQUFZLENBQUM7SUFFYixNQUFNLENBQUMsVUFBUSxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBSSxPQUFPLE1BQUcsQ0FBQztBQUNqRixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILG9CQUFvQixHQUFHO0lBQ25CLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1NBQ2IsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7U0FDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUM7U0FDdkIsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7U0FDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7U0FDckIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsRUFBRSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7QUE0QjNCO0lBTUk7Ozs7T0FJRztJQUNILHNCQUFZLFNBQXFCLEVBQUUsT0FBZTtRQUM5QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBQ0wsbUJBQUM7QUFBRCxDQUFDLEFBakJELElBaUJDO0FBT0Q7SUFBMEIsK0JBQVk7SUFDbEMscUJBQVksU0FBcUIsRUFBRSxPQUFlO1FBQWxELFlBQ0ksa0JBQU0sU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQThCNUI7UUE3QkcsTUFBTSxDQUFDLENBQUMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzFCLEtBQUssU0FBUztnQkFDVixJQUFJLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3ZFLElBQUksVUFBVSxHQUFHLGlCQUFpQixDQUFDLEtBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQy9FLElBQUksWUFBWSxHQUFHLEtBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDaEQsSUFBSSxNQUFNLEdBQUcsS0FBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBR2pDLEtBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztvQkFDOUIsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7d0JBQ3ZCLE1BQU0sRUFBRSxNQUFNO3dCQUNkLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDOzRCQUNwQixLQUFLLEVBQUUsVUFBVTt5QkFDcEIsQ0FBQzt3QkFDRixNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBQyxDQUFDO3FCQUN4RSxDQUFDO2lCQUNMLENBQUMsQ0FBQztnQkFDSCxLQUFJLENBQUMsVUFBVSxHQUFHLHNEQUFpRCxVQUFVLHNCQUFrQixDQUFDO2dCQUNoRyxLQUFLLENBQUM7WUFDVixLQUFLLFNBQVM7Z0JBQ1YsS0FBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO29CQUM5QixLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsRUFBRSwyQkFBeUIsS0FBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUcsRUFBQyxDQUFDO2lCQUMxRixDQUFDLENBQUM7Z0JBQ0gsS0FBSSxDQUFDLFVBQVUsR0FBRyxnRkFBeUUsS0FBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsUUFBSSxDQUFDO2dCQUMzSCxLQUFLLENBQUM7WUFDVjtnQkFDSSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDNUIsS0FBSyxDQUFDLDRDQUE0QyxHQUFHLEtBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNyRixDQUFDOztJQUNMLENBQUM7SUFDTCxrQkFBQztBQUFELENBQUMsQUFqQ0QsQ0FBMEIsWUFBWSxHQWlDckM7QUFFRDtJQUF5Qiw4QkFBWTtJQUNqQyxvQkFBWSxTQUFxQixFQUFFLE9BQWU7UUFBbEQsWUFDSSxrQkFBTSxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBNEI1QjtRQTNCRyxNQUFNLENBQUMsQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDMUIsS0FBSyxTQUFTO2dCQUNWLElBQUksVUFBVSxHQUFHLGlCQUFpQixDQUFDLEtBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdkUsSUFBSSxTQUFTLEdBQUcsS0FBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBRXJDLEtBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztvQkFDOUIsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7d0JBQ3hCLEtBQUssRUFBRSxVQUFVO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLEtBQUssRUFBRSxTQUFTO3FCQUNuQixDQUFDO2lCQUNMLENBQUMsQ0FBQztnQkFFSCxLQUFJLENBQUMsVUFBVSxHQUFHLG9DQUFrQyxDQUFDO2dCQUNyRCxLQUFJLENBQUMsVUFBVSxJQUFJLFVBQVMsQ0FBQztnQkFDN0IsS0FBSSxDQUFDLFVBQVUsSUFBSSx1QkFBcUIsVUFBVSxNQUFHLENBQUM7Z0JBQ3RELEtBQUksQ0FBQyxVQUFVLElBQUksY0FBYyxDQUFDO2dCQUNsQyxLQUFJLENBQUMsVUFBVSxJQUFJLGNBQWMsQ0FBQztnQkFDbEMsS0FBSSxDQUFDLFVBQVUsSUFBSSxxQkFBcUIsQ0FBQztnQkFDekMsS0FBSSxDQUFDLFVBQVUsSUFBSSx3QkFBd0IsQ0FBQztnQkFDNUMsS0FBSSxDQUFDLFVBQVUsSUFBSSxZQUFZLENBQUM7Z0JBQ2hDLEtBQUksQ0FBQyxVQUFVLElBQUksWUFBVyxDQUFDO2dCQUMvQixLQUFLLENBQUM7WUFDVjtnQkFDSSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDNUIsS0FBSyxDQUFDLDJDQUEyQyxHQUFHLEtBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNwRixDQUFDOztJQUNMLENBQUM7SUFDTCxpQkFBQztBQUFELENBQUMsQUEvQkQsQ0FBeUIsWUFBWSxHQStCcEM7QUFFRDtJQUE0QixpQ0FBWTtJQUNwQyx1QkFBWSxTQUFxQixFQUFFLE9BQWU7UUFBbEQsWUFDSSxrQkFBTSxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBa0M1QjtRQWpDRyxNQUFNLENBQUMsQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixLQUFLLFNBQVM7Z0JBQ1YsSUFBSSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsS0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN2RSxJQUFJLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMvRSxJQUFJLFlBQVksR0FBRyxLQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBRWhELEtBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztvQkFDOUIsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7d0JBQ3hCLEtBQUssRUFBRSxVQUFVO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLEtBQUssRUFBRSxZQUFZO3FCQUN0QixDQUFDO29CQUNGLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO3dCQUNwQixLQUFLLEVBQUUsVUFBVTtxQkFDcEIsQ0FBQztpQkFDTCxDQUFDLENBQUM7Z0JBRUgsS0FBSSxDQUFDLFVBQVUsR0FBRyxvQ0FBa0MsQ0FBQztnQkFDckQsS0FBSSxDQUFDLFVBQVUsSUFBSSxVQUFTLENBQUM7Z0JBQzdCLEtBQUksQ0FBQyxVQUFVLElBQUksdUJBQXFCLFVBQVUsTUFBRyxDQUFDO2dCQUN0RCxLQUFJLENBQUMsVUFBVSxJQUFJLG1CQUFpQixVQUFVLFVBQU8sQ0FBQztnQkFDdEQsS0FBSSxDQUFDLFVBQVUsSUFBSSxjQUFjLENBQUM7Z0JBQ2xDLEtBQUksQ0FBQyxVQUFVLElBQUksY0FBYyxDQUFDO2dCQUNsQyxLQUFJLENBQUMsVUFBVSxJQUFJLHFCQUFxQixDQUFDO2dCQUN6QyxLQUFJLENBQUMsVUFBVSxJQUFJLHdCQUF3QixDQUFDO2dCQUM1QyxLQUFJLENBQUMsVUFBVSxJQUFJLFdBQVcsQ0FBQztnQkFDL0IsS0FBSSxDQUFDLFVBQVUsSUFBSSxZQUFXLENBQUM7Z0JBQy9CLEtBQUssQ0FBQztZQUVWO2dCQUNJLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM1QixLQUFLLENBQUMsMENBQTBDLEdBQUcsS0FBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ25GLENBQUM7O0lBQ0wsQ0FBQztJQUNMLG9CQUFDO0FBQUQsQ0FBQyxBQXJDRCxDQUE0QixZQUFZLEdBcUN2QztBQUVEO0lBTUkseUJBQVksWUFBMEI7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNoRixJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO1FBQ2xELElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFDTCxzQkFBQztBQUFELENBQUMsQUFaRCxJQVlDO0FBRUQ7SUFBMkIsZ0NBQWU7SUFFdEM7Ozs7T0FJRztJQUNILHNCQUFZLFlBQVksRUFBRSxXQUEwQjtRQUFwRCxZQUNJLGtCQUFNLFlBQVksQ0FBQyxTQUt0QjtRQUpHLEtBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDbkMsSUFBSSxTQUFTLEdBQUcsSUFBSSxXQUFXLENBQUMsS0FBSSxDQUFDLE1BQU0sRUFBRSxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0QsS0FBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDO1FBQ2pDLEtBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQzs7SUFDM0MsQ0FBQztJQUNMLG1CQUFDO0FBQUQsQ0FBQyxBQWRELENBQTJCLGVBQWUsR0FjekM7QUFFRDtJQUFnQyxxQ0FBZTtJQVkzQzs7OztPQUlHO0lBQ0gsMkJBQVksWUFBMEIsRUFBRSxXQUEwQjtRQUFsRSxZQUNJLGtCQUFNLFlBQVksQ0FBQyxTQW9EdEI7UUFuREcsS0FBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMxRCxLQUFJLENBQUMsWUFBWSxHQUFHLEtBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUMsS0FBSSxDQUFDLGFBQWEsR0FBRyxLQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBR3BELEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLElBQUksU0FBUyxHQUFHLElBQUksV0FBVyxDQUFDLEtBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xFLEtBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUN0QyxLQUFJLENBQUMsZ0JBQWdCLEdBQUcsMENBQXNDLFVBQVUsQ0FBQyxLQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFlBQVMsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDO1FBQzVJLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLEtBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1lBQzlCLEtBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUM7UUFDcEMsQ0FBQztRQUVELEtBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLEtBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLEtBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLEtBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFFOUIsR0FBRyxDQUFDLENBQWtCLFVBQXFCLEVBQXJCLEtBQUEsS0FBSSxDQUFDLGdCQUFnQixFQUFyQixjQUFxQixFQUFyQixJQUFxQjtZQUF0QyxJQUFJLFNBQVMsU0FBQTtZQUNkLEtBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLEtBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLElBQUksU0FBUyxHQUFHLElBQUksV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hFLEtBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLDBDQUFzQyxVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVMsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDNUgsS0FBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUM7U0FDcEU7UUFHRCxLQUFJLENBQUMsT0FBTyxHQUFHLFVBQUMsT0FBbUI7WUFDL0IsSUFBSSxlQUFlLEdBQUcsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlDLElBQUksYUFBYSxHQUFHLGVBQWUsQ0FBQyxLQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFdkQsSUFBSSxXQUFXLENBQUM7WUFDaEIsRUFBRSxDQUFDLENBQUMsS0FBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hELFdBQVcsR0FBRyxDQUFDLEtBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQzVELENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTCxXQUFXLEdBQUcsQ0FBQyxLQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDckMsQ0FBQztZQUVELE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdkIsQ0FBQyxDQUFDO1FBRUYsRUFBRSxDQUFDLENBQUMsS0FBSSxDQUFDLGdCQUFnQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDakMsS0FBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDakQsQ0FBQztRQUVELEtBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1FBQ3pCLEdBQUcsQ0FBQyxDQUFVLFVBQWdCLEVBQWhCLEtBQUEsS0FBSSxDQUFDLFdBQVcsRUFBaEIsY0FBZ0IsRUFBaEIsSUFBZ0I7WUFBekIsSUFBSSxDQUFDLFNBQUE7WUFDTixLQUFJLENBQUMsVUFBVSxJQUFJLFNBQU8sQ0FBQyxVQUFPLENBQUM7U0FDdEM7UUFDRCxLQUFJLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQzs7SUFDL0IsQ0FBQztJQUNMLHdCQUFDO0FBQUQsQ0FBQyxBQXZFRCxDQUFnQyxlQUFlLEdBdUU5QztBQVNEOzs7OztHQUtHO0FBRUg7Ozs7R0FJRztBQUNILDJDQUFrRCxZQUEwQjtJQUN4RSxZQUFZLENBQUM7SUFDYixJQUFJLFFBQVEsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztJQUNqRCxJQUFJLGVBQWUsR0FBb0IsSUFBSSxDQUFDO0lBRTVDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLEtBQUssUUFBUTtZQUNULE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO2dCQUNoQyxLQUFLLG1CQUFtQjtvQkFDcEIsZUFBZSxHQUFHLElBQUksWUFBWSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsQ0FBQztvQkFDOUQsS0FBSyxDQUFDO2dCQUNWLEtBQUssc0JBQXNCO29CQUN2QixlQUFlLEdBQUcsSUFBSSxZQUFZLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO29CQUM3RCxLQUFLLENBQUM7Z0JBQ1YsS0FBSyxxQkFBcUI7b0JBQ3RCLGVBQWUsR0FBRyxJQUFJLFlBQVksQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7b0JBQ2hFLEtBQUssQ0FBQztnQkFDVjtvQkFDSSxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUMxQixLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksR0FBRyxjQUFjLENBQUMsQ0FBQztZQUMxRCxDQUFDO1lBQ0QsS0FBSyxDQUFDO1FBQ1YsS0FBSyxhQUFhO1lBQ2QsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7Z0JBQ2hDLEtBQUssbUJBQW1CO29CQUNwQixlQUFlLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7b0JBQ25FLEtBQUssQ0FBQztnQkFDVixLQUFLLHNCQUFzQjtvQkFDdkIsZUFBZSxHQUFHLElBQUksaUJBQWlCLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO29CQUNsRSxLQUFLLENBQUM7Z0JBQ1YsS0FBSyxxQkFBcUI7b0JBQ3RCLGVBQWUsR0FBRyxJQUFJLGlCQUFpQixDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztvQkFDckUsS0FBSyxDQUFDO2dCQUNWO29CQUNJLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzFCLEtBQUssQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUM7WUFDN0QsQ0FBQztZQUNELEtBQUssQ0FBQztRQUNWO1lBQ0ksS0FBSyxDQUFDLDZCQUE2QixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxFQUFFLENBQUMsQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMxQixNQUFNLENBQUMsRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixNQUFNLENBQUMsRUFBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsRUFBQyxDQUFDO0lBQ2hGLENBQUM7QUFDTCxDQUFDO0FBL0NELDhFQStDQztBQUVELEVBQUUsQ0FBQyxpQ0FBaUMsR0FBRyxpQ0FBaUMsQ0FBQztBQUd6RTs7Ozs7R0FLRztBQUNILDhCQUE4QixTQUFTLEVBQUUsd0JBQXlDO0lBQXpDLHlDQUFBLEVBQUEsZ0NBQXlDO0lBRzlFLHdCQUF3QixHQUFHLE9BQU8sd0JBQXdCLElBQUksU0FBUyxHQUFHLHdCQUF3QixHQUFHLEtBQUssQ0FBQztJQUMzRyxJQUFJLFNBQVMsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsSUFBSSxXQUFXLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUVwQixFQUFFLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQztRQUM1QixVQUFVLElBQUksMENBQXNDLFNBQVMsWUFBUyxDQUFDO0lBQzNFLENBQUM7SUFFRCxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsVUFBVSxHQUFHLGdGQUF5RSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQUksQ0FBQztJQUMxSCxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixFQUFFLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQztZQUM1QixVQUFVLElBQUksNEVBQTRFLENBQUM7UUFDL0YsQ0FBQztRQUNELFVBQVUsSUFBSSxNQUFNLENBQUM7UUFDckIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUMsVUFBVSxJQUFJLE1BQU0sQ0FBQztZQUNyQixVQUFVLElBQUksMENBQXNDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBUyxDQUFDO1lBQ2pHLFVBQVUsSUFBSSxnRkFBeUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFJLENBQUM7WUFDdkgsVUFBVSxJQUFJLE9BQU8sQ0FBQztRQUMxQixDQUFDO1FBQ0QsVUFBVSxJQUFJLE9BQU8sQ0FBQztJQUMxQixDQUFDO0lBRUQsRUFBRSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7UUFDNUIsVUFBVSxHQUFHLDBDQUFzQyxTQUFTLFlBQVMsR0FBRyxVQUFVLENBQUM7SUFDdkYsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUM7QUFDdEIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCw4QkFBcUMsWUFBWTtJQUM3QyxZQUFZLENBQUM7SUFFYixJQUFJLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFFdkIsSUFBSSxNQUFNLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXBDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQixhQUFhLElBQUksb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLGFBQWEsSUFBSSxNQUFNLENBQUM7UUFDeEIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDckMsYUFBYSxJQUFJLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUM7UUFDeEUsQ0FBQztRQUNELGFBQWEsSUFBSSxPQUFPLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUM7QUFDekIsQ0FBQztBQWxCRCxvREFrQkM7QUFFRCxFQUFFLENBQUMsb0JBQW9CLEdBQUcsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxLzQvMjAxNi5cclxuICovXHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycy5lc3JpVG9PbFN0eWxlJyk7XHJcblxyXG4vKipcclxuICogVGhpcyBjYWxsYmFjayBpcyBkaXNwbGF5ZWQgYXMgcGFydCBvZiB0aGUgUmVxdWVzdGVyIGNsYXNzLlxyXG4gKiBAY2FsbGJhY2sgc3R5bGVGdW5jXHJcbiAqIEBwYXJhbSB7b2wuRmVhdHVyZX0gZmVhdCAtIG9wZW5sYXllcnMgZmVhdHVyZVxyXG4gKiBAcGFyYW0ge251bWJlcn0gcmVzb2x1dGlvbiAtIG1hcCByZXNvbHV0aW9uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSB7QXJyYXk8bnVtYmVyPn0gY29sb3JBcnJheSAtIGlucHV0IGNvbG9yIGFycmF5XHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBvcGFjaXR5IC0gdGhlIG9wYWNpdHkgMCB0byAxXHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHJnYmEgc3RyaW5nXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5mdW5jdGlvbiBfY29sb3JBcnJheVRvUmdiYShjb2xvckFycmF5LCBvcGFjaXR5KSB7XHJcbiAgICBcInVzZSBzdHJpY3RcIjtcclxuXHJcbiAgICByZXR1cm4gYHJnYmEoJHtjb2xvckFycmF5WzBdfSwke2NvbG9yQXJyYXlbMV19LCR7Y29sb3JBcnJheVsyXX0sJHtvcGFjaXR5fSlgO1xyXG59XHJcblxyXG4vKipcclxuICogZXNjYXBlIGh0bWwgY2hhcmN0ZXJzXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgLSBpbnB1dCBzdHJpbmdcclxuICogQHJldHVybnMge3N0cmluZ30gZXNjYXBlZCBzdHJpbmdcclxuICovXHJcbmZ1bmN0aW9uIGh0bWxFc2NhcGUoc3RyKSB7XHJcbiAgICByZXR1cm4gU3RyaW5nKHN0cilcclxuICAgICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxyXG4gICAgICAgIC5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7JylcclxuICAgICAgICAucmVwbGFjZSgvJy9nLCAnJiMzOTsnKVxyXG4gICAgICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JylcclxuICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpO1xyXG59XHJcblxyXG5ubS5odG1sRXNjYXBlID0gaHRtbEVzY2FwZTtcclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVzcmlSZXNwb25zZXtcclxuICAgIGRyYXdpbmdJbmZvOiB7XHJcbiAgICAgICAgcmVuZGVyZXI6IEVzcmlSZW5kZXJlclxyXG4gICAgfSxcclxuICAgIGdlb21ldHJ5VHlwZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXNyaVJlbmRlcmVye1xyXG4gICAgdHlwZTogc3RyaW5nO1xyXG4gICAgc3ltYm9sOiBFc3JpU3ltYm9sO1xyXG4gICAgdW5pcXVlVmFsdWVJbmZvczogQXJyYXk8e2xhYmVsOiBzdHJpbmcsIHZhbHVlOiBhbnksIHN5bWJvbDogRXNyaVN5bWJvbH0+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVzcmlTeW1ib2x7XHJcbiAgICBzaXplOiBudW1iZXI7XHJcbiAgICB0eXBlOiBzdHJpbmc7XHJcbiAgICBvdXRsaW5lOntcclxuICAgICAgICBjb2xvcjogc3RyaW5nO1xyXG4gICAgICAgIHdpZHRoOiBudW1iZXI7XHJcbiAgICB9LFxyXG4gICAgY29sb3I6IHN0cmluZztcclxuICAgIHdpZHRoOiBudW1iZXI7XHJcbn1cclxuXHJcblxyXG5jbGFzcyBDb21tb25TeW1ib2wge1xyXG4gICAgbGVnZW5kSHRtbDogc3RyaW5nO1xyXG4gICAgb3BhY2l0eTogbnVtYmVyO1xyXG4gICAgc3ltYm9sT2JqOiBFc3JpU3ltYm9sO1xyXG4gICAgb2xTdHlsZTogb2wuc3R5bGUuU3R5bGV8QXJyYXk8b2wuc3R5bGUuU3R5bGU+fG9sLlN0eWxlRnVuY3Rpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHN5bWJvbE9ialxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG9wYWNpdHlcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3Ioc3ltYm9sT2JqOiBFc3JpU3ltYm9sLCBvcGFjaXR5OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnN5bWJvbE9iaiA9IHN5bWJvbE9iajtcclxuICAgICAgICB0aGlzLm9wYWNpdHkgPSBvcGFjaXR5O1xyXG4gICAgICAgIHRoaXMub2xTdHlsZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgPSAnJztcclxuICAgIH1cclxufVxyXG5cclxuaW50ZXJmYWNlIElDb21tb25TeW1ib2x7XHJcbiAgICBuZXcgKHN5bWJvbE9iajogRXNyaVN5bWJvbCwgb3BhY2l0eTogbnVtYmVyKTogQ29tbW9uU3ltYm9sXHJcbn1cclxuXHJcblxyXG5jbGFzcyBQb2ludFN5bWJvbCBleHRlbmRzIENvbW1vblN5bWJvbCB7XHJcbiAgICBjb25zdHJ1Y3RvcihzeW1ib2xPYmo6IEVzcmlTeW1ib2wsIG9wYWNpdHk6IG51bWJlcikge1xyXG4gICAgICAgIHN1cGVyKHN5bWJvbE9iaiwgb3BhY2l0eSk7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnN5bWJvbE9iai50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2VzcmlTTVMnOlxyXG4gICAgICAgICAgICAgICAgbGV0IGlubmVyQ29sb3IgPSBfY29sb3JBcnJheVRvUmdiYSh0aGlzLnN5bWJvbE9iai5jb2xvciwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgICAgIGxldCBvdXRlckNvbG9yID0gX2NvbG9yQXJyYXlUb1JnYmEodGhpcy5zeW1ib2xPYmoub3V0bGluZS5jb2xvciwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgICAgIGxldCBvdXRsaW5lV2lkdGggPSB0aGlzLnN5bWJvbE9iai5vdXRsaW5lLndpZHRoO1xyXG4gICAgICAgICAgICAgICAgbGV0IHJhZGl1cyA9IHRoaXMuc3ltYm9sT2JqLnNpemU7XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMub2xTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5DaXJjbGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogbmV3IG9sLnN0eWxlLkZpbGwoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGlubmVyQ29sb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sLnN0eWxlLlN0cm9rZSh7Y29sb3I6IG91dGVyQ29sb3IsIHdpZHRoOiBvdXRsaW5lV2lkdGh9KVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgc3R5bGU9XCJjb2xvcjogJHtpbm5lckNvbG9yfVwiPiYjOTY3OTs8L3NwYW4+YDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdlc3JpUE1TJzpcclxuICAgICAgICAgICAgICAgIHRoaXMub2xTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5JY29uKHtzcmM6IGBkYXRhOmltYWdlL3BuZztiYXNlNjQsJHt0aGlzLnN5bWJvbE9ialsnaW1hZ2VEYXRhJ119YH0pXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IGA8aW1nIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBoZWlnaHQ9XCIxN1wiIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwke3RoaXMuc3ltYm9sT2JqWydpbWFnZURhdGEnXX1cIj5gO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnN5bWJvbE9iaik7XHJcbiAgICAgICAgICAgICAgICBhbGVydCgnUG9pbnQgc3ltYm9sIGRvZXMgbm90IGhhbmRsZSBzeW1ib2wgdHlwZTogJyArIHRoaXMuc3ltYm9sT2JqWyd0eXBlJ10pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgTGluZVN5bWJvbCBleHRlbmRzIENvbW1vblN5bWJvbCB7XHJcbiAgICBjb25zdHJ1Y3RvcihzeW1ib2xPYmo6IEVzcmlTeW1ib2wsIG9wYWNpdHk6IG51bWJlcikge1xyXG4gICAgICAgIHN1cGVyKHN5bWJvbE9iaiwgb3BhY2l0eSk7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnN5bWJvbE9iai50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2VzcmlTTFMnOlxyXG4gICAgICAgICAgICAgICAgbGV0IGlubmVyQ29sb3IgPSBfY29sb3JBcnJheVRvUmdiYSh0aGlzLnN5bWJvbE9iai5jb2xvciwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgICAgIGxldCBsaW5lV2lkdGggPSB0aGlzLnN5bWJvbE9iai53aWR0aDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9sU3R5bGUgPSBuZXcgb2wuc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sLnN0eWxlLlN0cm9rZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbm5lckNvbG9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2xpbmVEYXNoOiBbNF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBsaW5lV2lkdGhcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sID0gYDxzcGFuIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGBzdHlsZT1cImA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGJhY2tncm91bmQtY29sb3I6ICR7aW5uZXJDb2xvcn07YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgd2lkdGg6IDQwcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgaGVpZ2h0OiA0cHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgcG9zaXRpb246IHJlbGF0aXZlO2A7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGRpc3BsYXk6IGlubGluZS1ibG9jaztgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGB0b3A6IC0xcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgXCI+PC9zcGFuPmA7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc3ltYm9sT2JqKTtcclxuICAgICAgICAgICAgICAgIGFsZXJ0KCdMaW5lIHN5bWJvbCBkb2VzIG5vdCBoYW5kbGUgc3ltYm9sIHR5cGU6ICcgKyB0aGlzLnN5bWJvbE9ialsndHlwZSddKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFBvbHlnb25TeW1ib2wgZXh0ZW5kcyBDb21tb25TeW1ib2wge1xyXG4gICAgY29uc3RydWN0b3Ioc3ltYm9sT2JqOiBFc3JpU3ltYm9sLCBvcGFjaXR5OiBudW1iZXIpIHtcclxuICAgICAgICBzdXBlcihzeW1ib2xPYmosIG9wYWNpdHkpO1xyXG4gICAgICAgIHN3aXRjaCAodGhpcy5zeW1ib2xPYmpbJ3R5cGUnXSkge1xyXG4gICAgICAgICAgICBjYXNlICdlc3JpU0ZTJzpcclxuICAgICAgICAgICAgICAgIGxldCBpbm5lckNvbG9yID0gX2NvbG9yQXJyYXlUb1JnYmEodGhpcy5zeW1ib2xPYmouY29sb3IsIHRoaXMub3BhY2l0eSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgb3V0ZXJDb2xvciA9IF9jb2xvckFycmF5VG9SZ2JhKHRoaXMuc3ltYm9sT2JqLm91dGxpbmUuY29sb3IsIHRoaXMub3BhY2l0eSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgb3V0bGluZVdpZHRoID0gdGhpcy5zeW1ib2xPYmoub3V0bGluZS53aWR0aDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9sU3R5bGUgPSBuZXcgb2wuc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sLnN0eWxlLlN0cm9rZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBvdXRlckNvbG9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2xpbmVEYXNoOiBbNF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBvdXRsaW5lV2lkdGhcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICBmaWxsOiBuZXcgb2wuc3R5bGUuRmlsbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbm5lckNvbG9yXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgYDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgc3R5bGU9XCJgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGBiYWNrZ3JvdW5kLWNvbG9yOiAke2lubmVyQ29sb3J9O2A7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGJvcmRlcjogc29saWQgJHtvdXRlckNvbG9yfSAxcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgd2lkdGg6IDQwcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgaGVpZ2h0OiA5cHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgcG9zaXRpb246IHJlbGF0aXZlO2A7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGRpc3BsYXk6IGlubGluZS1ibG9jaztgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGB0b3A6IDJweDtgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGBcIj48L3NwYW4+YDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc3ltYm9sT2JqKTtcclxuICAgICAgICAgICAgICAgIGFsZXJ0KCdQb2x5Z29uIHN5bWJvbCBkb2VzIGhhbmRsZSBzeW1ib2wgdHlwZTogJyArIHRoaXMuc3ltYm9sT2JqWyd0eXBlJ10pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgU3ltYm9sR2VuZXJhdG9yIHtcclxuICAgIG9wYWNpdHk6IG51bWJlcjtcclxuICAgIHJlbmRlcmVyOiBFc3JpUmVuZGVyZXI7XHJcbiAgICBsZWdlbmRIdG1sOiBzdHJpbmc7XHJcbiAgICBvbFN0eWxlOiBvbC5zdHlsZS5TdHlsZXxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuU3R5bGVGdW5jdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihlc3JpUmVzcG9uc2U6IEVzcmlSZXNwb25zZSkge1xyXG4gICAgICAgIHRoaXMub3BhY2l0eSA9ICgxMDAgLSAoZXNyaVJlc3BvbnNlWydkcmF3aW5nSW5mbyddWyd0cmFuc3BhcmVuY3knXSB8fCAwKSkgLyAxMDA7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IGVzcmlSZXNwb25zZS5kcmF3aW5nSW5mby5yZW5kZXJlcjtcclxuICAgICAgICB0aGlzLm9sU3R5bGUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5sZWdlbmRIdG1sID0gJyc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFNpbmdsZVN5bWJvbCBleHRlbmRzIFN5bWJvbEdlbmVyYXRvciB7XHJcbiAgICBzeW1ib2w6IEVzcmlTeW1ib2w7XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZXNyaVJlc3BvbnNlIC0gbGF5ZXIgaW5mb1xyXG4gICAgICogQHBhcmFtIFN5bWJvbENsYXNzIC0gdGhlIHN5bWJvbCBjbGFzcyB0byB1c2VcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoZXNyaVJlc3BvbnNlLCBTeW1ib2xDbGFzczogSUNvbW1vblN5bWJvbCkge1xyXG4gICAgICAgIHN1cGVyKGVzcmlSZXNwb25zZSk7XHJcbiAgICAgICAgdGhpcy5zeW1ib2wgPSB0aGlzLnJlbmRlcmVyLnN5bWJvbDtcclxuICAgICAgICBsZXQgc3ltYm9sT2JqID0gbmV3IFN5bWJvbENsYXNzKHRoaXMuc3ltYm9sLCB0aGlzLm9wYWNpdHkpO1xyXG4gICAgICAgIHRoaXMub2xTdHlsZSA9IHN5bWJvbE9iai5vbFN0eWxlO1xyXG4gICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IHN5bWJvbE9iai5sZWdlbmRIdG1sO1xyXG4gICAgfVxyXG59XHJcblxyXG5jbGFzcyBVbmlxdWVWYWx1ZVN5bWJvbCBleHRlbmRzIFN5bWJvbEdlbmVyYXRvciB7XHJcblxyXG4gICAgcHJvcGVydHlOYW1lOiBzdHJpbmc7XHJcbiAgICBkZWZhdWx0U3ltYm9sOiBFc3JpU3ltYm9sO1xyXG4gICAgZGVmYXVsdFN0eWxlOiBvbC5zdHlsZS5TdHlsZXxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuU3R5bGVGdW5jdGlvbjtcclxuICAgIGRlZmF1bHRMYWJlbEh0bWw6IHN0cmluZztcclxuICAgIGxhYmVsQXJyYXk6IEFycmF5PHN0cmluZz47XHJcbiAgICBsZWdlbmRBcnJheTogQXJyYXk8c3RyaW5nPjtcclxuICAgIHByb3BlcnR5U3R5bGVMb29rdXA6IE9iamVjdDtcclxuICAgIHZhbHVlQXJyYXk6IEFycmF5PGFueT47XHJcbiAgICB1bmlxdWVWYWx1ZUluZm9zOiBBcnJheTx7bGFiZWw6IHN0cmluZywgdmFsdWU6IGFueSwgc3ltYm9sOiBFc3JpU3ltYm9sfT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGVzcmlSZXNwb25zZSAtIGxheWVyIGluZm9cclxuICAgICAqIEBwYXJhbSBTeW1ib2xDbGFzcyAtIHRoZSBTeW1ib2wgY2xhc3MgZGVmaW5pdGlvblxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcihlc3JpUmVzcG9uc2U6IEVzcmlSZXNwb25zZSwgU3ltYm9sQ2xhc3M6IElDb21tb25TeW1ib2wpIHtcclxuICAgICAgICBzdXBlcihlc3JpUmVzcG9uc2UpO1xyXG4gICAgICAgIHRoaXMudW5pcXVlVmFsdWVJbmZvcyA9IHRoaXMucmVuZGVyZXJbJ3VuaXF1ZVZhbHVlSW5mb3MnXTtcclxuICAgICAgICB0aGlzLnByb3BlcnR5TmFtZSA9IHRoaXMucmVuZGVyZXJbJ2ZpZWxkMSddO1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdFN5bWJvbCA9IHRoaXMucmVuZGVyZXJbJ2RlZmF1bHRTeW1ib2wnXTtcclxuXHJcblxyXG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRTeW1ib2wpIHtcclxuICAgICAgICAgICAgbGV0IHN5bWJvbE9iaiA9IG5ldyBTeW1ib2xDbGFzcyh0aGlzLmRlZmF1bHRTeW1ib2wsIHRoaXMub3BhY2l0eSk7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFN0eWxlID0gc3ltYm9sT2JqLm9sU3R5bGU7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdExhYmVsSHRtbCA9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtodG1sRXNjYXBlKHRoaXMucmVuZGVyZXJbJ2RlZmF1bHRMYWJlbCddKX08L3NwYW4+YCArIHN5bWJvbE9iai5sZWdlbmRIdG1sO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFN0eWxlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRMYWJlbEh0bWwgPSAnb3RoZXInO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy52YWx1ZUFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sYWJlbEFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sZWdlbmRBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMucHJvcGVydHlTdHlsZUxvb2t1cCA9IHt9O1xyXG5cclxuICAgICAgICBmb3IgKGxldCB1bmlxdWVWYWwgb2YgdGhpcy51bmlxdWVWYWx1ZUluZm9zKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGFiZWxBcnJheS5wdXNoKHVuaXF1ZVZhbFsnbGFiZWwnXSk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVBcnJheS5wdXNoKHVuaXF1ZVZhbFsndmFsdWUnXSk7XHJcbiAgICAgICAgICAgIGxldCB1bmlxdWVTeW0gPSBuZXcgU3ltYm9sQ2xhc3ModW5pcXVlVmFsLnN5bWJvbCwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgdGhpcy5sZWdlbmRBcnJheS5wdXNoKGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtodG1sRXNjYXBlKHVuaXF1ZVZhbFsnbGFiZWwnXSl9PC9zcGFuPmAgKyB1bmlxdWVTeW0ubGVnZW5kSHRtbCk7XHJcbiAgICAgICAgICAgIHRoaXMucHJvcGVydHlTdHlsZUxvb2t1cFt1bmlxdWVWYWxbJ3ZhbHVlJ11dID0gdW5pcXVlU3ltLm9sU3R5bGU7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgdGhpcy5vbFN0eWxlID0gKGZlYXR1cmU6IG9sLkZlYXR1cmUpID0+IHtcclxuICAgICAgICAgICAgbGV0IGNoZWNrUHJvcGVydGllcyA9IGZlYXR1cmUuZ2V0UHJvcGVydGllcygpO1xyXG4gICAgICAgICAgICBsZXQgY2hlY2tQcm9wZXJ0eSA9IGNoZWNrUHJvcGVydGllc1t0aGlzLnByb3BlcnR5TmFtZV07XHJcblxyXG4gICAgICAgICAgICBsZXQgcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BlcnR5U3R5bGVMb29rdXBbY2hlY2tQcm9wZXJ0eV0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBbdGhpcy5wcm9wZXJ0eVN0eWxlTG9va3VwW2NoZWNrUHJvcGVydHldXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBbdGhpcy5kZWZhdWx0U3R5bGVdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdExhYmVsSHRtbCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmxlZ2VuZEFycmF5LnB1c2godGhpcy5kZWZhdWx0TGFiZWxIdG1sKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubGVnZW5kSHRtbCA9ICc8dWw+JztcclxuICAgICAgICBmb3IgKGxldCBoIG9mIHRoaXMubGVnZW5kQXJyYXkpIHtcclxuICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGA8bGk+JHtofTwvbGk+YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9ICc8L3VsPic7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4vKipcclxuICogc3R5bGUgYW5kIGxlZ2VuZCBvYmplY3RcclxuICogQHR5cGVkZWYge29iamVjdH0gc3R5bGVBbmRMZWdlbmRcclxuICogQHByb3BlcnR5IHtzdHlsZUZ1bmN9IHN0eWxlIC0gc3R5bGUgZnVuY3Rpb25cclxuICogQHByb3BlcnR5IHtzdHJpbmd9IGxlZ2VuZCAtIGxlZ2VuZCBjb250ZW50XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBlc3JpUmVzcG9uc2UgLSBsYXllciBpbmZvXHJcbiAqIEByZXR1cm5zIHtzdHlsZUFuZExlZ2VuZH0gc3R5bGUgYW5kIGxlZ2VuZCBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBtYWtlRmVhdHVyZVNlcnZpY2VMZWdlbmRBbmRTeW1ib2woZXNyaVJlc3BvbnNlOiBFc3JpUmVzcG9uc2UpIHtcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG4gICAgbGV0IHJlbmRlcmVyID0gZXNyaVJlc3BvbnNlLmRyYXdpbmdJbmZvLnJlbmRlcmVyO1xyXG4gICAgbGV0IHN5bWJvbExlZ2VuZE91dDogU3ltYm9sR2VuZXJhdG9yID0gbnVsbDtcclxuXHJcbiAgICBzd2l0Y2ggKHJlbmRlcmVyLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdzaW1wbGUnOlxyXG4gICAgICAgICAgICBzd2l0Y2ggKGVzcmlSZXNwb25zZS5nZW9tZXRyeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2VzcmlHZW9tZXRyeVBvaW50JzpcclxuICAgICAgICAgICAgICAgICAgICBzeW1ib2xMZWdlbmRPdXQgPSBuZXcgU2luZ2xlU3ltYm9sKGVzcmlSZXNwb25zZSwgUG9pbnRTeW1ib2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZXNyaUdlb21ldHJ5UG9seWxpbmUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbExlZ2VuZE91dCA9IG5ldyBTaW5nbGVTeW1ib2woZXNyaVJlc3BvbnNlLCBMaW5lU3ltYm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2VzcmlHZW9tZXRyeVBvbHlnb24nOlxyXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbExlZ2VuZE91dCA9IG5ldyBTaW5nbGVTeW1ib2woZXNyaVJlc3BvbnNlLCBQb2x5Z29uU3ltYm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXNyaVJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICBhbGVydChlc3JpUmVzcG9uc2UuZ2VvbWV0cnlUeXBlICsgJyBub3QgaGFuZGxlZCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3VuaXF1ZVZhbHVlJzpcclxuICAgICAgICAgICAgc3dpdGNoIChlc3JpUmVzcG9uc2UuZ2VvbWV0cnlUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdlc3JpR2VvbWV0cnlQb2ludCc6XHJcbiAgICAgICAgICAgICAgICAgICAgc3ltYm9sTGVnZW5kT3V0ID0gbmV3IFVuaXF1ZVZhbHVlU3ltYm9sKGVzcmlSZXNwb25zZSwgUG9pbnRTeW1ib2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZXNyaUdlb21ldHJ5UG9seWxpbmUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbExlZ2VuZE91dCA9IG5ldyBVbmlxdWVWYWx1ZVN5bWJvbChlc3JpUmVzcG9uc2UsIExpbmVTeW1ib2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZXNyaUdlb21ldHJ5UG9seWdvbic6XHJcbiAgICAgICAgICAgICAgICAgICAgc3ltYm9sTGVnZW5kT3V0ID0gbmV3IFVuaXF1ZVZhbHVlU3ltYm9sKGVzcmlSZXNwb25zZSwgUG9seWdvblN5bWJvbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVzcmlSZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxlcnQoZXNyaVJlc3BvbnNlWydnZW9tZXRyeVR5cGUnXSArICcgbm90IGhhbmRsZWQnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBhbGVydCgnbm90IGhhbmRsZWQgcmVuZGVyZXIgdHlwZTogJyArIHJlbmRlcmVyWyd0eXBlJ10pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzeW1ib2xMZWdlbmRPdXQgPT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiB7c3R5bGU6IHVuZGVmaW5lZCwgbGVnZW5kOiAnJ307XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB7c3R5bGU6IHN5bWJvbExlZ2VuZE91dC5vbFN0eWxlLCBsZWdlbmQ6IHN5bWJvbExlZ2VuZE91dC5sZWdlbmRIdG1sfTtcclxuICAgIH1cclxufVxyXG5cclxubm0ubWFrZUZlYXR1cmVTZXJ2aWNlTGVnZW5kQW5kU3ltYm9sID0gbWFrZUZlYXR1cmVTZXJ2aWNlTGVnZW5kQW5kU3ltYm9sO1xyXG5cclxuXHJcbi8qKlxyXG4gKlxyXG4gKiBAcGFyYW0ge29iamVjdH0gbHlyT2JqZWN0IC0gdGhlIGxheWVyIGFzIGRlZmluZWQgaW4gdGhlIHJlc3BvbnNlXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3NraXBMYXllck5hbWVBbmRFeHBhbmRlcj1mYWxzZV0gdXNlIG9ubHkgaWNvbnNcclxuICogQHJldHVybnMge3N0cmluZ30gbGVnZW5kIGh0bWxcclxuICovXHJcbmZ1bmN0aW9uIG1hcFNlcnZpY2VMZWdlbmRJdGVtKGx5ck9iamVjdCwgc2tpcExheWVyTmFtZUFuZEV4cGFuZGVyOiBib29sZWFuID0gZmFsc2UpIHtcclxuXHJcblxyXG4gICAgc2tpcExheWVyTmFtZUFuZEV4cGFuZGVyID0gdHlwZW9mIHNraXBMYXllck5hbWVBbmRFeHBhbmRlciA9PSAnYm9vbGVhbicgPyBza2lwTGF5ZXJOYW1lQW5kRXhwYW5kZXIgOiBmYWxzZTtcclxuICAgIGxldCBsYXllck5hbWUgPSBseXJPYmplY3RbJ2xheWVyTmFtZSddO1xyXG4gICAgbGV0IGxlZ2VuZEl0ZW1zID0gbHlyT2JqZWN0WydsZWdlbmQnXTtcclxuICAgIGxldCBsZWdlbmRIdG1sID0gJyc7XHJcblxyXG4gICAgaWYgKCFza2lwTGF5ZXJOYW1lQW5kRXhwYW5kZXIpIHtcclxuICAgICAgICBsZWdlbmRIdG1sICs9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtsYXllck5hbWV9PC9zcGFuPmA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGxlZ2VuZEl0ZW1zLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgbGVnZW5kSHRtbCA9IGA8aW1nIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBoZWlnaHQ9XCIxN1wiIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwke2xlZ2VuZEl0ZW1zWzBdWydpbWFnZURhdGEnXX1cIj5gO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoIXNraXBMYXllck5hbWVBbmRFeHBhbmRlcikge1xyXG4gICAgICAgICAgICBsZWdlbmRIdG1sICs9ICc8c3BhbiBjbGFzcz1cImxlZ2VuZC1pdGVtcy1leHBhbmRlclwiIHRpdGxlPVwiRXhwYW5kL0NvbGxhcHNlXCI+JiM5NjYwOzwvc3Bhbj4nO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZWdlbmRIdG1sICs9ICc8dWw+JztcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlZ2VuZEl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxlZ2VuZEh0bWwgKz0gYDxsaT5gO1xyXG4gICAgICAgICAgICBsZWdlbmRIdG1sICs9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtodG1sRXNjYXBlKGxlZ2VuZEl0ZW1zW2ldWydsYWJlbCddKX08L3NwYW4+YDtcclxuICAgICAgICAgICAgbGVnZW5kSHRtbCArPSBgPGltZyBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgaGVpZ2h0PVwiMTdcIiBzcmM9XCJkYXRhOmltYWdlL3BuZztiYXNlNjQsJHtsZWdlbmRJdGVtc1tpXVsnaW1hZ2VEYXRhJ119XCI+YDtcclxuICAgICAgICAgICAgbGVnZW5kSHRtbCArPSBgPC9saT5gO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZWdlbmRIdG1sICs9ICc8L3VsPic7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFza2lwTGF5ZXJOYW1lQW5kRXhwYW5kZXIpIHtcclxuICAgICAgICBsZWdlbmRIdG1sID0gYDxzcGFuIGNsYXNzPVwibGVnZW5kLWxheWVyLXN1Yml0ZW1cIj4ke2xheWVyTmFtZX08L3NwYW4+YCArIGxlZ2VuZEh0bWw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGxlZ2VuZEh0bWw7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBtYWtlIG1hcCBzZXJ2aWNlIGxlZ2VudFxyXG4gKiBAcGFyYW0ge29iamVjdH0gZXNyaVJlc3BvbnNlIC0gbGF5ZXIgaW5mb1xyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBsZWdlbmQgY29udGVudFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VNYXBTZXJ2aWNlTGVnZW5kKGVzcmlSZXNwb25zZSkge1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG4gICAgbGV0IG5ld0xlZ2VuZEh0bWwgPSAnJztcclxuXHJcbiAgICBsZXQgbGF5ZXJzID0gZXNyaVJlc3BvbnNlWydsYXllcnMnXTtcclxuXHJcbiAgICBpZiAobGF5ZXJzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgbmV3TGVnZW5kSHRtbCArPSBtYXBTZXJ2aWNlTGVnZW5kSXRlbShsYXllcnNbMF0sIHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdMZWdlbmRIdG1sICs9ICc8dWw+JztcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxheWVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBuZXdMZWdlbmRIdG1sICs9ICc8bGk+JyArIG1hcFNlcnZpY2VMZWdlbmRJdGVtKGxheWVyc1tpXSkgKyAnPC9saT4nO1xyXG4gICAgICAgIH1cclxuICAgICAgICBuZXdMZWdlbmRIdG1sICs9ICc8L3VsPic7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5ld0xlZ2VuZEh0bWw7XHJcbn1cclxuXHJcbm5tLm1ha2VNYXBTZXJ2aWNlTGVnZW5kID0gbWFrZU1hcFNlcnZpY2VMZWdlbmQ7XHJcbiJdfQ== /***/ }), /* 16 */, @@ -2156,7 +2156,7 @@ nm.makeMapServiceLegend = makeMapServiceLegend; Object.defineProperty(exports, "__esModule", { value: true }); var provide_1 = __webpack_require__(0); -var range_change_1 = __webpack_require__(19); +var range_change_1 = __webpack_require__(18); var $ = __webpack_require__(1); var nm = provide_1.default('domUtil'); /** @@ -2360,11 +2360,10 @@ var MediaControl = (function () { }()); exports.MediaControl = MediaControl; nm.MediaControl = MediaControl; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1lZGlhLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUVILDJDQUFzQztBQUN0QywrQ0FBMkM7QUFDM0MsMEJBQTZCO0FBRTdCLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFNUI7OztHQUdHO0FBRUgsK0JBQStCLEVBQUU7SUFDN0IsWUFBWSxDQUFDO0lBQ2IsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXBCLE1BQU0sQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxNQUFNLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUM7QUFpQkQ7SUFvQkk7Ozs7O09BS0c7SUFDSCxzQkFDSSxPQUFrQyxFQUNsQyxVQUFrRCxFQUNsRCxXQUFrQztRQURsQywyQkFBQSxFQUFBLDJCQUEwQyxNQUFNLENBQUMsQ0FBQSxDQUFDO1FBQ2xELDRCQUFBLEVBQUEsZ0JBQWtDO1FBSHRDLGlCQWlHQztRQTVGRyxXQUFXLENBQUMsR0FBRyxHQUFHLE9BQU8sV0FBVyxDQUFDLEdBQUcsSUFBSSxRQUFRLEdBQUcsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDM0UsV0FBVyxDQUFDLEdBQUcsR0FB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Q0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDTCxDQUFDO0lBTUQsc0JBQUksd0NBQWM7UUFKbEI7OztXQUdHO2FBQ0gsVUFBbUIsT0FBdUI7WUFDdEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUM7UUFDL0IsQ0FBQzs7O09BQUE7SUFDTCxtQkFBQztBQUFELENBQUMsQUFqTkQsSUFpTkM7QUFqTlksb0NBQVk7QUFtTnpCLEVBQUUsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMi8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCB7cmFuZ2VDaGFuZ2V9IGZyb20gJy4vcmFuZ2UtY2hhbmdlJztcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmxldCBubSA9IHByb3ZpZGUoJ2RvbVV0aWwnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2FsbGJhY2sgbWVkaWFDYWxsYmFja1xyXG4gKiBAcGFyYW0ge251bWJlcn0gdG1cclxuICovXHJcblxyXG5mdW5jdGlvbiB0aW1lVG9Mb2NhbERhdGVTdHJpbmcodG0pIHtcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG4gICAgbGV0IGQgPSBuZXcgRGF0ZSh0bSk7XHJcbiAgICBsZXQgcDEgPSBkLnRvTG9jYWxlVGltZVN0cmluZygpLnNwbGl0KCcgJyk7XHJcbiAgICBsZXQgcDIgPSBwMVswXS5zcGxpdCgnOicpO1xyXG4gICAgcDIgPSBwMi5zbGljZSgwLCAyKTtcclxuXHJcbiAgICByZXR1cm4gZC50b0xvY2FsZURhdGVTdHJpbmcoKSArICc8YnI+JyArIHAyLmpvaW4oJzonKSArICcgJyArIHAxWzFdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIGNoYW5nZUZ1bmN0aW9ue1xyXG4gICAgKG5ld1ZhbD86IG51bWJlcik6IHZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgbWVkaWFSYW5nZUNvbmZpZ3tcclxuICAgIG1pbj86IG51bWJlcjtcclxuICAgIG1heD86IG51bWJlcjtcclxuICAgIHZhbD86IG51bWJlcjtcclxuICAgIHN0ZXA/OiBudW1iZXI7XHJcbiAgICBwbGF5SW50ZXJ2YWw/OiBudW1iZXI7XHJcbiAgICBzaG93QXNEYXRlPzogYm9vbGVhbjtcclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgTWVkaWFDb250cm9sIHtcclxuICAgIF9jb250YWluZXI6IEpRdWVyeTtcclxuICAgIF9taW46IG51bWJlcjtcclxuICAgIF9tYXg6IG51bWJlcjtcclxuICAgIF9wbGF5SW50ZXJ2YWw6IG51bWJlcjtcclxuICAgIF9zdGVwOiBudW1iZXI7XHJcbiAgICBfY3VycmVudFZhbHVlOiBudW1iZXI7XHJcblxyXG4gICAgX3BsYXlpbmc6IGJvb2xlYW47XHJcblxyXG4gICAgXyRidG5TdG9wOiBKUXVlcnk7XHJcbiAgICBfJHNsaWRlcjogSlF1ZXJ5O1xyXG4gICAgXyR2YWxMYWJlbFZhbDogSlF1ZXJ5O1xyXG4gICAgXyR2YWxMYWJlbE1pbjogSlF1ZXJ5O1xyXG4gICAgXyR2YWxMYWJlbE1heDogSlF1ZXJ5O1xyXG4gICAgX2ludGVydmFsOiBudW1iZXI7XHJcbiAgICBfc2hvd0FzRGF0ZTogYm9vbGVhbjtcclxuXHJcbiAgICBfY2hhbmdlRnVuYzogY2hhbmdlRnVuY3Rpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGVsZW1lbnRcclxuICAgICAqIEBwYXJhbSBjaGFuZ2VGdW5jXHJcbiAgICAgKiBAcGFyYW0gbWVkaWFDb25maWdcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgZWxlbWVudDogSlF1ZXJ5fEhUTUxFbGVtZW50fHN0cmluZyxcclxuICAgICAgICBjaGFuZ2VGdW5jOiBjaGFuZ2VGdW5jdGlvbiA9ICgpOiB2b2lkID0+IHtyZXR1cm47fSxcclxuICAgICAgICBtZWRpYUNvbmZpZzogbWVkaWFSYW5nZUNvbmZpZyA9IHt9KSB7XHJcblxyXG4gICAgICAgIG1lZGlhQ29uZmlnLm1pbiA9IHR5cGVvZiBtZWRpYUNvbmZpZy5taW4gPT0gJ251bWJlcicgPyBtZWRpYUNvbmZpZy5taW4gOiAwO1xyXG4gICAgICAgIG1lZGlhQ29uZmlnLm1heCA9IHR5cGVvZiBtZWRpYUNvbmZpZy5tYXggPT0gJ251bWJlcicgPyBtZWRpYUNvbmZpZy5tYXggOiAxMDA7XHJcbiAgICAgICAgbWVkaWFDb25maWcudmFsID0gdHlwZW9mIG1lZGlhQ29uZmlnLnZhbCA9PSAnbnVtYmVyJyA/IG1lZGlhQ29uZmlnLnZhbCA6IDA7XHJcbiAgICAgICAgbWVkaWFDb25maWcuc3RlcCA9IHR5cGVvZiBtZWRpYUNvbmZpZy5zdGVwID09ICdudW1iZXInID8gbWVkaWFDb25maWcuc3RlcCA6IDU7XHJcbiAgICAgICAgbWVkaWFDb25maWcucGxheUludGVydmFsID0gdHlwZW9mIG1lZGlhQ29uZmlnLnBsYXlJbnRlcnZhbCA9PSAnbnVtYmVyJyA/IG1lZGlhQ29uZmlnLnBsYXlJbnRlcnZhbCA6IDUwMDtcclxuICAgICAgICBtZWRpYUNvbmZpZy5zaG93QXNEYXRlID0gdHlwZW9mIG1lZGlhQ29uZmlnLnNob3dBc0RhdGUgPT0gJ2Jvb2xlYW4nID8gbWVkaWFDb25maWcuc2hvd0FzRGF0ZSA6IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mICBlbGVtZW50ID09ICdzdHJpbmcnKXtcclxuICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyID0gJCgnIycgKyBlbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGVsZW1lbnRbJ3N0eWxlJ10gIT09ICd1bmRlZmluZWQnKXtcclxuICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyID0gJChlbGVtZW50KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9jb250YWluZXIgPSBlbGVtZW50IGFzIEpRdWVyeTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2NvbnRhaW5lci5hZGRDbGFzcygnbWVkaWEtY29udHJvbC1jb250YWluZXInKTtcclxuICAgICAgICB0aGlzLl9wbGF5SW50ZXJ2YWwgPSBtZWRpYUNvbmZpZy5wbGF5SW50ZXJ2YWw7XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRnVuYyA9IGNoYW5nZUZ1bmM7XHJcblxyXG4gICAgICAgIHRoaXMuX3Nob3dBc0RhdGUgPSBtZWRpYUNvbmZpZy5zaG93QXNEYXRlO1xyXG5cclxuICAgICAgICB0aGlzLl9jdXJyZW50VmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbWluID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX21heCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl9zdGVwID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX3BsYXlpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgbGV0IGh0bWxTdHIgPVxyXG4gICAgICAgICAgICAnPHNwYW4gY2xhc3M9XCJtZWRpYS1wbGF5ZXItYnV0dG9uIG1lZGlhLWJhY2tcIj48L3NwYW4+JyArXHJcbiAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cIm1lZGlhLXBsYXllci1idXR0b24gbWVkaWEtcGxheVwiPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwibWVkaWEtcGxheWVyLWJ1dHRvbiBtZWRpYS1wYXVzZSBtZWRpYS1kaXNhYmxlZFwiPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwibWVkaWEtcGxheWVyLWJ1dHRvbiBtZWRpYS1zdG9wIG1lZGlhLWRpc2FibGVkXCIgPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwibWVkaWEtcGxheWVyLWJ1dHRvbiBtZWRpYS1haGVhZFwiPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgYDxpbnB1dCB0eXBlPVwicmFuZ2VcIj5gICtcclxuICAgICAgICAgICAgYDxkaXYgY2xhc3M9XCJtZWRpYS1jb250cm9sLXZhbHVlLWxhYmVsLWNvbnRhaW5lclwiPmAgK1xyXG4gICAgICAgICAgICBgPHNwYW4gY2xhc3M9XCJtZWRpYS1jb250cm9sLXZhbHVlLWxhYmVsLW1pblwiPjwvc3Bhbj5gICtcclxuICAgICAgICAgICAgYDxzcGFuIGNsYXNzPVwibWVkaWEtY29udHJvbC12YWx1ZS1sYWJlbC12YWxcIj48L3NwYW4+YCArXHJcbiAgICAgICAgICAgIGA8c3BhbiBjbGFzcz1cIm1lZGlhLWNvbnRyb2wtdmFsdWUtbGFiZWwtbWF4XCI+PC9zcGFuPmAgK1xyXG4gICAgICAgICAgICBgPC9kaXY+YDtcclxuXHJcbiAgICAgICAgdGhpcy5fY29udGFpbmVyLmFwcGVuZChodG1sU3RyKTtcclxuXHJcbiAgICAgICAgLy8gbGV0IGJ0blBhdXNlID0gdGhpcy5fY29udGFpbmVyLmZpbmQoJy5tZWRpYS1wYXVzZScpO1xyXG4gICAgICAgIGxldCBidG5QbGF5ID0gdGhpcy5fY29udGFpbmVyLmZpbmQoJy5tZWRpYS1wbGF5Jyk7XHJcbiAgICAgICAgdGhpcy5fJGJ0blN0b3AgPSB0aGlzLl9jb250YWluZXIuZmluZCgnLm1lZGlhLXN0b3AnKTtcclxuICAgICAgICBsZXQgYnRuQWhlYWQgPSB0aGlzLl9jb250YWluZXIuZmluZCgnLm1lZGlhLWFoZWFkJyk7XHJcbiAgICAgICAgbGV0IGJ0bkJhY2sgPSB0aGlzLl9jb250YWluZXIuZmluZCgnLm1lZGlhLWJhY2snKTtcclxuICAgICAgICB0aGlzLl8kc2xpZGVyID0gdGhpcy5fY29udGFpbmVyLmZpbmQoJ2lucHV0W3R5cGU9cmFuZ2VdJyk7XHJcblxyXG4gICAgICAgIHRoaXMuXyR2YWxMYWJlbE1pbiA9IHRoaXMuX2NvbnRhaW5lci5maW5kKCcubWVkaWEtY29udHJvbC12YWx1ZS1sYWJlbC1taW4nKTtcclxuICAgICAgICB0aGlzLl8kdmFsTGFiZWxWYWwgPSB0aGlzLl9jb250YWluZXIuZmluZCgnLm1lZGlhLWNvbnRyb2wtdmFsdWUtbGFiZWwtdmFsJyk7XHJcbiAgICAgICAgdGhpcy5fJHZhbExhYmVsTWF4ID0gdGhpcy5fY29udGFpbmVyLmZpbmQoJy5tZWRpYS1jb250cm9sLXZhbHVlLWxhYmVsLW1heCcpO1xyXG5cclxuICAgICAgICB0aGlzLnNldE1pbk1heFZhbHVlU3RlcChtZWRpYUNvbmZpZy5taW4sIG1lZGlhQ29uZmlnLm1heCwgbWVkaWFDb25maWcudmFsLCBtZWRpYUNvbmZpZy5zdGVwKTtcclxuXHJcbiAgICAgICAgcmFuZ2VDaGFuZ2UodGhpcy5fJHNsaWRlciwobmV3VmFsKSA9PiB7IHRoaXMuY3VycmVudFZhbHVlID0gbmV3VmFsO30sIDEwMCk7XHJcblxyXG4gICAgICAgIGxldCBfX190aGlzID0gdGhpcztcclxuXHJcbiAgICAgICAgYnRuUGxheS5jbGljayhmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGxldCAkdGhpcyA9ICQodGhpcyk7XHJcbiAgICAgICAgICAgICR0aGlzLmFkZENsYXNzKCdtZWRpYS1kaXNhYmxlZCcpO1xyXG4gICAgICAgICAgICBfX190aGlzLl8kYnRuU3RvcC5yZW1vdmVDbGFzcygnbWVkaWEtZGlzYWJsZWQnKTtcclxuICAgICAgICAgICAgYnRuQWhlYWQuYWRkQ2xhc3MoJ21lZGlhLWxvY2tlZCcpO1xyXG4gICAgICAgICAgICBidG5CYWNrLmFkZENsYXNzKCdtZWRpYS1sb2NrZWQnKTtcclxuICAgICAgICAgICAgX19fdGhpcy5fJHNsaWRlci5wcm9wKCdkaXNhYmxlZCcsIHRydWUpO1xyXG4gICAgICAgICAgICBfX190aGlzLl9wbGF5aW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIF9fX3RoaXMuX2ludGVydmFsID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgX19fdGhpcy5jdXJyZW50VmFsdWUgKz0gX19fdGhpcy5fc3RlcDtcclxuICAgICAgICAgICAgfSwgX19fdGhpcy5fcGxheUludGVydmFsKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fJGJ0blN0b3AuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBjbGVhckludGVydmFsKF9fX3RoaXMuX2ludGVydmFsKTtcclxuICAgICAgICAgICAgbGV0ICR0aGlzID0gJCh0aGlzKTtcclxuICAgICAgICAgICAgJHRoaXMuYWRkQ2xhc3MoJ21lZGlhLWRpc2FibGVkJyk7XHJcbiAgICAgICAgICAgIGJ0blBsYXkucmVtb3ZlQ2xhc3MoJ21lZGlhLWRpc2FibGVkJyk7XHJcbiAgICAgICAgICAgIGJ0bkFoZWFkLnJlbW92ZUNsYXNzKCdtZWRpYS1sb2NrZWQnKTtcclxuICAgICAgICAgICAgYnRuQmFjay5yZW1vdmVDbGFzcygnbWVkaWEtbG9ja2VkJyk7XHJcbiAgICAgICAgICAgIF9fX3RoaXMuXyRzbGlkZXIucHJvcCgnZGlzYWJsZWQnLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIF9fX3RoaXMuX3BsYXlpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgYnRuQWhlYWQuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBfX190aGlzLmN1cnJlbnRWYWx1ZSA9IF9fX3RoaXMuY3VycmVudFZhbHVlICsgX19fdGhpcy5fc3RlcDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgYnRuQmFjay5jbGljayhmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIF9fX3RoaXMuY3VycmVudFZhbHVlID0gX19fdGhpcy5jdXJyZW50VmFsdWUgLSBfX190aGlzLl9zdGVwO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHN0b3BQbGF5aW5nKCl7XHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXlpbmcpe1xyXG4gICAgICAgICAgICB0aGlzLl8kYnRuU3RvcC50cmlnZ2VyKCdjbGljaycpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQgcGxheWluZygpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wbGF5aW5nO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBtaW4oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbWF4KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXg7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHN0ZXAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0ZXA7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGN1cnJlbnRWYWx1ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudFZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBjdXJyZW50VmFsdWUobmV3VmFsdWUpIHtcclxuICAgICAgICBpZiAobmV3VmFsdWUgPiB0aGlzLl9tYXgpIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSB0aGlzLl9taW47XHJcbiAgICAgICAgfSBlbHNlIGlmIChuZXdWYWx1ZSA8IHRoaXMuX21pbikge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9IHRoaXMuX21heDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fY3VycmVudFZhbHVlID0gbmV3VmFsdWU7XHJcbiAgICAgICAgdGhpcy5fJHNsaWRlci52YWwodGhpcy5fY3VycmVudFZhbHVlLnRvRml4ZWQoMikpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fc2hvd0FzRGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl8kdmFsTGFiZWxWYWwuaHRtbCh0aW1lVG9Mb2NhbERhdGVTdHJpbmcodGhpcy5jdXJyZW50VmFsdWUpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl8kdmFsTGFiZWxWYWwuaHRtbCh0aGlzLmN1cnJlbnRWYWx1ZS50b1N0cmluZygpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2NoYW5nZUZ1bmMobmV3VmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IG1pbiBhbmQgbWF4IHZhbHVlIHdpdGggc3RlcFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG5ld01pbiB0aGUgbmV3IG1pblxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG5ld01heCB0aGUgbmV3IG1hc1xyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuZXdWYWx1ZT1uZXdNaW5dIHRoZSB2YWx1ZSB0byBzZXRcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbmV3U3RlcD0obmV3TWF4LW5ld01pbikvMjBdIHN0ZXAgdmFsdWVcclxuICAgICAqL1xyXG4gICAgc2V0TWluTWF4VmFsdWVTdGVwKG5ld01pbiwgbmV3TWF4LCBuZXdWYWx1ZSwgbmV3U3RlcCkge1xyXG4gICAgICAgIHRoaXMuX21pbiA9IG5ld01pbjtcclxuICAgICAgICB0aGlzLl9tYXggPSBuZXdNYXg7XHJcblxyXG4gICAgICAgIG5ld1ZhbHVlID0gdHlwZW9mIG5ld1ZhbHVlID09ICdudW1iZXInID8gbmV3VmFsdWUgOiBuZXdNaW47XHJcbiAgICAgICAgbmV3U3RlcCA9IHR5cGVvZiBuZXdTdGVwID09ICdudW1iZXInID8gbmV3U3RlcCA6IChuZXdNYXgtbmV3TWluKS8yMDtcclxuXHJcbiAgICAgICAgdGhpcy5fY3VycmVudFZhbHVlID0gbmV3VmFsdWU7XHJcbiAgICAgICAgdGhpcy5fc3RlcCA9IG5ld1N0ZXA7XHJcblxyXG4gICAgICAgIHRoaXMuXyRzbGlkZXIucHJvcCgnbWluJywgdGhpcy5taW4udG9TdHJpbmcoKSk7XHJcbiAgICAgICAgdGhpcy5fJHNsaWRlci5wcm9wKCdtYXgnLCB0aGlzLm1heC50b1N0cmluZygpKTtcclxuICAgICAgICB0aGlzLl8kc2xpZGVyLnByb3AoJ3N0ZXAnLCB0aGlzLnN0ZXAudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgdGhpcy5fJHNsaWRlci52YWwodGhpcy5jdXJyZW50VmFsdWUudG9TdHJpbmcoKSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9zaG93QXNEYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyR2YWxMYWJlbE1pbi5odG1sKHRpbWVUb0xvY2FsRGF0ZVN0cmluZyh0aGlzLl9taW4pKTtcclxuICAgICAgICAgICAgdGhpcy5fJHZhbExhYmVsVmFsLmh0bWwodGltZVRvTG9jYWxEYXRlU3RyaW5nKHRoaXMuY3VycmVudFZhbHVlKSk7XHJcbiAgICAgICAgICAgIHRoaXMuXyR2YWxMYWJlbE1heC5odG1sKHRpbWVUb0xvY2FsRGF0ZVN0cmluZyh0aGlzLl9tYXgpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl8kdmFsTGFiZWxNaW4uaHRtbCh0aGlzLl9taW4udG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgIHRoaXMuXyR2YWxMYWJlbFZhbC5odG1sKHRoaXMuY3VycmVudFZhbHVlLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgICAgICB0aGlzLl8kdmFsTGFiZWxNYXguaHRtbCh0aGlzLl9tYXgudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bWVkaWFDYWxsYmFja30gbmV3RnVuYyB0aGUgY2FsbGJhY2sgb24gY2hhbmdlXHJcbiAgICAgKi9cclxuICAgIHNldCBjaGFuZ2VGdW5jdGlvbihuZXdGdW5jOiBjaGFuZ2VGdW5jdGlvbikge1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZUZ1bmMgPSBuZXdGdW5jO1xyXG4gICAgfVxyXG59XHJcblxyXG5ubS5NZWRpYUNvbnRyb2wgPSBNZWRpYUNvbnRyb2w7XHJcblxyXG4iXX0= /***/ }), -/* 18 */, -/* 19 */ +/* 18 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2464,10 +2463,10 @@ function rangeChange($slider, callback, changeTimeout) { } exports.rangeChange = rangeChange; nm.rangeChange = rangeChange; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtY2hhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmFuZ2UtY2hhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkNBQXNDO0FBR3RDLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFOUIsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO0FBQ3BCLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztBQUN0QixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFDbkIsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO0FBQ3BCLElBQUksT0FBTyxDQUFDO0FBeUJaOztHQUVHO0FBRUgseUJBQXlCLFFBQThCLEVBQUUsR0FBRztJQUN4RCxZQUFZLENBQUM7SUFFYixJQUFJLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLElBQUksR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsSUFBSSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixJQUFJLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUEsQ0FBQztRQUNsQixHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksT0FBTyxHQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBRXpDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sT0FBTyxJQUFJLFFBQVEsSUFBSSxHQUFHLElBQUssT0FBTyxDQUFDLENBQUEsQ0FBQztRQUMvQyxNQUFNLENBQUM7SUFDWCxDQUFDO0lBQ0QsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUNkLFFBQVEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFJRDs7Ozs7OztHQU9HO0FBQ0gscUJBQTZCLE9BQWUsRUFBRSxRQUE4QixFQUFFLGFBQXFCO0lBRS9GLGFBQWEsR0FBRyxPQUFRLGFBQWEsSUFBSSxRQUFRLEdBQUcsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUV2RSxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ2YsT0FBTyxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDZixPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ2QsU0FBUyxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDWixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLFNBQVM7SUFDYjs7OztPQUlHO0lBQ0gsVUFBVSxHQUFHO1FBQ2IsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxDQUFDO1FBQ1gsQ0FBQztRQUVELE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFZixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixNQUFNLENBQUM7UUFDWCxDQUFDO1FBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4QixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNsQixZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUVELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztRQUVqQixPQUFPLEdBQUcsVUFBVSxDQUFDO1lBQ2pCLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMzQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRW5CLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxLQUFLO0lBQ1Q7OztPQUdHO0lBQ0gsVUFBVSxHQUFHO1FBQ2IsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRztRQUN4QixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ1YsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUVoQixNQUFNLENBQUM7UUFDWCxDQUFDO1FBQ0QsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLElBQUksQ0FBQztBQUNoQixDQUFDO0FBekVELGtDQXlFQztBQUVELEVBQUUsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnZG9tVXRpbCcpO1xyXG5cclxubGV0IG1vdXNlSW4gPSBmYWxzZTtcclxubGV0IG1vdXNlRG93biA9IGZhbHNlO1xyXG5sZXQgdGltZW91dCA9IG51bGw7XHJcbmxldCBkcmFnZ2VkID0gZmFsc2U7XHJcbmxldCBsYXN0VmFsO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBjYWxsYmFjayBvbiByYW5nZSBjaGFuZ2UgaW50ZXJhY3Rpb24sIGNvbnRleHQgb2YgdGhpcyBpcyB0aGUgZmlyaW5nIGRvbSBlbGVtZW50XHJcbiAqIEBjYWxsYmFjayByYW5nZUNoYW5nZUNhbGxiYWNrXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBuZXdWYWx1ZVxyXG4gKiBAcGFyYW0ge251bWJlcn0gcmF0aW8gdmFsdWUgZnJvbSAwIHRvIDEgcmVsYXRpdmUgb2YgdGhlIHZhbHVlIHRvIHRoZSBtaW4gYW5kIG1heFxyXG4gKiBAcGFyYW0ge29iamVjdH0gZXZ0XHJcbiAqL1xyXG5cclxuLyoqKlxyXG4gKiBjYWxsYmFjayBmdW5jaW9uIGFmdGVyIHRoZSBzbGlkZXIgaGFzIGJlZW4gbW92ZWRcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgcmFuZ2VDaGFuZ2VkQ2FsbGJhY2t7XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gbmV3VmFsdWUgbmV3IHZhbHVlIG9mIHRoZSBzbGlkZXJcclxuICAgICAqIEBwYXJhbSByYXRpbyByYXRpbyBmcm9tIGxvdyB0byBoaWdoLCAwIHRvIDFcclxuICAgICAqIEBwYXJhbSBldnQgdGhlIG9yaWdpbmFsIGV2ZW50XHJcbiAgICAgKi9cclxuICAgIChuZXdWYWx1ZTogbnVtYmVyLCByYXRpbzogbnVtYmVyLCBldnQ6IEV2ZW50KTogYW55XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8yLzIwMTUuXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gdHJpZ2dlckNhbGxiYWNrKGNhbGxiYWNrOiByYW5nZUNoYW5nZWRDYWxsYmFjaywgZXZ0KSB7XHJcbiAgICBcInVzZSBzdHJpY3RcIjtcclxuXHJcbiAgICBsZXQgdmFsID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlKTtcclxuICAgIGxldCBtaW4gPSBwYXJzZUZsb2F0KHRoaXMubWluKTtcclxuICAgIGxldCBtYXggPSBwYXJzZUZsb2F0KHRoaXMubWF4KTtcclxuICAgIGxldCBzdGVwID0gcGFyc2VGbG9hdCh0aGlzLnN0ZXApO1xyXG5cclxuICAgIGlmIChtYXggLSB2YWwgPCBzdGVwKXtcclxuICAgICAgICB2YWwgPSBtYXg7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBlcmNlbnQgPSAgKHZhbCAtIG1pbikgLyAobWF4IC0gbWluKTtcclxuXHJcbiAgICBpZiAodHlwZW9mIGxhc3RWYWwgPT0gJ251bWJlcicgJiYgdmFsID09ICBsYXN0VmFsKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsYXN0VmFsID0gdmFsO1xyXG4gICAgY2FsbGJhY2sodmFsLCBwZXJjZW50LCBldnQpO1xyXG59XHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiBBZGQgYSB2YXJpZXR5IG9mIGxpc3RlbmVycyBmb3IgcmFuZ2UgaW5wdXRzIGFwcGxpZWQgdG8gYSBjb21tb24gY2FsbGJhY2tcclxuICogQHBhcmFtICAkc2xpZGVyIC0ganF1ZXJ5IHJlZmVyZW5jZSB0byB0aGUgc2xpZGVyXHJcbiAqIEBwYXJhbSB7cmFuZ2VDaGFuZ2VDYWxsYmFja30gY2FsbGJhY2sgLSB0aGUgY2FsbGJhY2tcclxuICogQHBhcmFtIHtudW1iZXJ9IFtjaGFuZ2VUaW1lb3V0PTc1XSBiZWZvcmUgdGhlIGNhbGxiYWNrIGlzIGNhbGxlZFxyXG4gKiBAdGhpcyB7alF1ZXJ5fVxyXG4gKiBAcmV0dXJucyB7alF1ZXJ5fSB0aGUgalF1ZXJ5IG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJhbmdlQ2hhbmdlICgkc2xpZGVyOiBKUXVlcnksIGNhbGxiYWNrOiByYW5nZUNoYW5nZWRDYWxsYmFjaywgY2hhbmdlVGltZW91dDogbnVtYmVyKSB7XHJcblxyXG4gICAgY2hhbmdlVGltZW91dCA9IHR5cGVvZiAgY2hhbmdlVGltZW91dCA9PSAnbnVtYmVyJyA/IGNoYW5nZVRpbWVvdXQgOiA3NTtcclxuXHJcbiAgICAkc2xpZGVyLm1vdXNlZW50ZXIoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIG1vdXNlSW4gPSB0cnVlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgJHNsaWRlci5tb3VzZWxlYXZlKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBtb3VzZUluID0gZmFsc2U7XHJcbiAgICAgICAgbW91c2VEb3duID0gZmFsc2U7XHJcbiAgICB9KTtcclxuXHJcbiAgICAkc2xpZGVyLm1vdXNlZG93bihmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgbW91c2VEb3duID0gdHJ1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgICRzbGlkZXIubW91c2V1cChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgbW91c2VEb3duID0gZmFsc2U7XHJcbiAgICB9KTtcclxuXHJcbiAgICAkc2xpZGVyLm1vdXNlbW92ZShcclxuICAgICAgICAvKipcclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBldnQgLSBldmVudCBwcm9wZXJ0aWVzXHJcbiAgICAgICAgICogQHRoaXMge0hUTUxFbGVtZW50fVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGZ1bmN0aW9uIChldnQpIHtcclxuICAgICAgICBpZiAoIShtb3VzZUluICYmIG1vdXNlRG93bikpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZHJhZ2dlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIGlmIChsYXN0VmFsID09IHRoaXNbJ3ZhbHVlJ10pIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsYXN0VmFsID0gdGhpc1sndmFsdWUnXTtcclxuXHJcbiAgICAgICAgaWYgKHRpbWVvdXQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHRyaWdnZXJDYWxsYmFjay5jYWxsKF90aGlzLCBjYWxsYmFjaywgZXZ0KTtcclxuICAgICAgICAgICAgdGltZW91dCA9IG51bGw7XHJcblxyXG4gICAgICAgIH0sIGNoYW5nZVRpbWVvdXQpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgJHNsaWRlci5rZXl1cChcclxuICAgICAgICAvKipcclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBldnQgLSBldmVudCBwcm9wZXJ0aWVzXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgZnVuY3Rpb24gKGV2dCkge1xyXG4gICAgICAgIGlmIChldnQua2V5Q29kZSA9PSAzNyB8fCBldnQua2V5Q29kZSA9PSAzOSkge1xyXG4gICAgICAgICAgICB0cmlnZ2VyQ2FsbGJhY2suY2FsbCh0aGlzLCBjYWxsYmFjaywgZXZ0KTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAkc2xpZGVyLmNoYW5nZShmdW5jdGlvbiAoZXZ0KSB7XHJcbiAgICAgICAgaWYgKGRyYWdnZWQpIHtcclxuICAgICAgICAgICAgZHJhZ2dlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0cmlnZ2VyQ2FsbGJhY2suY2FsbCh0aGlzLCBjYWxsYmFjaywgZXZ0KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG59XHJcblxyXG5ubS5yYW5nZUNoYW5nZSA9IHJhbmdlQ2hhbmdlO1xyXG5cclxuIl19 /***/ }), -/* 20 */ +/* 19 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2766,14 +2765,14 @@ var LayerBaseVector = (function (_super) { exports.LayerBaseVector = LayerBaseVector; nm.LayerBaseVector = LayerBaseVector; exports.default = LayerBaseVector; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJCYXNlVmVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJCYXNlVmVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHlDQUF3RDtBQUN4RCxnREFBMkM7QUFFM0MsMkNBQXNDO0FBQ3RDLDhCQUFpQztBQUNqQywwQkFBNkI7QUFFN0IsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQTRCN0I7Ozs7R0FJRztBQUNIO0lBQXFDLG1DQUFTO0lBZTFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F3Qkc7SUFDSCx5QkFBWSxHQUFXLEVBQUUsT0FBb0M7UUFBcEMsd0JBQUEsRUFBQSxZQUFvQztRQUE3RCxZQUNJLGtCQUFNLEdBQUcsRUFBRSxPQUFPLENBQUMsU0F3RHRCO1FBdERHLE9BQU8sR0FBRyxPQUFpQyxDQUFDO1FBRTVDLGtEQUFrRDtRQUNsRCxFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEIsS0FBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQztRQUVELEtBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxPQUFPLENBQUMsS0FBSyxJQUFJLFdBQVcsR0FBRyxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUU5RSxFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNmLEtBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzFCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLEtBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQzdGLENBQUM7UUFFRCxLQUFJLENB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QUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QyxDQUFDO1FBQ0wsQ0FBQzs7O09BYkE7SUFtQkQsc0JBQUksbUNBQU07UUFKVjs7O1dBR0c7YUFDSDtZQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFzQixDQUFDO1FBQ2hELENBQUM7OztPQUFBO0lBS0Qsc0JBQUkscUNBQVE7UUFIWjs7V0FFRzthQUNIO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckMsQ0FBQzs7O09BQUE7SUFLRCxzQkFBSSxvQ0FBTztRQUhYOztXQUVHO2FBQ0g7WUFDSSxNQUFNLENBQUMsaUJBQU0sVUFBVSxXQUFxQixDQUFDO1FBQ2pELENBQUM7OztPQUFBO0lBRVMsbUNBQVMsR0FBbkIsVUFBb0IsSUFBWTtRQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0wsc0JBQUM7QUFBRCxDQUFDLEFBaFJELENBQXFDLHFCQUFTLEdBZ1I3QztBQWhSWSwwQ0FBZTtBQWtSNUIsRUFBRSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7QUFDckMsa0JBQWUsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMYXllckJhc2UsIExheWVyQmFzZU9wdGlvbnN9IGZyb20gJy4vTGF5ZXJCYXNlJztcclxuaW1wb3J0IG1hcE1vdmUgZnJvbSAnLi4vb2xIZWxwZXJzL21hcE1vdmUnO1xyXG5pbXBvcnQgTWFwTW92ZUNscyBmcm9tICcuLi9vbEhlbHBlcnMvbWFwTW92ZUNscydcclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcblxyXG5jb25zdCBubSA9IHByb3ZpZGUoJ2xheWVycycpO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBtYWtlTWFwTW92ZVBhcmFtcyB7XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gbHlyXHJcbiAgICAgKiBAcGFyYW0gZXh0ZW50XHJcbiAgICAgKiBAcGFyYW0gem9vbUxldmVsXHJcbiAgICAgKi9cclxuICAgIChseXI6IExheWVyQmFzZVZlY3RvciwgZXh0ZW50OiBBcnJheTxudW1iZXI+LCB6b29tTGV2ZWw/OiBudW1iZXIpOiBhbnlcclxufVxyXG5cclxuXHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckJhc2VWZWN0b3JPcHRpb25zIGV4dGVuZHMgTGF5ZXJCYXNlT3B0aW9uc3tcclxuICAgIGF1dG9Mb2FkPzogYm9vbGVhbjtcclxuICAgIHN0eWxlPzogb2wuc3R5bGUuU3R5bGV8QXJyYXk8b2wuc3R5bGUuU3R5bGU+fG9sLlN0eWxlRnVuY3Rpb247XHJcbiAgICBvbkRlbWFuZD86IGJvb2xlYW47XHJcbiAgICBvbkRlbWFuZERlbGF5PzogbnVtYmVyO1xyXG4gICAgbWFwTW92ZU1ha2VHZXRQYXJhbXM/OiBtYWtlTWFwTW92ZVBhcmFtcztcclxuICAgIG1hcE1vdmVPYmo/OiBNYXBNb3ZlQ2xzO1xyXG4gICAgcmVuZGVyT3JkZXI/OiAoYTogb2wuRmVhdHVyZSwgYjogb2wuRmVhdHVyZSkgPT4gbnVtYmVyO1xyXG5cclxufVxyXG5cclxuXHJcblxyXG4vKipcclxuICogVGhlIFZlY3RvciBsYXllciBiYXNlXHJcbiAqIEBhdWdtZW50cyBMYXllckJhc2VcclxuICogQGFic3RyYWN0XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTGF5ZXJCYXNlVmVjdG9yIGV4dGVuZHMgTGF5ZXJCYXNlIHtcclxuICAgIF9vbExheWVyOiBvbC5sYXllci5WZWN0b3I7XHJcbiAgICBfc291cmNlOiBvbC5zb3VyY2UuVmVjdG9yO1xyXG4gICAgX3N0eWxlOiBvbC5zdHlsZS5TdHlsZXxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuU3R5bGVGdW5jdGlvbjtcclxuICAgIF9hdXRvTG9hZDogYm9vbGVhbjtcclxuICAgIF9vbkRlbWFuZDogYm9vbGVhbjtcclxuICAgIF9vbkRlbWFuZERlbGF5OiBudW1iZXI7XHJcbiAgICBfbWFwTW92ZU1ha2VHZXRQYXJhbXM6IG1ha2VNYXBNb3ZlUGFyYW1zO1xyXG4gICAgX21hcE1vdmVQYXJhbXM6IGFueTtcclxuICAgIF9tYXBNb3ZlOiBNYXBNb3ZlQ2xzO1xyXG4gICAgX3Byb2plY3Rpb25NYXA6IG9sLnByb2ouUHJvamVjdGlvbjtcclxuICAgIF9wcm9qZWN0aW9uNDMyNjogb2wucHJvai5Qcm9qZWN0aW9uO1xyXG5cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYmFzZSB2ZWN0b3IgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgLSBwYXNzIGFuIGVtcHR5IHN0cmluZyB0byBwcmV2ZW50IGRlZmF1bHQgbG9hZCBhbmQgYWRkIGZyb20gYSBqc29uIHNvdXJjZVxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgLSBjb25maWdcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5pZF0gLSBsYXllciBpZFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLm5hbWU9VW5uYW1lZCBMYXllcl0gLSBsYXllciBuYW1lXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMub3BhY2l0eT0xXSAtIG9wYWNpdHlcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMudmlzaWJsZT10cnVlXSAtIGRlZmF1bHQgdmlzaWJsZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSAtIG1pbiB6b29tIGxldmVsLCAwIC0gMjhcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5tYXhab29tPXVuZGVmaW5lZF0gLSBtYXggem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMucGFyYW1zPXt9XSB0aGUgZ2V0IHBhcmFtZXRlcnMgdG8gaW5jbHVkZSB0byByZXRyaWV2ZSB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56SW5kZXg9MF0gdGhlIHogaW5kZXggZm9yIHRoZSBsYXllclxyXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbn0gW29wdGlvbnMubG9hZENhbGxiYWNrXSBmdW5jdGlvbiB0byBjYWxsIG9uIGxvYWQsIGNvbnRleHQgdGhpcyBpcyB0aGUgbGF5ZXIgb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENvbGxhcHNlPWZhbHNlXSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGJlIGluaXRpYWxseSBjb2xsYXBzZWRcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ2hlY2tib3g9dHJ1ZV0gaWYgdGhlIGxlZ2VuZCBpdGVtIHNob3VsZCBoYXZlIGEgY2hlY2tib3ggZm9yIHZpc2liaWxpdHlcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ29udGVudF0gYWRkaXRpb25hbCBjb250ZW50IHRvIGFkZCB0byB0aGUgbGVnZW5kXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5hdXRvTG9hZD1mYWxzZV0gaWYgdGhlIGxheWVyIHNob3VsZCBhdXRvIGxvYWQgaWYgbm90IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucy5zdHlsZT11bmRlZmluZWRdIHRoZSBsYXllciBzdHlsZSwgdXNlIG9wZW5sYXllcnMgZGVmYXVsdCBzdHlsZSBpZiBub3QgZGVmaW5lZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5vbkRlbWFuZD1mYWxzZV0gaWYgdGhlIGxheWVyIHNob3VsZCBiZSBsb2FkZWQgYnkgZXh0ZW50IG9uIG1hcCBtb3ZlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMub25EZW1hbmREZWxheT0zMDBdIGRlbGF5IGJlZm9yZSB0aGUgbWFwIG1vdmUgY2FsbGJhY2sgc2hvdWxkIGJlIGNhbGxlZFxyXG4gICAgICogQHBhcmFtIHttYXBNb3ZlTWFrZUdldFBhcmFtc30gW29wdGlvbnMubWFwTW92ZU1ha2VHZXRQYXJhbXM9ZnVuY3Rpb24obHlyLCBleHRlbnQsIHpvb21MZXZlbCl7fV0gZnVuY3Rpb24gdG8gY3JlYXRlIGFkZGl0aW9uYWwgbWFwIG1vdmUgcGFyYW1zXHJcbiAgICAgKiBAcGFyYW0ge01hcE1vdmVDbHN9IFtvcHRpb25zLm1hcE1vdmVPYmo9bWFwTW92ZV0gYWx0ZXJuYXRlIG1hcCBtb3ZlIG9iamVjdCBmb3IgdXNlIHdpdGggbXVsdGkgbWFwIHBhZ2VzXHJcbiAgICAgKlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcih1cmw6IHN0cmluZywgb3B0aW9uczogTGF5ZXJCYXNlVmVjdG9yT3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIodXJsLCBvcHRpb25zKTtcclxuXHJcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgYXMgTGF5ZXJCYXNlVmVjdG9yT3B0aW9ucztcclxuXHJcbiAgICAgICAgLy9wcmV2ZW50IHJlZ3VsYXIgbG9hZCBpZiBubyB1cmwgaGFzIGJlZW4gcHJvdmlkZWRcclxuICAgICAgICBpZiAodGhpcy51cmwudHJpbSgpID09ICcnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zdHlsZSA9IHR5cGVvZiBvcHRpb25zLnN0eWxlID09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogb3B0aW9ucy5zdHlsZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9hdXRvTG9hZCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fYXV0b0xvYWQgPSAodHlwZW9mIG9wdGlvbnNbJ2F1dG9Mb2FkJ10gPT0gJ2Jvb2xlYW4nID8gb3B0aW9uc1snYXV0b0xvYWQnXSA6IGZhbHNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX29uRGVtYW5kID0gdHlwZW9mIG9wdGlvbnMub25EZW1hbmQgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5vbkRlbWFuZCA6IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX29uRGVtYW5kRGVsYXkgPSB0eXBlb2Ygb3B0aW9ucy5vbkRlbWFuZERlbGF5ID09ICdudW1iZXInID8gb3B0aW9ucy5vbkRlbWFuZERlbGF5IDogMzAwO1xyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5tYXBNb3ZlT2JqKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX21hcE1vdmUgPSBvcHRpb25zLm1hcE1vdmVPYmo7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fbWFwTW92ZSA9IHRoaXMuX29uRGVtYW5kID8gbWFwTW92ZSA6IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9tYXBNb3ZlTWFrZUdldFBhcmFtcyA9IHR5cGVvZiBvcHRpb25zLm1hcE1vdmVNYWtlR2V0UGFyYW1zID09ICdmdW5jdGlvbicgPyBvcHRpb25zLm1hcE1vdmVNYWtlR2V0UGFyYW1zIDpcclxuICAgICAgICAgICAgZnVuY3Rpb24gKCkge3JldHVybiB7fTt9O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fb25EZW1hbmQpIHtcclxuICAgICAgICAgICAgdGhpcy5fbG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5fbWFwTW92ZVBhcmFtcyA9IHt9O1xyXG4gICAgICAgICAgICB0aGlzLl9tYXBNb3ZlLmNoZWNrSW5pdCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9tYXBNb3ZlLmFkZFZlY3RvckxheWVyKHRoaXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fc291cmNlID0gbmV3IG9sLnNvdXJjZS5WZWN0b3IoKTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIgPSBuZXcgb2wubGF5ZXIuVmVjdG9yKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IHRoaXMuX3NvdXJjZSxcclxuICAgICAgICAgICAgICAgIHZpc2libGU6IHRoaXMudmlzaWJsZSxcclxuICAgICAgICAgICAgICAgIHN0eWxlOiB0aGlzLnN0eWxlLFxyXG4gICAgICAgICAgICAgICAgbWluUmVzb2x1dGlvbjogdGhpcy5fbWluUmVzb2x1dGlvbixcclxuICAgICAgICAgICAgICAgIG1heFJlc29sdXRpb246IHRoaXMuX21heFJlc29sdXRpb24sXHJcbiAgICAgICAgICAgICAgICByZW5kZXJPcmRlcjogb3B0aW9ucy5yZW5kZXJPcmRlclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5vbExheWVyLnNldFpJbmRleCh0aGlzLl96SW5kZXgpO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5fcHJvamVjdGlvbk1hcCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fcHJvamVjdGlvbjQzMjYgPSBuZXcgb2wucHJvai5Qcm9qZWN0aW9uKHtjb2RlOiBcIkVQU0c6NDMyNlwifSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBkdW1teSB0byBiZSBvdmVycmlkZGVuXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZmVhdHVyZUNvbGxlY3Rpb24gLSBnZW9qc29uIG9yIGVzcmlqc29uIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBhZGRGZWF0dXJlcyhmZWF0dXJlQ29sbGVjdGlvbikge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdMYXllciB2ZWN0b3IgYmFzZSBhZGRGZWF0dXJlcyBpcyBhIHBsYWNlaG9sZGVyIGFuZCBkb2VzIG5vdGhpbmcnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEJlZm9yZSBjYWxsIHRvIG1hcCBtb3ZlIGNhbGxiYWNrLCBjYW4gcHJldmVudCBjYWxsIGJ5IHJldHVybmluZyBmYWxzZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHpvb20gLSB6b29tIGxldmVsXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2V2dFR5cGU9dW5kZWZpbmVkXSB1bmRlZmluZWQgZm9yIGluaXRpYWwgbG9hZCwgb3RoZXJ3aXNlIG9uZSBvZiAnY2hhbmdlOmNlbnRlcicsICdjaGFuZ2U6cmVzb2x1dGlvbidcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBpZiB0aGUgY2FsbCBzaG91bGQgcHJvY2VlZFxyXG4gICAgICovXHJcbiAgICBtYXBNb3ZlQmVmb3JlKHpvb20sIGV2dFR5cGUpIHtcclxuICAgICAgICBpZiAodGhpcy5taW5ab29tICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgaWYgKHpvb20gPCB0aGlzLm1pblpvb20pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMubWF4Wm9vbSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGlmICh6b29tID4gdGhpcy5tYXhab29tKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnZpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBjYWxsYmFjayB0byBnZW5lcmF0ZSB0aGUgcGFyYW1ldGVycyBwYXNzZWQgaW4gdGhlIGdldCByZXF1ZXN0XHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZXh0ZW50IC0gZXh0ZW50IG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5taW5YIC0gbWluWFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5taW5ZIC0gbWluWVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5tYXhYIC0gbWF4WFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5tYXhZIC0gbWF4WVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHpvb21MZXZlbCAtIHpvb20gbGV2ZWxcclxuICAgICAqL1xyXG4gICAgbWFwTW92ZU1ha2VHZXRQYXJhbXMoZXh0ZW50LCB6b29tTGV2ZWwpIHtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlUGFyYW1zID0ge307XHJcbiAgICAgICAgJC5leHRlbmQodGhpcy5fbWFwTW92ZVBhcmFtcywgdGhpcy5wYXJhbXMpO1xyXG4gICAgICAgICQuZXh0ZW5kKHRoaXMuX21hcE1vdmVQYXJhbXMsIHRoaXMuX21hcE1vdmVNYWtlR2V0UGFyYW1zKHRoaXMsIGV4dGVudCwgem9vbUxldmVsKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBjYWxsYmFjayBmdW5jdGlvbiBvbiBtYXAgbW92ZVxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGQgLSB0aGUganNvbiByZXNwb25zZVxyXG4gICAgICovXHJcbiAgICBtYXBNb3ZlQ2FsbGJhY2soZCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNvdXJjZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9zb3VyY2UuY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBjbGVhciBmZWF0dXJlcyBpbiB0aGUgbGF5ZXJcclxuICAgICAqL1xyXG4gICAgY2xlYXIoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3NvdXJjZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9zb3VyY2UuY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgb24gZGVtYW5kIGRlbGF5IGluIG1pbGlzZWNvbmRzXHJcbiAgICAgKi9cclxuICAgIGdldCBvbkRlbWFuZERlbGF5KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29uRGVtYW5kRGVsYXk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgaWYgdGhlIGxheWVyIGlzIGF1dG9sb2FkZWRcclxuICAgICAqL1xyXG4gICAgZ2V0IGF1dG9Mb2FkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRvTG9hZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgc3R5bGUgZGVmaW5pdGlvblxyXG4gICAgICovXHJcbiAgICBnZXQgc3R5bGUoKTogb2wuU3R5bGVGdW5jdGlvbnxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuc3R5bGUuU3R5bGUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdHlsZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgc3R5bGVcclxuICAgICAqIEBwYXJhbSBzdHlsZSAtIHRoZSBzdHlsZSBvciBmdW5jdGlvblxyXG4gICAgICovXHJcbiAgICBzZXQgc3R5bGUoc3R5bGU6IG9sLlN0eWxlRnVuY3Rpb258QXJyYXk8b2wuc3R5bGUuU3R5bGU+fG9sLnN0eWxlLlN0eWxlKSB7XHJcbiAgICAgICAgdGhpcy5fc3R5bGUgPSBzdHlsZTtcclxuICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0U3R5bGUodGhpcy5fc3R5bGUgYXMgb2wuc3R5bGUuU3R5bGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtYXAgQ1JTIGlmIGl0IGlzIGRlZmluZWQgYnkgdGhlIG1hcCBtb3ZlIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBnZXQgbWFwQ3JzKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwUHJvaiA9PSBudWxsID8gbnVsbCA6IHRoaXMubWFwUHJvai5nZXRDb2RlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG1hcFByb2ooKTogb2wucHJvai5Qcm9qZWN0aW9ue1xyXG4gICAgICAgIGlmICh0aGlzLl9wcm9qZWN0aW9uTWFwICE9IG51bGwpe1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcHJvamVjdGlvbk1hcDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9tYXBNb3ZlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3Byb2plY3Rpb25NYXAgPSB0aGlzLl9tYXBNb3ZlLm1hcC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcHJvamVjdGlvbk1hcDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtYXAgbW92ZSBvYmplY3RcclxuICAgICAqIEB0eXBlIHtNYXBNb3ZlQ2xzfCp9XHJcbiAgICAgKi9cclxuICAgIGdldCBtYXBNb3ZlKCk6IE1hcE1vdmVDbHMge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXBNb3ZlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIG1vdmUgcGFyYW1zXHJcbiAgICAgKiBAdHlwZSB7b2JqZWN0fVxyXG4gICAgICovXHJcbiAgICBnZXQgbWFwTW92ZVBhcmFtcygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWFwTW92ZVBhcmFtcztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdmlzaWJsZSgpOiBib29sZWFue1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSBsYXllciB2aXNpYmlsaXR5XHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqIEBvdmVycmlkZVxyXG4gICAgICovXHJcbiAgICBzZXQgdmlzaWJsZSh2aXNpYmlsaXR5KSB7XHJcbiAgICAgICAgc3VwZXIuc2V0VmlzaWJsZSh2aXNpYmlsaXR5KTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX29uRGVtYW5kKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWFwTW92ZS50cmlnZ2VyTHlyTG9hZCh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIGxheWVyIHZlY3RvciBzb3VyY2VcclxuICAgICAqIEBvdmVycmlkZVxyXG4gICAgICovXHJcbiAgICBnZXQgc291cmNlKCk6IG9sLnNvdXJjZS5WZWN0b3Ige1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNvdXJjZSgpIGFzIG9sLnNvdXJjZS5WZWN0b3I7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhcnJheSBvZiBvbCBmZWF0dXJlc1xyXG4gICAgICovXHJcbiAgICBnZXQgZmVhdHVyZXMoKTogQXJyYXk8b2wuRmVhdHVyZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNvdXJjZS5nZXRGZWF0dXJlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqL1xyXG4gICAgZ2V0IG9sTGF5ZXIoKTogb2wubGF5ZXIuVmVjdG9yIHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0T2xMYXllcigpIGFzIG9sLmxheWVyLlZlY3RvcjtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0WkluZGV4KG5ld1o6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMub2xMYXllci5zZXRaSW5kZXgobmV3Wik7XHJcbiAgICB9XHJcbn1cclxuXHJcbm5tLkxheWVyQmFzZVZlY3RvciA9IExheWVyQmFzZVZlY3RvcjtcclxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJCYXNlVmVjdG9yO1xyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXX0= /***/ }), +/* 20 */, /* 21 */, /* 22 */, /* 23 */, -/* 24 */, -/* 25 */ +/* 24 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2792,7 +2791,7 @@ var __extends = (this && this.__extends) || (function () { }; })(); Object.defineProperty(exports, "__esModule", { value: true }); -var LayerBaseVector_1 = __webpack_require__(20); +var LayerBaseVector_1 = __webpack_require__(19); var esriToOl = __webpack_require__(15); var provide_1 = __webpack_require__(0); var ol = __webpack_require__(2); @@ -2956,10 +2955,10 @@ var LayerBaseVectorEsri = (function (_super) { exports.LayerBaseVectorEsri = LayerBaseVectorEsri; nm.LayerBaseVectorEsri = LayerBaseVectorEsri; exports.default = LayerBaseVectorEsri; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJCYXNlVmVjdG9yRXNyaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkxheWVyQmFzZVZlY3RvckVzcmkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7Ozs7Ozs7Ozs7Ozs7QUFFSCxxREFBMEU7QUFDMUUscURBQXVEO0FBQ3ZELDJDQUFzQztBQUN0Qyw4QkFBaUM7QUFDakMsMEJBQTZCO0FBQzdCLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFVM0I7OztHQUdHO0FBQ0g7SUFBeUMsdUNBQWU7SUFNcEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQThCRztJQUNILDZCQUFZLEdBQVcsRUFBRSxPQUFtQztRQUE1RCxpQkE4QkM7UUE1QkcsRUFBRSxDQUFDLENBQUMsT0FBTyxPQUFPLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDcEMsT0FBTyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDeEIsQ0FBQztRQUNELE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUM7UUFDakQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQztRQUN2RCxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUM7UUFFaEQsUUFBQSxrQkFBTSxHQUFHLEVBQUUsT0FBTyxDQUFDLFNBQUM7UUFDcEIsS0FBSSxDQUFDLE1BQU0sR0FBRyxLQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLEtBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFF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OUQsQ0FBQztJQUNMLDBCQUFDO0FBQUQsQ0FBQyxBQXJLRCxDQUF5QyxpQ0FBZSxHQXFLdkQ7QUFyS1ksa0RBQW1CO0FBdUtoQyxFQUFFLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7QUFDN0Msa0JBQWUsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8yLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtMYXllckJhc2VWZWN0b3IsIExheWVyQmFzZVZlY3Rvck9wdGlvbnN9IGZyb20gJy4vTGF5ZXJCYXNlVmVjdG9yJztcclxuaW1wb3J0ICogYXMgZXNyaVRvT2wgZnJvbSAnLi4vb2xIZWxwZXJzL2VzcmlUb09sU3R5bGUnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgb2wgPSByZXF1aXJlKCdjdXN0b20tb2wnKTtcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxubGV0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExheWVyQmFzZVZlY3RvckVzcmlPcHRpb25zICBleHRlbmRzIExheWVyQmFzZVZlY3Rvck9wdGlvbnN7XHJcbiAgICBmb3JtYXQ/OiBzdHJpbmc7XHJcbiAgICBvdXRTUj86IG51bWJlcjtcclxuICAgIHdoZXJlPzogc3RyaW5nO1xyXG4gICAgb3V0RmllbGRzPzogc3RyaW5nO1xyXG4gICAgdXNlRXNyaVN0eWxlPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEJhc2UgbGF5ZXIgZm9yIGVzcmkgdmVjdG9yIGxheWVyc1xyXG4gKiBAYXVnbWVudHMgTGF5ZXJCYXNlVmVjdG9yXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTGF5ZXJCYXNlVmVjdG9yRXNyaSBleHRlbmRzIExheWVyQmFzZVZlY3RvciB7XHJcbiAgICBfb3V0U1I6IG51bWJlcjtcclxuICAgIF9lc3JpRm9ybWF0OiBvbC5mb3JtYXQuRXNyaUpTT047XHJcbiAgICBfdXJsQ29weTogc3RyaW5nO1xyXG4gICAgX3VzZUVzcmlTdHlsZTogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBiYXNlIHZlY3RvciBsYXllclxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIHVybCBmb3Igc291cmNlXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmlkXSAtIGxheWVyIGlkXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubmFtZT1Vbm5hbWVkIExheWVyXSAtIGxheWVyIG5hbWVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5vcGFjaXR5PTFdIC0gb3BhY2l0eVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy52aXNpYmxlPXRydWVdIC0gZGVmYXVsdCB2aXNpYmxlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWluWm9vbT11bmRlZmluZWRdIC0gbWluIHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1heFpvb209dW5kZWZpbmVkXSAtIG1heCB6b29tIGxldmVsLCAwIC0gMjhcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucy5wYXJhbXM9e31dIHRoZSBnZXQgcGFyYW1ldGVycyB0byBpbmNsdWRlIHRvIHJldHJpZXZlIHRoZSBsYXllclxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLnpJbmRleD0wXSB0aGUgeiBpbmRleCBmb3IgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy5sb2FkQ2FsbGJhY2tdIGZ1bmN0aW9uIHRvIGNhbGwgb24gbG9hZCwgY29udGV4dCB0aGlzIGlzIHRoZSBsYXllciBvYmplY3RcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ29sbGFwc2U9ZmFsc2VdIGlmIHRoZSBsZWdlbmQgaXRlbSBzaG91bGQgYmUgaW5pdGlhbGx5IGNvbGxhcHNlZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDaGVja2JveD10cnVlXSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGhhdmUgYSBjaGVja2JveCBmb3IgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb250ZW50XSBhZGRpdGlvbmFsIGNvbnRlbnQgdG8gYWRkIHRvIHRoZSBsZWdlbmRcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmF1dG9Mb2FkPWZhbHNlXSBpZiB0aGUgbGF5ZXIgc2hvdWxkIGF1dG8gbG9hZCBpZiBub3QgdmlzaWJsZVxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnN0eWxlPXVuZGVmaW5lZF0gdGhlIGxheWVyIHN0eWxlLCB1c2Ugb3BlbmxheWVycyBkZWZhdWx0IHN0eWxlIGlmIG5vdCBkZWZpbmVkXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLm9uRGVtYW5kPWZhbHNlXSBpZiB0aGUgbGF5ZXIgc2hvdWxkIGJlIGxvYWRlZCBieSBleHRlbnQgb24gbWFwIG1vdmVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5vbkRlbWFuZERlbGF5PTMwMF0gZGVsYXkgYmVmb3JlIHRoZSBtYXAgbW92ZSBjYWxsYmFjayBzaG91bGQgYmUgY2FsbGVkXHJcbiAgICAgKiBAcGFyYW0ge01hcE1vdmVDbHN9IFtvcHRpb25zLm1hcE1vdmVPYmo9bWFwTW92ZV0gYWx0ZXJuYXRlIG1hcCBtb3ZlIG9iamVjdCBmb3IgdXNlIHdpdGggbXVsdGkgbWFwIHBhZ2VzXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLndoZXJlPTE9MV0gdGhlIGxheWVyIGZpbHRlciBjbGF1c2VcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5vdXRGaWVsZHM9Kl0gY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygb3V0cHV0IGZpZWxkcywgZGVmYXVsdHMgdG8gYWxsXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuZm9ybWF0PXBqc29uXSB0aGUgZm9ybWF0IHRoZSByZXRyaWV2ZSB0aGUgZGF0YVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm91dFNSPTM4NTddIHRoZSBvdXRwdXQgc3BhdGlhbCByZWZlcmVuY2UsIGRlZmF1bHRzIHRvIHdlYiBtZXJjYXRvclxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy51c2VFc3JpU3R5bGU9ZmFsc2VdIGlmIHRoZSBtYXAgc2VydmljZSBzdHlsZSBzaG91bGQgYmUgdXNlZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5jb2xsYXBzZUxlZ2VuZD1mYWxzZV0gaWYgdGhlIGxlZ2VuZCBzaG91bGQgYmUgaW5pdGlhbGx5IGNvbGxhcHNlZFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1hcE1vdmVNYWtlR2V0UGFyYW1zPWZ1bmN0aW9uKGV4dGVudCwgem9vbUxldmVsKXt9XSBmdW5jdGlvbiB0byBjcmVhdGUgYWRkaXRpb25hbCBtYXAgbW92ZSBwYXJhbXNcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IodXJsOiBzdHJpbmcsIG9wdGlvbnM6IExheWVyQmFzZVZlY3RvckVzcmlPcHRpb25zKSB7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5wYXJhbXMgIT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgb3B0aW9ucy5wYXJhbXMgPSB7fTtcclxuICAgICAgICB9XHJcbiAgICAgICAgb3B0aW9ucy5wYXJhbXNbJ3doZXJlJ10gPSBvcHRpb25zLndoZXJlIHx8ICcxPTEnO1xyXG4gICAgICAgIG9wdGlvbnMucGFyYW1zWydvdXRGaWVsZHMnXSA9IG9wdGlvbnMub3V0RmllbGRzIHx8ICcqJztcclxuICAgICAgICBvcHRpb25zLnBhcmFtc1snZiddID0gb3B0aW9ucy5mb3JtYXQgfHwgJ3Bqc29uJztcclxuICAgICAgICBvcHRpb25zLnBhcmFtc1snb3V0U1InXSA9IG9wdGlvbnMub3V0U1IgfHwgMzg1NztcclxuXHJcbiAgICAgICAgc3VwZXIodXJsLCBvcHRpb25zKTtcclxuICAgICAgICB0aGlzLl9vdXRTUiA9IHRoaXMucGFyYW1zWydvdXRTUiddO1xyXG4gICAgICAgIHRoaXMuX2VzcmlGb3JtYXQgPSBuZXcgb2wuZm9ybWF0LkVzcmlKU09OKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl91cmxbdGhpcy5fdXJsLmxlbmd0aCAtIDFdICE9PSAnLycpIHtcclxuICAgICAgICAgICAgdGhpcy5fdXJsICs9ICcvJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3VybENvcHkgPSB0aGlzLnVybDtcclxuICAgICAgICB0aGlzLl91cmwgKz0gJ3F1ZXJ5P2NhbGxiYWNrPT8nO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5hdXRvTG9hZCB8fCB0aGlzLnZpc2libGUpIHtcclxuICAgICAgICAgICAgdGhpcy5fbG9hZCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fdXNlRXNyaVN0eWxlID0gdHlwZW9mIG9wdGlvbnMudXNlRXNyaVN0eWxlID09ICdib29sZWFuJyA/IG9wdGlvbnMudXNlRXNyaVN0eWxlIDogZmFsc2U7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl91c2VFc3JpU3R5bGUpIHtcclxuICAgICAgICAgICAgdGhpcy5hZGRMZWdlbmRDb250ZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogYWRkIGFkZGl0aW9uYWwgY29udGVudCB0byB0aGUgbGVnZW5kXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2FkZGl0aW9uYWxDb250ZW50PScnXSBhZGRpdGlvbmFsIGNvbnRlbnQgdG8gYWRkIHRvIGxlZ2VuZFxyXG4gICAgICovXHJcbiAgICBhZGRMZWdlbmRDb250ZW50KGFkZGl0aW9uYWxDb250ZW50Pzogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl91c2VFc3JpU3R5bGUpIHtcclxuICAgICAgICAgICAgc3VwZXIuYWRkTGVnZW5kQ29udGVudChhZGRpdGlvbmFsQ29udGVudCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgJC5nZXQodGhpcy5fdXJsQ29weSArICc/Zj1wanNvbiZjYWxsYmFjaz0/Jywge30sIChkKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZFsnc3ViTGF5ZXJzJ10ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0KCdzaG91bGQgb25seSB1c2Ugc2luZ2xlIGZlYXR1cmUgbGF5ZXJzLCBub3QgZ3JvdXBzJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgbmV3U3R5bGVBbmRMZWdlbmQgPSBlc3JpVG9PbC5tYWtlRmVhdHVyZVNlcnZpY2VMZWdlbmRBbmRTeW1ib2woZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0eWxlID0gbmV3U3R5bGVBbmRMZWdlbmQuc3R5bGU7XHJcbiAgICAgICAgICAgICAgICBzdXBlci5hZGRMZWdlbmRDb250ZW50KG5ld1N0eWxlQW5kTGVnZW5kLmxlZ2VuZCk7XHJcbiAgICAgICAgICAgIH0sICdqc29uJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIGFkZCBmZWF0dXJlIGNvbGxlY3Rpb25cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBmZWF0dXJlQ29sbGVjdGlvbiAtIGZlYXR1cmVzIGFzIGVzcmlqc29uXHJcbiAgICAgKi9cclxuICAgIGFkZEZlYXR1cmVzKGZlYXR1cmVDb2xsZWN0aW9uKSB7XHJcbiAgICAgICAgbGV0IGZlYXRzID0gdGhpcy5fZXNyaUZvcm1hdC5yZWFkRmVhdHVyZXMoZmVhdHVyZUNvbGxlY3Rpb24pO1xyXG4gICAgICAgIHRoaXMuc291cmNlLmFkZEZlYXR1cmVzKGZlYXRzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyaWdnZXIgbG9hZCBmZWF0dXJlc1xyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IGlmIGFscmVhZHkgbG9hZGVkXHJcbiAgICAgKi9cclxuICAgIF9sb2FkKCkge1xyXG4gICAgICAgIGlmIChzdXBlci5fbG9hZCgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAkLmdldCh0aGlzLl91cmwsIHRoaXMucGFyYW1zLCAoZCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFkZEZlYXR1cmVzKGQpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRDYWxsYmFjayh0aGlzKTtcclxuICAgICAgICB9LCAnanNvbicpLmZhaWwoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBjYWxsYmFjayB0byBnZW5lcmF0ZSB0aGUgcGFyYW1ldGVycyBwYXNzZWQgaW4gdGhlIGdldCByZXF1ZXN0XHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZXh0ZW50IC0gZXh0ZW50IG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5taW5YIC0gbWluWFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5taW5ZIC0gbWluWVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5tYXhYIC0gbWF4WFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5tYXhZIC0gbWF4WVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHpvb21MZXZlbCAtIHpvb20gbGV2ZWxcclxuICAgICAqL1xyXG4gICAgbWFwTW92ZU1ha2VHZXRQYXJhbXMoZXh0ZW50LCB6b29tTGV2ZWwpIHtcclxuICAgICAgICBzdXBlci5tYXBNb3ZlTWFrZUdldFBhcmFtcyhleHRlbnQsIHpvb21MZXZlbCk7XHJcbiAgICAgICAgdGhpcy5tYXBNb3ZlUGFyYW1zWydnZW9tZXRyeSddID0gYCR7ZXh0ZW50Lm1pblh9LCR7ZXh0ZW50Lm1pbll9LCR7ZXh0ZW50Lm1heFh9LCR7ZXh0ZW50Lm1heFl9YDtcclxuICAgICAgICB0aGlzLm1hcE1vdmVQYXJhbXNbJ2dlb21ldHJ5VHlwZSddID0gJ2VzcmlHZW9tZXRyeUVudmVsb3BlJztcclxuICAgICAgICB0aGlzLm1hcE1vdmVQYXJhbXNbJ3NwYXRpYWxSZWwnXSA9ICdlc3JpU3BhdGlhbFJlbEludGVyc2VjdHMnO1xyXG4gICAgICAgIHRoaXMubWFwTW92ZVBhcmFtc1snc3BhdGlhbFJlbCddID0gJ2VzcmlTcGF0aWFsUmVsSW50ZXJzZWN0cyc7XHJcbiAgICAgICAgdGhpcy5tYXBNb3ZlUGFyYW1zWydpblNSJ10gPSAzODU3O1xyXG4gICAgICAgIGlmICh0aGlzLl9vdXRTUiA9PSAzODU3KSB7XHJcbiAgICAgICAgICAgIHRoaXMubWFwTW92ZVBhcmFtc1snZ2VvbWV0cnlQcmVjaXNpb24nXSA9IDE7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQmVmb3JlIGNhbGwgdG8gbWFwIG1vdmUgY2FsbGJhY2ssIGNhbiBwcmV2ZW50IGNhbGwgYnkgcmV0dXJuaW5nIGZhbHNlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gem9vbSAtIHpvb20gbGV2ZWxcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbZXZ0VHlwZT11bmRlZmluZWRdIHVuZGVmaW5lZCBmb3IgaW5pdGlhbCBsb2FkLCBvdGhlcndpc2Ugb25lIG9mICdjaGFuZ2U6Y2VudGVyJywgJ2NoYW5nZTpyZXNvbHV0aW9uJ1xyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IGlmIHRoZSBjYWxsIHNob3VsZCBwcm9jZWVkXHJcbiAgICAgKi9cclxuICAgIG1hcE1vdmVCZWZvcmUoem9vbSwgZXZ0VHlwZSkge1xyXG4gICAgICAgIHJldHVybiBzdXBlci5tYXBNb3ZlQmVmb3JlKHpvb20sIGV2dFR5cGUpO1xyXG4gICAgICAgIC8vaWYgKHN1cGVyLm1hcE1vdmVCZWZvcmUoem9vbSwgZXZ0VHlwZSkpe1xyXG4gICAgICAgIC8vICAgIC8vcGxhY2UgaG9sZGVyIGZvciBhZGRpdGlvbmFsIHByb2Nlc3NpbmdcclxuICAgICAgICAvLyAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAvL30gZWxzZSB7XHJcbiAgICAgICAgLy8gICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIC8vfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogY2FsbGJhY2sgZnVuY3Rpb24gb24gbWFwIG1vdmVcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBkIC0gdGhlIGpzb24gcmVzcG9uc2VcclxuICAgICAqL1xyXG4gICAgbWFwTW92ZUNhbGxiYWNrKGQpIHtcclxuICAgICAgICBzdXBlci5tYXBNb3ZlQ2FsbGJhY2soZCk7XHJcbiAgICAgICAgdGhpcy5zb3VyY2UuYWRkRmVhdHVyZXModGhpcy5fZXNyaUZvcm1hdC5yZWFkRmVhdHVyZXMoZCkpO1xyXG4gICAgfVxyXG59XHJcblxyXG5ubS5MYXllckJhc2VWZWN0b3JFc3JpID0gTGF5ZXJCYXNlVmVjdG9yRXNyaTtcclxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJCYXNlVmVjdG9yRXNyaTtcclxuIl19 /***/ }), -/* 26 */ +/* 25 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2978,8 +2977,8 @@ var __extends = (this && this.__extends) || (function () { }; })(); Object.defineProperty(exports, "__esModule", { value: true }); -var LayerBaseXyzTile_1 = __webpack_require__(29); -var RealEarthAnimateTile_1 = __webpack_require__(32); +var LayerBaseXyzTile_1 = __webpack_require__(28); +var RealEarthAnimateTile_1 = __webpack_require__(31); var provide_1 = __webpack_require__(0); var nm = provide_1.default('layers'); /** @@ -3042,12 +3041,12 @@ var LayerRealEarthTile = (function (_super) { exports.LayerRealEarthTile = LayerRealEarthTile; nm.LayerRealEarthTile = LayerRealEarthTile; exports.default = LayerRealEarthTile; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJSZWFsRWFydGhUaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJSZWFsRWFydGhUaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7O0FBRUgsdURBQW9EO0FBRXBELHNFQUFpRTtBQUNqRSwyQ0FBc0M7QUFFdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQVM3Qjs7O0dBR0c7QUFDSDtJQUF3QyxzQ0FBZ0I7SUFJcEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FtQkc7SUFDSCw0QkFBWSxPQUFrQztRQUE5QyxpQkFXQztRQVZHLE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxPQUFPLENBQUMsT0FBTyxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNoRixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNsQixRQUFBLGtCQUFNLEVBQUUsRUFBRSxPQUFPLENBQUMsU0FBQztZQUNuQixLQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDbEMsS0FBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLDhCQUFvQixDQUFDLEtBQUksRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN6RSxLQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLFFBQUEsa0JBQU0sdURBQXFELE9BQU8sQ0FBQyxRQUFRLHVCQUFvQixFQUFFLE9BQU8sQ0FBQyxTQUFDO1lBQzFHLEtBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUN0QyxDQUFDOztJQUNMLENBQUM7SUFFRCx5Q0FBWSxHQUFaLFVBQWEsT0FBZTtRQUN4QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNqQixDQUFDO0lBQ0wsQ0FBQztJQUVELGtDQUFLLEdBQUw7UUFDSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNoQixNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxNQUFNLENBQUMsaUJBQU0sS0FBSyxXQUFFLENBQUM7SUFDekIsQ0FBQztJQUNMLHlCQUFDO0FBQUQsQ0FBQyxBQW5ERCxDQUF3QyxtQ0FBZ0IsR0FtRHZEO0FBbkRZLGdEQUFrQjtBQXFEL0IsRUFBRSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0FBQzNDLGtCQUFlLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvNC8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCB7TGF5ZXJCYXNlWHl6VGlsZX0gZnJvbSAnLi9MYXllckJhc2VYeXpUaWxlJztcclxuaW1wb3J0IHtMYXllckJhc2VPcHRpb25zfSBmcm9tICcuL0xheWVyQmFzZSc7XHJcbmltcG9ydCBSZWFsRWFydGhBbmltYXRlVGlsZSBmcm9tICcuLi9taXhpbi9SZWFsRWFydGhBbmltYXRlVGlsZSc7XHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCB7SVJlYWxFYXJ0aEFuaW1hdGUsIHRpbWVzTG9hZGVkQ2FsbGJhY2t9IGZyb20gXCIuLi9taXhpbi9SZWFsRWFydGhBbmltYXRlXCI7XHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExheWVyUmVhbEVhcnRoVGlsZU9wdGlvbnMgZXh0ZW5kcyBMYXllckJhc2VPcHRpb25zIHtcclxuICAgIHByb2R1Y3RzOiBzdHJpbmc7XHJcbiAgICBhbmltYXRlPzogYm9vbGVhbjtcclxuICAgIHRpbWVMb2FkQ2FsbGJhY2s/OiB0aW1lc0xvYWRlZENhbGxiYWNrO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFJlYWwgZWFydGggdGlsZVxyXG4gKiBAYXVnbWVudHMgTGF5ZXJCYXNlWHl6VGlsZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIExheWVyUmVhbEVhcnRoVGlsZSBleHRlbmRzIExheWVyQmFzZVh5elRpbGUgaW1wbGVtZW50cyBJUmVhbEVhcnRoQW5pbWF0ZSB7XHJcbiAgICBfcHJvZHVjdHM6IHN0cmluZztcclxuICAgIGFuaW1hdG9yOiBSZWFsRWFydGhBbmltYXRlVGlsZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBiYXNlIGxheWVyIGZvciBhbGwgb3RoZXJzXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmlkXSAtIGxheWVyIGlkXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubmFtZT1Vbm5hbWVkIExheWVyXSAtIGxheWVyIG5hbWVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5vcGFjaXR5PTFdIC0gb3BhY2l0eVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy52aXNpYmxlPXRydWVdIC0gZGVmYXVsdCB2aXNpYmxlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWluWm9vbT11bmRlZmluZWRdIC0gbWluIHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1heFpvb209dW5kZWZpbmVkXSAtIG1heCB6b29tIGxldmVsLCAwIC0gMjhcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucy5wYXJhbXM9e31dIHRoZSBnZXQgcGFyYW1ldGVycyB0byBpbmNsdWRlIHRvIHJldHJpZXZlIHRoZSBsYXllclxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLnpJbmRleD0wXSB0aGUgeiBpbmRleCBmb3IgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy5sb2FkQ2FsbGJhY2tdIGZ1bmN0aW9uIHRvIGNhbGwgb24gbG9hZCwgY29udGV4dCB0aGlzIGlzIHRoZSBsYXllciBvYmplY3RcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ29sbGFwc2U9ZmFsc2VdIGlmIHRoZSBsZWdlbmQgaXRlbSBzaG91bGQgYmUgaW5pdGlhbGx5IGNvbGxhcHNlZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDaGVja2JveD10cnVlXSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGhhdmUgYSBjaGVja2JveCBmb3IgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb250ZW50XSBhZGRpdGlvbmFsIGNvbnRlbnQgdG8gYWRkIHRvIHRoZSBsZWdlbmRcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5wcm9kdWN0cyAtIHRoZSBwcm9kdWN0cyB0byByZXF1ZXN0XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmhhc1RpbWVzPWZhbHNlXSBJZiB0aGUgbGF5ZXIgaXMgdGltZSBkZXBlbmRlbnQsIGZpeGVkIHNldCBvZiBkYXRlc1xyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5hbmltYXRlPWZhbHNlXSBpZiB0aGUgbGF5ZXIgc2hvdWxkIGJlIGFuaW1hdGVkXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IExheWVyUmVhbEVhcnRoVGlsZU9wdGlvbnMpIHtcclxuICAgICAgICBvcHRpb25zLmFuaW1hdGUgPSB0eXBlb2Ygb3B0aW9ucy5hbmltYXRlID09ICdib29sZWFuJyA/IG9wdGlvbnMuYW5pbWF0ZSA6IGZhbHNlO1xyXG4gICAgICAgIGlmIChvcHRpb25zLmFuaW1hdGUpIHtcclxuICAgICAgICAgICAgc3VwZXIoJycsIG9wdGlvbnMpO1xyXG4gICAgICAgICAgICB0aGlzLl9wcm9kdWN0cyA9IG9wdGlvbnMucHJvZHVjdHM7XHJcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0b3IgPSBuZXcgUmVhbEVhcnRoQW5pbWF0ZVRpbGUodGhpcywgb3B0aW9ucy50aW1lTG9hZENhbGxiYWNrKTtcclxuICAgICAgICAgICAgdGhpcy5hbmltYXRvci50aW1lSW5pdCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHN1cGVyKGBodHRwOi8vcmVhbGVhcnRoLnNzZWMud2lzYy5lZHUvYXBpL2ltYWdlP3Byb2R1Y3RzPSR7b3B0aW9ucy5wcm9kdWN0c30meD17eH0meT17eX0mej17en1gLCBvcHRpb25zKTtcclxuICAgICAgICAgICAgdGhpcy5fcHJvZHVjdHMgPSBvcHRpb25zLnByb2R1Y3RzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRMYXllclRpbWUodGhlVGltZTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHRoaXMuYW5pbWF0b3IpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0b3Iuc2V0TGF5ZXJUaW1lKHRoZVRpbWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgX2xvYWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHRoaXMuYW5pbWF0b3IpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc3VwZXIuX2xvYWQoKTtcclxuICAgIH1cclxufVxyXG5cclxubm0uTGF5ZXJSZWFsRWFydGhUaWxlID0gTGF5ZXJSZWFsRWFydGhUaWxlO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllclJlYWxFYXJ0aFRpbGU7XHJcbiJdfQ== /***/ }), +/* 26 */, /* 27 */, -/* 28 */, -/* 29 */ +/* 28 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3135,11 +3134,11 @@ var LayerBaseXyzTile = (function (_super) { exports.LayerBaseXyzTile = LayerBaseXyzTile; nm.LayerBaseXyzTile = LayerBaseXyzTile; exports.default = LayerBaseXyzTile; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJCYXNlWHl6VGlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkxheWVyQmFzZVh5elRpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0dBRUc7QUFDSCx5Q0FBd0Q7QUFDeEQsMkNBQXNDO0FBQ3RDLDhCQUFpQztBQUNqQyxJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRzdCOzs7R0FHRztBQUNIO0lBQXNDLG9DQUFTO0lBRzNDOzs7Ozs7Ozs7Ozs7Ozs7OztPQWlCRztJQUNILDBCQUFZLEdBQVcsRUFBRSxPQUE4QjtRQUE5Qix3QkFBQSxFQUFBLFlBQThCO1FBQXZELFlBQ0ksa0JBQU0sR0FBRyxFQUFFLE9BQU8sQ0FBQyxTQVl0QjtRQVhHLEtBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFDLEdBQUcsRUFBRSxLQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxTQUFTLEdBQUcsS0FBSSxDQUFDLEdBQUcsRUFBQyxDQUFDLENBQUM7UUFFL0UsS0FBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQzlCLE1BQU0sRUFBRSxLQUFJLENBQUMsT0FBd0I7WUFDckMsT0FBTyxFQUFFLEtBQUksQ0FBQyxPQUFPO1lBQ3JCLE9BQU8sRUFBRSxLQUFJLENBQUMsT0FBTztZQUNyQixhQUFhLEVBQUUsS0FBSSxDQUFDLGNBQWM7WUFDbEMsYUFBYSxFQUFFLEtBQUksQ0FBQyxjQUFjO1NBQ3JDLENBQUUsQ0FBQztRQUVKLEtBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzs7SUFDMUMsQ0FBQztJQU1ELHNCQUFJLG9DQUFNO1FBSlY7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQXdCLENBQUM7UUFDekMsQ0FBQzs7O09BQUE7SUFNRCxzQkFBSSxxQ0FBTztRQUpYOzs7V0FHRzthQUNIO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUF5QixDQUFDO1FBQzFDLENBQUM7OztPQUFBO0lBQ0wsdUJBQUM7QUFBRCxDQUFDLEFBbkRELENBQXNDLHFCQUFTLEdBbUQ5QztBQW5EWSw0Q0FBZ0I7QUFxRDdCLEVBQUUsQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUN2QyxrQkFBZSxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzQvMjAxNS5cclxuICovXHJcbmltcG9ydCB7TGF5ZXJCYXNlLCBMYXllckJhc2VPcHRpb25zfSBmcm9tICcuL0xheWVyQmFzZSc7XHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ2xheWVycycpO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBYWVogdGlsZVxyXG4gKiBAYXVnbWVudHMgTGF5ZXJCYXNlXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTGF5ZXJCYXNlWHl6VGlsZSBleHRlbmRzIExheWVyQmFzZSB7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIFhZWiB0aWxlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gdXJsIGZvciBzb3VyY2VcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIC0gY29uZmlnXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuaWRdIC0gbGF5ZXIgaWRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5uYW1lPVVubmFtZWQgTGF5ZXJdIC0gbGF5ZXIgbmFtZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm9wYWNpdHk9MV0gLSBvcGFjaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnZpc2libGU9dHJ1ZV0gLSBkZWZhdWx0IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5ab29tPXVuZGVmaW5lZF0gLSBtaW4gem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIC0gbWF4IHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnBhcmFtcz17fV0gdGhlIGdldCBwYXJhbWV0ZXJzIHRvIGluY2x1ZGUgdG8gcmV0cmlldmUgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuekluZGV4PTBdIHRoZSB6IGluZGV4IGZvciB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtvcHRpb25zLmxvYWRDYWxsYmFja10gZnVuY3Rpb24gdG8gY2FsbCBvbiBsb2FkLCBjb250ZXh0IHRoaXMgaXMgdGhlIGxheWVyIG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb2xsYXBzZT1mYWxzZV0gaWYgdGhlIGxlZ2VuZCBpdGVtIHNob3VsZCBiZSBpbml0aWFsbHkgY29sbGFwc2VkXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENoZWNrYm94PXRydWVdIGlmIHRoZSBsZWdlbmQgaXRlbSBzaG91bGQgaGF2ZSBhIGNoZWNrYm94IGZvciB2aXNpYmlsaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENvbnRlbnRdIGFkZGl0aW9uYWwgY29udGVudCB0byBhZGQgdG8gdGhlIGxlZ2VuZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy51c2VFc3JpU3R5bGU9ZmFsc2VdIGlmIHRoZSBtYXAgc2VydmljZSBzdHlsZSBzaG91bGQgYmUgdXNlZFxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcih1cmw6IHN0cmluZywgb3B0aW9uczogTGF5ZXJCYXNlT3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIodXJsLCBvcHRpb25zKTtcclxuICAgICAgICB0aGlzLl9zb3VyY2UgPSBuZXcgb2wuc291cmNlLlhZWih7dXJsOiB0aGlzLnVybCA9PSAnJyA/IHVuZGVmaW5lZCA6IHRoaXMudXJsfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIgPSBuZXcgb2wubGF5ZXIuVGlsZSh7XHJcbiAgICAgICAgICAgIHNvdXJjZTogdGhpcy5fc291cmNlIGFzIG9sLnNvdXJjZS5YWVosXHJcbiAgICAgICAgICAgIHZpc2libGU6IHRoaXMudmlzaWJsZSxcclxuICAgICAgICAgICAgb3BhY2l0eTogdGhpcy5vcGFjaXR5LFxyXG4gICAgICAgICAgICBtaW5SZXNvbHV0aW9uOiB0aGlzLl9taW5SZXNvbHV0aW9uLFxyXG4gICAgICAgICAgICBtYXhSZXNvbHV0aW9uOiB0aGlzLl9tYXhSZXNvbHV0aW9uXHJcbiAgICAgICAgfSApO1xyXG5cclxuICAgICAgICB0aGlzLl9vbExheWVyLnNldFpJbmRleCh0aGlzLl96SW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtvbC5zb3VyY2UuWFlafSB0aGUgdmVjdG9yIHNvdXJjZVxyXG4gICAgICovXHJcbiAgICBnZXQgc291cmNlKCk6IG9sLnNvdXJjZS5YWVoge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zb3VyY2UgYXMgb2wuc291cmNlLlhZWjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7b2wubGF5ZXIuVGlsZXxvbC5sYXllci5CYXNlfHVuZGVmaW5lZH0gdGhlIG9sIGxheWVyXHJcbiAgICAgKi9cclxuICAgIGdldCBvbExheWVyKCkgOiBvbC5sYXllci5UaWxlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fb2xMYXllciBhcyBvbC5sYXllci5UaWxlO1xyXG4gICAgfVxyXG59XHJcblxyXG5ubS5MYXllckJhc2VYeXpUaWxlID0gTGF5ZXJCYXNlWHl6VGlsZTtcclxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJCYXNlWHl6VGlsZTtcclxuIl19 /***/ }), -/* 30 */, -/* 31 */ +/* 29 */, +/* 30 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3268,10 +3267,10 @@ var RealEarthAnimate = (function () { exports.RealEarthAnimate = RealEarthAnimate; nm.RealEarthAnimate = RealEarthAnimate; exports.default = RealEarthAnimate; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVhbEVhcnRoQW5pbWF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIlJlYWxFYXJ0aEFuaW1hdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7R0FFRztBQUNILDJDQUFzQztBQUN0QyxrREFBNkM7QUFHN0MsMEJBQTZCO0FBRTdCLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFHNUI7OztHQUdHO0FBQ0gsSUFBSSxhQUFhLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztBQVdyRDs7O0dBR0c7QUFDSDtJQVlJLDBCQUFZLEdBQTRDLEVBQUUsWUFBa0M7UUFDeEYsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDL0IsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUEsQ0FBQztZQUNkLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ3JDLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsY0FBa0IsTUFBTSxDQUFDLENBQUEsQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDTCxDQUFDO0lBR0Q7O09BRUc7SUFDSCxtQ0FBUSxHQUFSO1FBQUEsaUJBdUJDO1FBckJHLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztRQUUvQixDQUFDLENBQUMsR0FBRyxDQUFDLDZDQUE2QyxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUMsRUFBRSxVQUFDLENBQUM7WUFDL0UsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoQixPQUFPLENBQUMsR0FBRyxDQUFJLEtBQUksQ0FBQyxTQUFTLGdEQUE2QyxDQUFDLENBQUM7Z0JBRTVFLE1BQU0sQ0FBQztZQUNYLENBQUM7WUFDRCxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1QsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3pDLEtBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QyxDQUFDO1lBQ0QsS0FBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLEdBQUcsRUFBRSxLQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0MsS0FBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUdEOzs7OztPQUtHO0lBQ0gscUNBQVUsR0FBVixVQUFXLFFBQWdCO1FBQ3ZCLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdCLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLElBQUksR0FBRyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpDLElBQUksVUFBVSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXRDLElBQUksTUFBTSxHQUFNLEtBQUssU0FBSSxDQUFDLFNBQUksRUFBRSxTQUFJLEVBQUUsU0FBSSxFQUFFLFNBQUksR0FBSyxDQUFDO1FBQ3RELElBQUksTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRXZDLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxzQ0FBVyxHQUFYO1FBQ0ksa0JBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQSxDQUFDO1lBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUUsQ0FBQyxDQUFDO1lBRS9DLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNqQixDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCx1Q0FBWSxHQUFaLFVBQWEsT0FBZTtRQUV4QixJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUU1QixJQUFJLFFBQVEsQ0FBQztRQUViLEVBQUUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQztZQUM5QixNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDO1lBQzlELFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVELEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUMsQ0FBQztZQUM3QyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFBLENBQUM7Z0JBQy9CLFFBQVEsR0FBRyxDQUFDLENBQUM7Z0JBQ2IsS0FBSyxDQUFDO1lBQ1YsQ0FBQztRQUNMLENBQUM7UUFFRCxFQUFFLENBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBLENBQUM7WUFDaEMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQztZQUM5QixrQkFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBRXRCLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNMLENBQUM7SUFDTCx1QkFBQztBQUFELENBQUMsQUEvSEQsSUErSEM7QUEvSFksNENBQWdCO0FBaUk3QixFQUFFLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7QUFDdkMsa0JBQWUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMi80LzIwMTUuXHJcbiAqL1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFwUG9wdXAgZnJvbSAnLi4vb2xIZWxwZXJzL21hcFBvcHVwJztcclxuaW1wb3J0IExheWVyUmVhbEVhcnRoVGlsZSBmcm9tIFwiLi4vbGF5ZXJzL0xheWVyUmVhbEVhcnRoVGlsZVwiO1xyXG5pbXBvcnQge0xheWVyVmVjdG9yUmVhbEVhcnRofSBmcm9tICcuLi9sYXllcnMvTGF5ZXJSZWFsRWFydGhWZWN0b3InXHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcblxyXG5jb25zdCBubSA9IHByb3ZpZGUoJ21peGluJyk7XHJcblxyXG5cclxuLyoqXHJcbiAqIFRoZSBHTVQgb2Zmc2V0IHRpbWUgaW4gbWludXRlc1xyXG4gKiBAdHlwZSB7bnVtYmVyfVxyXG4gKi9cclxubGV0IG9mZnNldE1pbnV0ZXMgPSAobmV3IERhdGUoKSkuZ2V0VGltZXpvbmVPZmZzZXQoKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVJlYWxFYXJ0aEFuaW1hdGV7XHJcbiAgICBzZXRMYXllclRpbWUodGhlVGltZTogbnVtYmVyKTogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSB0aW1lc0xvYWRlZENhbGxiYWNre1xyXG4gICAgKGx5cj86IExheWVyUmVhbEVhcnRoVGlsZXxMYXllclZlY3RvclJlYWxFYXJ0aCk6IHZvaWQ7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogTWl4aW4gdG8gZ2V0IHRoZSBwcm9kdWN0IHRpbWVzXHJcbiAqIEJlIHN1cmUgdG8gY2FsbCBnZXRUaW1lSW5pdCBhZnRlciB0aGUgbWl4aW4gaGFzIGJlZW4gYXBwbGllZFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFJlYWxFYXJ0aEFuaW1hdGUge1xyXG4gICAgX2FuaW1hdGVFbmFibGVkOiBib29sZWFuO1xyXG4gICAgX2N1cnJlbnRJbmRleDogbnVtYmVyO1xyXG4gICAgX2xvY2FsRGF0ZXM6IERhdGVbXTtcclxuICAgIF9yYXdEYXRlU3RyaW5nczogc3RyaW5nW107XHJcbiAgICBfcHJvZHVjdHM6IHN0cmluZztcclxuICAgIGxvYWRDYWxsYmFjazogdGltZXNMb2FkZWRDYWxsYmFjaztcclxuICAgIGxvY2FsVGltZXM6IG51bWJlcltdO1xyXG4gICAgX2N1cnJlbnRUaW1lOiBudW1iZXI7XHJcblxyXG4gICAgbHlyOiBMYXllclJlYWxFYXJ0aFRpbGV8TGF5ZXJWZWN0b3JSZWFsRWFydGg7XHJcblxyXG4gICAgY29uc3RydWN0b3IobHlyOiBMYXllclJlYWxFYXJ0aFRpbGV8TGF5ZXJWZWN0b3JSZWFsRWFydGgsIGxvYWRDYWxsYmFjaz86IHRpbWVzTG9hZGVkQ2FsbGJhY2spe1xyXG4gICAgICAgIHRoaXMubHlyID0gbHlyO1xyXG4gICAgICAgIHRoaXMuX3Byb2R1Y3RzID0gbHlyLl9wcm9kdWN0cztcclxuICAgICAgICBpZiAobG9hZENhbGxiYWNrKXtcclxuICAgICAgICAgICAgdGhpcy5sb2FkQ2FsbGJhY2sgPSBsb2FkQ2FsbGJhY2s7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkQ2FsbGJhY2sgPSBmdW5jdGlvbigpOiB2b2lkIHtyZXR1cm47fTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbCB0aGlzIGFmdGVyIHRoZSBtaXhpbiBoYXMgYmVlbiBhcHBsaWVkXHJcbiAgICAgKi9cclxuICAgIHRpbWVJbml0KCkge1xyXG5cclxuICAgICAgICB0aGlzLl9yYXdEYXRlU3RyaW5ncyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX2xvY2FsRGF0ZXMgPSBbXTtcclxuICAgICAgICB0aGlzLmxvY2FsVGltZXMgPSBbXTtcclxuICAgICAgICB0aGlzLl9hbmltYXRlRW5hYmxlZCA9IHRydWU7XHJcbiAgICAgICAgLy8gdGhpcy5fbG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9jdXJyZW50VGltZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl9jdXJyZW50SW5kZXggPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgICQuZ2V0KCdodHRwOi8vcmVhbGVhcnRoLnNzZWMud2lzYy5lZHUvYXBpL3Byb2R1Y3RzJywge3Byb2R1Y3RzOiB0aGlzLl9wcm9kdWN0c30sIChkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChkLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgJHt0aGlzLl9wcm9kdWN0c30gbGF5ZXIgbm90IGF2YWlsYWJsZSBvciBkb2VzIG5vdCBoYXZlIHRpbWVzYCk7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGQgPSBkWzBdO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRbJ3RpbWVzJ10ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2xvYWREYXRlcy5jYWxsKHRoaXMsIGRbJ3RpbWVzJ11baV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMubG9hZENhbGxiYWNrLmNhbGwodGhpcy5seXIsIHRoaXMubHlyKTtcclxuICAgICAgICAgICAgdGhpcy5fbG9hZExhdGVzdC5jYWxsKHRoaXMpO1xyXG4gICAgICAgIH0sICdqc29uJyk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2l2ZW4gdGhlIHJhdyB0aW1lIHN0cmluZywgYWRkIHRvIHRoZSBhcnJheXMgdG8ga2VlcCB0cmFjayBvZiBkYXRlcyBhbmQgY2FjaGVcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBpblN0cmluZyAtIGlucHV0IHN0cmluZyB0byBwYXJzZVxyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gdGhlIGNvbnZlcnRlZCBzdHJpbmdcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqL1xyXG4gICAgX2xvYWREYXRlcyhpblN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgeXIgPSBpblN0cmluZy5zbGljZSgwLCA0KTtcclxuICAgICAgICBsZXQgbW9udGggPSBpblN0cmluZy5zbGljZSg0LCA2KTtcclxuICAgICAgICBsZXQgZCA9IGluU3RyaW5nLnNsaWNlKDYsIDgpO1xyXG4gICAgICAgIGxldCBociA9IGluU3RyaW5nLnNsaWNlKDksIDExKTtcclxuICAgICAgICBsZXQgbW4gPSBpblN0cmluZy5zbGljZSgxMSwgMTMpO1xyXG4gICAgICAgIGxldCBzZWMgPSBpblN0cmluZy5zbGljZSgxMywgMTUpO1xyXG5cclxuICAgICAgICBsZXQgcmF3RGF0ZVN0ciA9IGluU3RyaW5nLnJlcGxhY2UoJy4nLCAnXycpO1xyXG4gICAgICAgIHRoaXMuX3Jhd0RhdGVTdHJpbmdzLnB1c2gocmF3RGF0ZVN0cik7XHJcblxyXG4gICAgICAgIGxldCBkdGVTdHIgPSBgJHttb250aH0vJHtkfS8ke3lyfSAke2hyfToke21ufToke3NlY31gO1xyXG4gICAgICAgIGxldCBuZXdEdGUgPSBuZXcgRGF0ZShkdGVTdHIpO1xyXG4gICAgICAgIG5ld0R0ZS5zZXRNaW51dGVzKG5ld0R0ZS5nZXRNaW51dGVzKCkgLSBvZmZzZXRNaW51dGVzKTtcclxuICAgICAgICB0aGlzLl9sb2NhbERhdGVzLnB1c2gobmV3RHRlKTtcclxuICAgICAgICB0aGlzLmxvY2FsVGltZXMucHVzaChuZXdEdGUuZ2V0VGltZSgpKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJhd0RhdGVTdHI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IGlmIHNob3VsZCBjb250aW51ZVxyXG4gICAgICovXHJcbiAgICBfbG9hZExhdGVzdCgpe1xyXG4gICAgICAgIG1hcFBvcHVwLmNsb3NlUG9wdXAoKTtcclxuICAgICAgICBpZiAodGhpcy5sb2NhbFRpbWVzLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50SW5kZXggPSB0aGlzLmxvY2FsVGltZXMubGVuZ3RoIC0xO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdGhlVGltZSAtIHRoZSB0aW1lXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiBuZXcgaW5kZXgsIGZhbHNlIGlmIHRoZSBzYW1lIG9yIGJlbG93IGxvd2VzdCB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBzZXRMYXllclRpbWUodGhlVGltZTogbnVtYmVyKTogYm9vbGVhbntcclxuXHJcbiAgICAgICAgdGhpcy5fY3VycmVudFRpbWUgPSB0aGVUaW1lO1xyXG5cclxuICAgICAgICBsZXQgbmV3SW5kZXg7XHJcblxyXG4gICAgICAgIGlmICh0aGVUaW1lIDwgdGhpcy5sb2NhbFRpbWVzWzBdKXtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhlVGltZSA+IHRoaXMubG9jYWxUaW1lc1t0aGlzLmxvY2FsVGltZXMubGVuZ3RoIC0gMV0pe1xyXG4gICAgICAgICAgICBuZXdJbmRleCA9IHRoaXMubG9jYWxUaW1lcy5sZW5ndGggLSAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxvY2FsVGltZXMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBpZiAodGhpcy5sb2NhbFRpbWVzW2ldID49IHRoZVRpbWUpe1xyXG4gICAgICAgICAgICAgICAgbmV3SW5kZXggPSBpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChuZXdJbmRleCA9PSB0aGlzLl9jdXJyZW50SW5kZXgpe1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fY3VycmVudEluZGV4ID0gbmV3SW5kZXg7XHJcbiAgICAgICAgICAgIG1hcFBvcHVwLmNsb3NlUG9wdXAoKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxubm0uUmVhbEVhcnRoQW5pbWF0ZSA9IFJlYWxFYXJ0aEFuaW1hdGU7XHJcbmV4cG9ydCBkZWZhdWx0IFJlYWxFYXJ0aEFuaW1hdGU7XHJcblxyXG4iXX0= /***/ }), -/* 32 */ +/* 31 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3290,7 +3289,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); /** * Created by gavorhes on 12/4/2015. */ -var RealEarthAnimate_1 = __webpack_require__(31); +var RealEarthAnimate_1 = __webpack_require__(30); var provide_1 = __webpack_require__(0); var nm = provide_1.default('mixin'); /** @@ -3340,21 +3339,21 @@ var RealEarthAnimateTile = (function (_super) { }(RealEarthAnimate_1.default)); nm.RealEarthAnimateTile = RealEarthAnimateTile; exports.default = RealEarthAnimateTile; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVhbEVhcnRoQW5pbWF0ZVRpbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJSZWFsRWFydGhBbmltYXRlVGlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7R0FFRztBQUNILHVEQUFrRDtBQUNsRCwyQ0FBc0M7QUFHdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUU1Qjs7O0dBR0c7QUFDSDtJQUFtQyx3Q0FBZ0I7SUFLL0MsOEJBQVksS0FBeUIsRUFBRSxZQUFnRDtRQUF2RixZQUNJLGtCQUFNLEtBQUssRUFBRSxZQUFZLENBQUMsU0FHN0I7UUFGRyxLQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDNUIsS0FBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDOztJQUNsQyxDQUFDO0lBSUQsdUNBQVEsR0FBUjtRQUNJLGlCQUFNLFFBQVEsV0FBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCx5Q0FBVSxHQUFWLFVBQVcsUUFBZ0I7UUFDdkIsSUFBSSxNQUFNLEdBQUcsaUJBQU0sVUFBVSxZQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLElBQUksYUFBYSxHQUNiLHVEQUFxRCxJQUFJLENBQUMsU0FBUyxTQUFJLE1BQU0sdUJBQW9CLENBQUM7UUFDdEcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDckMsTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILDBDQUFXLEdBQVg7UUFDSSxFQUFFLENBQUMsQ0FBQyxpQkFBTSxXQUFXLFdBQUUsQ0FBQyxDQUFBLENBQUM7WUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCwyQ0FBWSxHQUFaLFVBQWEsT0FBZTtRQUN4QixFQUFFLENBQUMsQ0FBQyxpQkFBTSxZQUFZLFlBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUEsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0wsMkJBQUM7QUFBRCxDQUFDLEFBL0NELENBQW1DLDBCQUFnQixHQStDbEQ7QUFFRCxFQUFFLENBQUMsb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7QUFDL0Msa0JBQWUsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMi80LzIwMTUuXHJcbiAqL1xyXG5pbXBvcnQgUmVhbEVhcnRoQW5pbWF0ZSBmcm9tICcuL1JlYWxFYXJ0aEFuaW1hdGUnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgb2wgPSByZXF1aXJlKCdjdXN0b20tb2wnKTtcclxuaW1wb3J0IExheWVyUmVhbEVhcnRoVGlsZSBmcm9tIFwiLi4vbGF5ZXJzL0xheWVyUmVhbEVhcnRoVGlsZVwiO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ21peGluJyk7XHJcblxyXG4vKipcclxuICogQW5pbWF0ZSByZWFsIGVhcnRoIHRpbGVcclxuICogQGF1Z21lbnRzIFJlYWxFYXJ0aEFuaW1hdGVcclxuICovXHJcbmNsYXNzIFJlYWxFYXJ0aEFuaW1hdGVUaWxlIGV4dGVuZHMgUmVhbEVhcnRoQW5pbWF0ZSB7XHJcbiAgICBfc291cmNlVXJsczogc3RyaW5nW107XHJcbiAgICBfc291cmNlOiBvbC5zb3VyY2UuWFlaO1xyXG4gICAgX29sTGF5ZXI6IG9sLmxheWVyLlRpbGU7XHJcblxyXG4gICAgY29uc3RydWN0b3IobGF5ZXI6IExheWVyUmVhbEVhcnRoVGlsZSwgbG9hZENhbGxiYWNrPzogKGx5cjogTGF5ZXJSZWFsRWFydGhUaWxlKSA9PiB2b2lkKXtcclxuICAgICAgICBzdXBlcihsYXllciwgbG9hZENhbGxiYWNrKTtcclxuICAgICAgICB0aGlzLl9zb3VyY2UgPSBsYXllci5zb3VyY2U7XHJcbiAgICAgICAgdGhpcy5fb2xMYXllciA9IGxheWVyLm9sTGF5ZXI7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICB0aW1lSW5pdCgpIHtcclxuICAgICAgICBzdXBlci50aW1lSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuX3NvdXJjZVVybHMgPSBbXTtcclxuICAgIH1cclxuXHJcbiAgICBfbG9hZERhdGVzKGluU3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCByYXdEdGUgPSBzdXBlci5fbG9hZERhdGVzKGluU3RyaW5nKTtcclxuICAgICAgICBsZXQgZHRlUHJvZHVjdFVybCA9XHJcbiAgICAgICAgICAgIGBodHRwOi8vcmVhbGVhcnRoLnNzZWMud2lzYy5lZHUvYXBpL2ltYWdlP3Byb2R1Y3RzPSR7dGhpcy5fcHJvZHVjdHN9XyR7cmF3RHRlfSZ4PXt4fSZ5PXt5fSZ6PXt6fWA7XHJcbiAgICAgICAgdGhpcy5fc291cmNlVXJscy5wdXNoKGR0ZVByb2R1Y3RVcmwpO1xyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqL1xyXG4gICAgX2xvYWRMYXRlc3QoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHN1cGVyLl9sb2FkTGF0ZXN0KCkpe1xyXG4gICAgICAgICAgICB0aGlzLl9zb3VyY2Uuc2V0VXJsKHRoaXMuX3NvdXJjZVVybHNbdGhpcy5fc291cmNlVXJscy5sZW5ndGggLSAxXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldExheWVyVGltZSh0aGVUaW1lOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoc3VwZXIuc2V0TGF5ZXJUaW1lKHRoZVRpbWUpKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9vbExheWVyLmdldFpJbmRleCgpIDwgMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9vbExheWVyLnNldFpJbmRleCgwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLl9zb3VyY2Uuc2V0VXJsKHRoaXMuX3NvdXJjZVVybHNbdGhpcy5fY3VycmVudEluZGV4XSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fb2xMYXllci5zZXRaSW5kZXgoLTEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxufVxyXG5cclxubm0uUmVhbEVhcnRoQW5pbWF0ZVRpbGUgPSBSZWFsRWFydGhBbmltYXRlVGlsZTtcclxuZXhwb3J0IGRlZmF1bHQgUmVhbEVhcnRoQW5pbWF0ZVRpbGU7XHJcbiJdfQ== /***/ }), -/* 33 */, -/* 34 */ +/* 32 */, +/* 33 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var quickMap_1 = __webpack_require__(7); -var LayerRealEarthTile_1 = __webpack_require__(26); +var LayerRealEarthTile_1 = __webpack_require__(25); var media_control_1 = __webpack_require__(17); var $ = __webpack_require__(1); -var LayerBaseVectorEsri_1 = __webpack_require__(25); +var LayerBaseVectorEsri_1 = __webpack_require__(24); var LayerEsriMapServer_1 = __webpack_require__(10); var nexrhresStatic = new LayerRealEarthTile_1.default({ products: 'nexrhres', @@ -3412,7 +3411,7 @@ for (var i = 0; i < oakRidgeLayers.length; i++) { }); map.addLayer(oakRidgeLayer.olLayer); } - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFuaW1hdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5REFBc0Q7QUFDdEQsMEVBQXFFO0FBQ3JFLGlFQUE2RTtBQUM3RSwwQkFBNkI7QUFDN0IsNEVBQXlFO0FBQ3pFLDBFQUF1RTtBQUV2RSxJQUFJLGNBQWMsR0FBRyxJQUFJLDRCQUFrQixDQUFDO0lBQ3BDLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLEVBQUUsRUFBRSxpQkFBaUI7SUFDckIsT0FBTyxFQUFFLEdBQUc7SUFDWixPQUFPLEVBQUUsSUFBSTtJQUNiLElBQUksRUFBRSxxQkFBcUI7SUFDM0IsZUFBZTtJQUNmLGdCQUFnQixFQUFFLFVBQVUsQ0FBQztRQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25CLENBQUM7Q0FDSixDQUNKLENBQUM7QUFHRixJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0FBQ25CLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUMxQixDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM3QixJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDNUIsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUV0RCxJQUFJLEtBQUssR0FBRyxJQUFJLDRCQUFZLENBQ3hCLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFDYixVQUFDLENBQVM7SUFDTixjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25DLENBQUMsRUFDRDtJQUNJLEdBQUcsRUFBRSxTQUFTO0lBQ2QsR0FBRyxFQUFFLE9BQU87SUFDWixHQUFHLEVBQUUsT0FBTztJQUNaLElBQUksRUFBRSxTQUFTO0lBQ2YsWUFBWSxFQUFFLEdBQUc7SUFDakIsVUFBVSxFQUFFLElBQUk7Q0FDbkIsQ0FDSixDQUFDO0FBR0YsSUFBSSxHQUFHLEdBQUcsbUJBQVEsRUFBRSxDQUFDO0FBQ3JCLEdBQUcsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBR3JDLElBQUksaUJBQWlCLEdBQUcsSUFBSSx5Q0FBbUIsQ0FDM0MsMEdBQTBHLEVBQzFHO0lBQ0ksT0FBTyxFQUFFLElBQUk7SUFDYixRQUFRLEVBQUUsSUFBSTtJQUNkLElBQUksRUFBRSxjQUFjO0lBQ3BCLFlBQVksRUFBRSxJQUFJO0NBQ3JCLENBQ0osQ0FBQztBQUVGLEdBQUcsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFcEMsSUFBSSxjQUFjLEdBQUc7SUFDakIsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDO0lBQ3hCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztJQUNoQixDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQztJQUN6QixvQ0FBb0M7SUFDcEMsQ0FBQyxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQztJQUN2QyxDQUFDLG1CQUFtQixFQUFFLHVCQUF1QixDQUFDO0lBQzlDLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQztDQUMzQixDQUFDO0FBR0YsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDN0MsSUFBSSxhQUFhLEdBQUcsSUFBSSx1Q0FBa0IsQ0FDdEMsNERBQTBELGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBWSxFQUMxRjtRQUNJLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLE9BQU8sRUFBRSxJQUFJO1FBQ2IsT0FBTyxFQUFFLENBQUM7UUFDVixNQUFNLEVBQUUsRUFBRTtRQUNWLFFBQVEsRUFBRSxJQUFJO1FBQ2QsY0FBYyxFQUFFLElBQUk7S0FDdkIsQ0FDSixDQUFDO0lBQ0YsR0FBRyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7cXVpY2tNYXB9IGZyb20gJy4uLy4uL3NyYy9vbEhlbHBlcnMvcXVpY2tNYXAnO1xyXG5pbXBvcnQgTGF5ZXJSZWFsRWFydGhUaWxlIGZyb20gXCIuLi8uLi9zcmMvbGF5ZXJzL0xheWVyUmVhbEVhcnRoVGlsZVwiO1xyXG5pbXBvcnQge01lZGlhQ29udHJvbCwgY2hhbmdlRnVuY3Rpb259IGZyb20gXCIuLi8uLi9zcmMvZG9tVXRpbC9tZWRpYS1jb250cm9sXCI7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcbmltcG9ydCB7TGF5ZXJCYXNlVmVjdG9yRXNyaX0gZnJvbSBcIi4uLy4uL3NyYy9sYXllcnMvTGF5ZXJCYXNlVmVjdG9yRXNyaVwiO1xyXG5pbXBvcnQge0xheWVyRXNyaU1hcFNlcnZlcn0gZnJvbSBcIi4uLy4uL3NyYy9sYXllcnMvTGF5ZXJFc3JpTWFwU2VydmVyXCI7XHJcblxyXG5sZXQgbmV4cmhyZXNTdGF0aWMgPSBuZXcgTGF5ZXJSZWFsRWFydGhUaWxlKHtcclxuICAgICAgICBwcm9kdWN0czogJ25leHJocmVzJyxcclxuICAgICAgICBpZDogJ25leHJocmVzLXN0YXRpYycsXHJcbiAgICAgICAgb3BhY2l0eTogMC42LFxyXG4gICAgICAgIGFuaW1hdGU6IHRydWUsXHJcbiAgICAgICAgbmFtZTogJ0h5YnJpZCBSZWZsZWN0aXZpdHknLFxyXG4gICAgICAgIC8vIG1heFpvb206IDEwLFxyXG4gICAgICAgIHRpbWVMb2FkQ2FsbGJhY2s6IGZ1bmN0aW9uIChmKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuKTtcclxuXHJcblxyXG5sZXQgZCA9IG5ldyBEYXRlKCk7XHJcbmxldCBlbmRUaW1lID0gZC5nZXRUaW1lKCk7XHJcbmQuc2V0SG91cnMoZC5nZXRIb3VycygpIC0gNCk7XHJcbmxldCBzdGFydFRpbWUgPSBkLmdldFRpbWUoKTtcclxubGV0IHJhbmdlU3RlcCA9IE1hdGgucm91bmQoKGVuZFRpbWUgLSBzdGFydFRpbWUpIC8gOCk7XHJcblxyXG5sZXQgbWVkaWEgPSBuZXcgTWVkaWFDb250cm9sKFxyXG4gICAgJCgnI2NvbnRyb2wnKSxcclxuICAgICh2OiBudW1iZXIpID0+IHtcclxuICAgICAgICBuZXhyaHJlc1N0YXRpYy5zZXRMYXllclRpbWUodik7XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1pbjogc3RhcnRUaW1lLFxyXG4gICAgICAgIG1heDogZW5kVGltZSxcclxuICAgICAgICB2YWw6IGVuZFRpbWUsXHJcbiAgICAgICAgc3RlcDogcmFuZ2VTdGVwLFxyXG4gICAgICAgIHBsYXlJbnRlcnZhbDogNzUwLFxyXG4gICAgICAgIHNob3dBc0RhdGU6IHRydWVcclxuICAgIH1cclxuKTtcclxuXHJcblxyXG5sZXQgbWFwID0gcXVpY2tNYXAoKTtcclxubWFwLmFkZExheWVyKG5leHJocmVzU3RhdGljLm9sTGF5ZXIpO1xyXG5cclxuXHJcbmxldCBjb29yZGluYXRpb25MYXllciA9IG5ldyBMYXllckJhc2VWZWN0b3JFc3JpKFxyXG4gICAgJ2h0dHA6Ly90cmFuc3BvcnRhbC5jZWUud2lzYy5lZHUvYXBwbGljYXRpb25zL2FyY2dpczIvcmVzdC9zZXJ2aWNlcy9HTFJUT0MvR2xydG9jQ29vcmRpbmF0aW9uL01hcFNlcnZlci8wJyxcclxuICAgIHtcclxuICAgICAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgICAgIGF1dG9Mb2FkOiB0cnVlLFxyXG4gICAgICAgIG5hbWU6ICdDb29yZGluYXRpb24nLFxyXG4gICAgICAgIHVzZUVzcmlTdHlsZTogdHJ1ZVxyXG4gICAgfVxyXG4pO1xyXG5cclxubWFwLmFkZExheWVyKGNvb3JkaW5hdGlvbkxheWVyLm9sTGF5ZXIpO1xyXG5cclxuICAgIGxldCBvYWtSaWRnZUxheWVycyA9IFtcclxuICAgICAgICBbJ0NhbWVyYXMnLCAnY2FtZXJhczMzJ10sXHJcbiAgICAgICAgWydIQVInLCAnSEFSMzMnXSxcclxuICAgICAgICBbJ0RNUycsICdNZXNzYWdlU2lnbnMzMyddLFxyXG4gICAgICAgIC8vWydTdGF0ZSBTdW1tYXJ5JywgJ3N0YXRlc3VtbWFyeSddLFxyXG4gICAgICAgIFsnVHJhZmZpYyBDb250cm9sJywgJ1RyYWZmaWNDb250cm9sMzMnXSxcclxuICAgICAgICBbJ1RyYWZmaWMgRGV0ZWN0aW9uJywgJ1RyYWZmaWNEZXRlY3Rpb25NdWx0aSddLFxyXG4gICAgICAgIFsnV2VhdGhlcicsICdXZWF0aGVyMzMnXVxyXG4gICAgXTtcclxuXHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYWtSaWRnZUxheWVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCBvYWtSaWRnZUxheWVyID0gbmV3IExheWVyRXNyaU1hcFNlcnZlcihcclxuICAgICAgICAgICAgYGh0dHA6Ly9pdHNkcHJvLm9ybmwuZ292L2FyY2dpcy9yZXN0L3NlcnZpY2VzL0lUU1B1YmxpYy8ke29ha1JpZGdlTGF5ZXJzW2ldWzFdfS9NYXBTZXJ2ZXJgLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZDogb2FrUmlkZ2VMYXllcnNbaV1bMV0sXHJcbiAgICAgICAgICAgICAgICBuYW1lOiBvYWtSaWRnZUxheWVyc1tpXVswXSxcclxuICAgICAgICAgICAgICAgIHZpc2libGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBtaW5ab29tOiA3LFxyXG4gICAgICAgICAgICAgICAgekluZGV4OiAyMCxcclxuICAgICAgICAgICAgICAgIGFkZFBvcHVwOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgbGVnZW5kQ29sbGFwc2U6IHRydWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgbWFwLmFkZExheWVyKG9ha1JpZGdlTGF5ZXIub2xMYXllcik7XHJcbiAgICB9XHJcblxyXG4iXX0= /***/ }) /******/ ]); diff --git a/test/serve/js/animate.js.map b/test/serve/js/animate.js.map index 48c2a23..fa92bd1 100644 --- a/test/serve/js/animate.js.map +++ b/test/serve/js/animate.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap b4e25e5e5539f3f3f6dd","webpack:///./src/util/provide.ts","webpack:///external \"$\"","webpack:///external \"ol\"","webpack:///./src/util/makeGuid.ts","webpack:///./src/olHelpers/mapPopup.ts","webpack:///./src/olHelpers/mapInteractionBase.ts","webpack:///./src/olHelpers/mapMove.ts","webpack:///./src/olHelpers/quickMap.ts","webpack:///./src/layers/LayerBase.ts","webpack:///./src/util/checkDefined.ts","webpack:///./src/layers/LayerEsriMapServer.ts","webpack:///./src/olHelpers/mapMoveCls.ts","webpack:///./src/olHelpers/mapPopupCls.ts","webpack:///./src/olHelpers/quickMapBase.ts","webpack:///./src/olHelpers/zoomResolutionConvert.ts","webpack:///./src/olHelpers/esriToOlStyle.ts","webpack:///./src/domUtil/media-control.ts","webpack:///./src/domUtil/range-change.ts","webpack:///./src/layers/LayerBaseVector.ts","webpack:///./src/layers/LayerBaseVectorEsri.ts","webpack:///./src/layers/LayerRealEarthTile.ts","webpack:///./src/layers/LayerBaseXyzTile.ts","webpack:///./src/mixin/RealEarthAnimate.ts","webpack:///./src/mixin/RealEarthAnimateTile.ts","webpack:///./test/demo/animate.ts"],"names":[],"mappings":"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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\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 34);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap b4e25e5e5539f3f3f6dd","/**\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","module.exports = $;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"$\"\n// module id = 1\n// module chunks = 0 1 2 3 4 5 6","module.exports = ol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ol\"\n// module id = 2\n// module chunks = 0 1 2 3","/**\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","/**\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\nexport const mapPopup = new MapPopupCls() as MapPopupCls;\r\nexport default mapPopup;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/olHelpers/mapPopup.ts","/**\r\n * Created by gavorhes on 12/8/2015.\r\n */\r\nimport provide from '../util/provide';\r\nimport ol = require('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","/**\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","/**\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 = require('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 {ol.Map} 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 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","import * as zoomResolutionConvert from '../olHelpers/zoomResolutionConvert';\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport makeGuid from '../util/makeGuid';\r\nimport $ = require('jquery');\r\n\r\nconst nm = provide('layers');\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 protected _legendCheckbox: boolean;\r\n protected _url: string;\r\n protected _opacity: number;\r\n protected _minZoom: number;\r\n protected _maxZoom: number;\r\n protected _visible: boolean;\r\n protected _loaded: boolean;\r\n protected _zIndex: number;\r\n protected _legendContent: string;\r\n protected _params: any;\r\n protected _id: string;\r\n protected _name: string;\r\n protected _source: ol.source.Source;\r\n protected _animate: boolean;\r\n protected _legendCollapse: boolean;\r\n protected _maxResolution: number;\r\n protected _minResolution: number;\r\n protected _$legendDiv: JQuery;\r\n loadCallback: Function;\r\n protected _olLayer: ol.layer.Layer;\r\n protected _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 additionalContent - additional content to add to legend\r\n * @private\r\n */\r\n _addLegendContent(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 get id(): string{\r\n return this._id;\r\n }\r\n\r\n set id(newId: string){\r\n this._id = newId;\r\n }\r\n\r\n get animate(): boolean{\r\n return this._animate;\r\n }\r\n\r\n set animate(animate: boolean){\r\n this._animate = animate;\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","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","/**\r\n * Created by gavorhes on 12/7/2015.\r\n */\r\nimport {LayerBase, LayerBaseOptions} from './LayerBase';\r\nimport * as esriToOl from '../olHelpers/esriToOlStyle';\r\nimport mapPopup from '../olHelpers/mapPopup';\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport $ = require('jquery');\r\n\r\nconst nm = provide('layers');\r\n\r\n\r\nexport interface LayerEsriMapServerOptions extends LayerBaseOptions {\r\n addPopup?: boolean;\r\n showLayers?: Array<number>;\r\n}\r\n\r\n/**\r\n * esri mapserver layer\r\n * @augments LayerBase\r\n */\r\nexport class LayerEsriMapServer extends LayerBase {\r\n _esriFormat: ol.format.EsriJSON;\r\n _popupRequest: JQueryXHR;\r\n\r\n /**\r\n * The base layer for all others\r\n * @param {string} url - resource url\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.addPopup=false] if a popup should be added\r\n * @param {undefined|Array<number>} [options.showLayers=undefined] if a popup should be added\r\n */\r\n constructor(url, options: LayerEsriMapServerOptions = {}) {\r\n\r\n super(url, options);\r\n this._source = new ol.source.TileArcGISRest(\r\n {\r\n url: this.url == '' ? undefined : this.url,\r\n params: typeof options.showLayers == 'undefined' ? undefined : {layers: 'show:' + options.showLayers.join(',')}\r\n }\r\n );\r\n\r\n this._olLayer = new ol.layer.Tile({\r\n source: this._source as ol.source.Tile,\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 options.addPopup = typeof options.addPopup == 'boolean' ? options.addPopup : false;\r\n\r\n this._esriFormat = new ol.format.EsriJSON();\r\n this._popupRequest = null;\r\n\r\n this.addLegendContent();\r\n\r\n if (options.addPopup) {\r\n mapPopup.addMapServicePopup(this);\r\n }\r\n }\r\n\r\n /**\r\n * add additional content to the legend\r\n * @param {string} [additionalContent=''] additional content for legend\r\n */\r\n addLegendContent(additionalContent?: string) {\r\n let urlCopy = this.url;\r\n\r\n if (urlCopy[urlCopy.length - 1] !== '/') {\r\n urlCopy += '/';\r\n }\r\n\r\n urlCopy += 'legend?f=pjson&callback=?';\r\n\r\n $.get(urlCopy, {}, (d) => {\r\n let newHtml = esriToOl.makeMapServiceLegend(d);\r\n super.addLegendContent(newHtml);\r\n }, 'json');\r\n }\r\n\r\n\r\n getPopupInfo(queryParams) {\r\n if (!this.visible) {\r\n return;\r\n }\r\n\r\n let urlCopy = this.url;\r\n\r\n if (urlCopy[urlCopy.length - 1] != '/') {\r\n urlCopy += '/';\r\n }\r\n\r\n urlCopy += 'identify?callback=?';\r\n\r\n let __this = this;\r\n\r\n if (this._popupRequest != null) {\r\n this._popupRequest.abort();\r\n }\r\n\r\n\r\n this._popupRequest = $.get(urlCopy, queryParams, function (d) {\r\n for (let r of d['results']) {\r\n\r\n let popupHtml = '<table class=\"esri-popup-table\">';\r\n\r\n for (let a in r['attributes']) {\r\n if (r['attributes'].hasOwnProperty(a)) {\r\n let attrVal = r['attributes'][a];\r\n\r\n if (attrVal == null || attrVal.toString().toLowerCase() == 'null') {\r\n continue;\r\n }\r\n\r\n let attr = a;\r\n if (attr.length > 14) {\r\n attr = attr.slice(0, 11) + '...';\r\n }\r\n\r\n popupHtml += `<tr><td>${attr}</td><td>${attrVal}</td></tr>`;\r\n }\r\n }\r\n\r\n popupHtml += '</table>';\r\n\r\n mapPopup.addMapServicePopupContent(__this._esriFormat.readFeature(r), __this, popupHtml, r['layerName']);\r\n }\r\n }, 'json');\r\n\r\n this._popupRequest.always(function () {\r\n __this._popupRequest = null;\r\n });\r\n\r\n }\r\n\r\n /**\r\n *\r\n * @returns {ol.source.TileArcGISRest} the vector source\r\n */\r\n get source(): ol.source.TileArcGISRest {\r\n return super.getSource() as ol.source.TileArcGISRest;\r\n }\r\n\r\n /**\r\n *\r\n * @returns the ol layer\r\n */\r\n get olLayer(): ol.layer.Tile {\r\n return super.getOlLayer() as ol.layer.Tile;\r\n }\r\n}\r\nnm.LayerEsriMapServer = LayerEsriMapServer;\r\nexport default LayerEsriMapServer;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/layers/LayerEsriMapServer.ts","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 = require('custom-ol');\r\nimport $ = 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<number>;\r\n _mapMoveCallbackTimeout: Array<number>;\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","/**\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 = require('custom-ol');\r\nimport {LayerBaseVector} from \"../layers/LayerBaseVector\";\r\nimport LayerEsriMapServer from \"../layers/LayerEsriMapServer\";\r\nimport $ = 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 private _popupOpen: boolean;\r\n private _passThroughLayerFeatureArray: Array<FeatureLayerProperties>;\r\n private _currentPopupIndex: number;\r\n private _popupContentLength: number;\r\n private _esriMapServiceLayers: Array<LayerEsriMapServer>;\r\n private _$popupCloser: JQuery;\r\n private _$popupContent: JQuery;\r\n private _$popupContainer: JQuery;\r\n private _popupOverlay: ol.Overlay;\r\n private _arrPopupLayers: Array<LayerBaseVector>;\r\n private _popupCoordinate: ol.Coordinate;\r\n private _popupChangedFunctions: Array<popupChangedFunction>;\r\n private _mapClickFunctions: Array<Function>;\r\n private _selectionLayerLookup: Object;\r\n private _arrPopupLayerIds: Array<string>;\r\n private _arrPopupLayerNames: Array<string>;\r\n private _arrPopupOlLayers: Array<ol.layer.Vector>;\r\n private _arrPopupContentFunction: Array<popupCallback>;\r\n private _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: LayerBaseVector, selectionStyle: {color?: string, width?: number, olStyle?: ol.style.Style}): 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?: {color?: string, width?: number, olStyle?: ol.style.Style}) {\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","/**\r\n * Created by gavorhes on 12/15/2015.\r\n */\r\n\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport $ = require('jquery');\r\nconst nm = provide('olHelpers');\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 const controls = ol.control.defaults({\r\n attributionOptions: {collapsible: false}\r\n }\r\n );\r\n\r\n const 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 let map = new ol.Map({\r\n layers: [osmLayer],\r\n target: options.divId,\r\n controls: controls,\r\n view: view\r\n });\r\n\r\n if (options.fullScreen) {\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","/**\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","/**\r\n * Created by gavorhes on 1/4/2016.\r\n */\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nconst nm = provide('olHelpers.esriToOlStyle');\r\n\r\n/**\r\n * This callback is displayed as part of the Requester class.\r\n * @callback styleFunc\r\n * @param {ol.Feature} feat - openlayers feature\r\n * @param {number} resolution - map resolution\r\n */\r\n\r\n/**\r\n *\r\n * @param {Array<number>} colorArray - input color array\r\n * @param {number} opacity - the opacity 0 to 1\r\n * @returns {string} rgba string\r\n * @private\r\n */\r\nfunction _colorArrayToRgba(colorArray, opacity) {\r\n \"use strict\";\r\n\r\n return `rgba(${colorArray[0]},${colorArray[1]},${colorArray[2]},${opacity})`;\r\n}\r\n\r\n/**\r\n * escape html charcters\r\n * @param {string} str - input string\r\n * @returns {string} escaped string\r\n */\r\nfunction htmlEscape(str) {\r\n return String(str)\r\n .replace(/&/g, '&')\r\n .replace(/\"/g, '"')\r\n .replace(/'/g, ''')\r\n .replace(/</g, '<')\r\n .replace(/>/g, '>');\r\n}\r\n\r\nnm.htmlEscape = htmlEscape;\r\n\r\n\r\nexport interface EsriResponse{\r\n drawingInfo: {\r\n renderer: EsriRenderer\r\n },\r\n geometryType: string\r\n}\r\n\r\nexport interface EsriRenderer{\r\n type: string;\r\n symbol: EsriSymbol;\r\n uniqueValueInfos: Array<{label: string, value: any, symbol: EsriSymbol}>;\r\n}\r\n\r\nexport interface EsriSymbol{\r\n size: number;\r\n type: string;\r\n outline:{\r\n color: string;\r\n width: number;\r\n },\r\n color: string;\r\n width: number;\r\n}\r\n\r\n\r\nclass CommonSymbol {\r\n legendHtml: string;\r\n opacity: number;\r\n symbolObj: EsriSymbol;\r\n olStyle: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction;\r\n\r\n /**\r\n *\r\n * @param symbolObj\r\n * @param {number} opacity\r\n */\r\n constructor(symbolObj: EsriSymbol, opacity: number) {\r\n this.symbolObj = symbolObj;\r\n this.opacity = opacity;\r\n this.olStyle = undefined;\r\n this.legendHtml = '';\r\n }\r\n}\r\n\r\ninterface ICommonSymbol{\r\n new (symbolObj: EsriSymbol, opacity: number): CommonSymbol\r\n}\r\n\r\n\r\nclass PointSymbol extends CommonSymbol {\r\n constructor(symbolObj: EsriSymbol, opacity: number) {\r\n super(symbolObj, opacity);\r\n switch (this.symbolObj.type) {\r\n case 'esriSMS':\r\n let innerColor = _colorArrayToRgba(this.symbolObj.color, this.opacity);\r\n let outerColor = _colorArrayToRgba(this.symbolObj.outline.color, this.opacity);\r\n let outlineWidth = this.symbolObj.outline.width;\r\n let radius = this.symbolObj.size;\r\n\r\n\r\n this.olStyle = new ol.style.Style({\r\n image: new ol.style.Circle({\r\n radius: radius,\r\n fill: new ol.style.Fill({\r\n color: innerColor\r\n }),\r\n stroke: new ol.style.Stroke({color: outerColor, width: outlineWidth})\r\n })\r\n });\r\n this.legendHtml = `<span class=\"legend-layer-icon\" style=\"color: ${innerColor}\">●</span>`;\r\n break;\r\n case 'esriPMS':\r\n this.olStyle = new ol.style.Style({\r\n image: new ol.style.Icon({src: `data:image/png;base64,${this.symbolObj['imageData']}`})\r\n });\r\n this.legendHtml = `<img class=\"legend-layer-icon\" height=\"17\" src=\"data:image/png;base64,${this.symbolObj['imageData']}\">`;\r\n break;\r\n default:\r\n console.log(this.symbolObj);\r\n alert('Point symbol does not handle symbol type: ' + this.symbolObj['type']);\r\n }\r\n }\r\n}\r\n\r\nclass LineSymbol extends CommonSymbol {\r\n constructor(symbolObj: EsriSymbol, opacity: number) {\r\n super(symbolObj, opacity);\r\n switch (this.symbolObj.type) {\r\n case 'esriSLS':\r\n let innerColor = _colorArrayToRgba(this.symbolObj.color, this.opacity);\r\n let lineWidth = this.symbolObj.width;\r\n\r\n this.olStyle = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: innerColor,\r\n //lineDash: [4],\r\n width: lineWidth\r\n })\r\n });\r\n\r\n this.legendHtml = `<span class=\"legend-layer-icon\" `;\r\n this.legendHtml += `style=\"`;\r\n this.legendHtml += `background-color: ${innerColor};`;\r\n this.legendHtml += `width: 40px;`;\r\n this.legendHtml += `height: 4px;`;\r\n this.legendHtml += `position: relative;`;\r\n this.legendHtml += `display: inline-block;`;\r\n this.legendHtml += `top: -1px;`;\r\n this.legendHtml += `\"></span>`;\r\n break;\r\n default:\r\n console.log(this.symbolObj);\r\n alert('Line symbol does not handle symbol type: ' + this.symbolObj['type']);\r\n }\r\n }\r\n}\r\n\r\nclass PolygonSymbol extends CommonSymbol {\r\n constructor(symbolObj: EsriSymbol, opacity: number) {\r\n super(symbolObj, opacity);\r\n switch (this.symbolObj['type']) {\r\n case 'esriSFS':\r\n let innerColor = _colorArrayToRgba(this.symbolObj.color, this.opacity);\r\n let outerColor = _colorArrayToRgba(this.symbolObj.outline.color, this.opacity);\r\n let outlineWidth = this.symbolObj.outline.width;\r\n\r\n this.olStyle = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: outerColor,\r\n //lineDash: [4],\r\n width: outlineWidth\r\n }),\r\n fill: new ol.style.Fill({\r\n color: innerColor\r\n })\r\n });\r\n\r\n this.legendHtml = `<span class=\"legend-layer-icon\" `;\r\n this.legendHtml += `style=\"`;\r\n this.legendHtml += `background-color: ${innerColor};`;\r\n this.legendHtml += `border: solid ${outerColor} 1px;`;\r\n this.legendHtml += `width: 40px;`;\r\n this.legendHtml += `height: 9px;`;\r\n this.legendHtml += `position: relative;`;\r\n this.legendHtml += `display: inline-block;`;\r\n this.legendHtml += `top: 2px;`;\r\n this.legendHtml += `\"></span>`;\r\n break;\r\n\r\n default:\r\n console.log(this.symbolObj);\r\n alert('Polygon symbol does handle symbol type: ' + this.symbolObj['type']);\r\n }\r\n }\r\n}\r\n\r\nclass SymbolGenerator {\r\n opacity: number;\r\n renderer: EsriRenderer;\r\n legendHtml: string;\r\n olStyle: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction;\r\n\r\n constructor(esriResponse: EsriResponse) {\r\n this.opacity = (100 - (esriResponse['drawingInfo']['transparency'] || 0)) / 100;\r\n this.renderer = esriResponse.drawingInfo.renderer;\r\n this.olStyle = undefined;\r\n this.legendHtml = '';\r\n }\r\n}\r\n\r\nclass SingleSymbol extends SymbolGenerator {\r\n symbol: EsriSymbol;\r\n /**\r\n *\r\n * @param {object} esriResponse - layer info\r\n * @param SymbolClass - the symbol class to use\r\n */\r\n constructor(esriResponse, SymbolClass: ICommonSymbol) {\r\n super(esriResponse);\r\n this.symbol = this.renderer.symbol;\r\n let symbolObj = new SymbolClass(this.symbol, this.opacity);\r\n this.olStyle = symbolObj.olStyle;\r\n this.legendHtml = symbolObj.legendHtml;\r\n }\r\n}\r\n\r\nclass UniqueValueSymbol extends SymbolGenerator {\r\n\r\n propertyName: string;\r\n defaultSymbol: EsriSymbol;\r\n defaultStyle: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction;\r\n defaultLabelHtml: string;\r\n labelArray: Array<string>;\r\n legendArray: Array<string>;\r\n propertyStyleLookup: Object;\r\n valueArray: Array<any>;\r\n uniqueValueInfos: Array<{label: string, value: any, symbol: EsriSymbol}>;\r\n\r\n /**\r\n *\r\n * @param {object} esriResponse - layer info\r\n * @param SymbolClass - the Symbol class definition\r\n */\r\n constructor(esriResponse: EsriResponse, SymbolClass: ICommonSymbol) {\r\n super(esriResponse);\r\n this.uniqueValueInfos = this.renderer['uniqueValueInfos'];\r\n this.propertyName = this.renderer['field1'];\r\n this.defaultSymbol = this.renderer['defaultSymbol'];\r\n\r\n\r\n if (this.defaultSymbol) {\r\n let symbolObj = new SymbolClass(this.defaultSymbol, this.opacity);\r\n this.defaultStyle = symbolObj.olStyle;\r\n this.defaultLabelHtml = `<span class=\"legend-layer-subitem\">${htmlEscape(this.renderer['defaultLabel'])}</span>` + symbolObj.legendHtml;\r\n } else {\r\n this.defaultStyle = undefined;\r\n this.defaultLabelHtml = 'other';\r\n }\r\n\r\n this.valueArray = [];\r\n this.labelArray = [];\r\n this.legendArray = [];\r\n this.propertyStyleLookup = {};\r\n\r\n for (let uniqueVal of this.uniqueValueInfos) {\r\n this.labelArray.push(uniqueVal['label']);\r\n this.valueArray.push(uniqueVal['value']);\r\n let uniqueSym = new SymbolClass(uniqueVal.symbol, this.opacity);\r\n this.legendArray.push(`<span class=\"legend-layer-subitem\">${htmlEscape(uniqueVal['label'])}</span>` + uniqueSym.legendHtml);\r\n this.propertyStyleLookup[uniqueVal['value']] = uniqueSym.olStyle;\r\n }\r\n\r\n\r\n this.olStyle = (feature: ol.Feature) => {\r\n let checkProperties = feature.getProperties();\r\n let checkProperty = checkProperties[this.propertyName];\r\n\r\n let returnValue;\r\n if (this.propertyStyleLookup[checkProperty] !== undefined) {\r\n returnValue = [this.propertyStyleLookup[checkProperty]];\r\n } else {\r\n returnValue = [this.defaultStyle];\r\n }\r\n\r\n return returnValue;\r\n };\r\n\r\n if (this.defaultLabelHtml !== null) {\r\n this.legendArray.push(this.defaultLabelHtml);\r\n }\r\n\r\n this.legendHtml = '<ul>';\r\n for (let h of this.legendArray) {\r\n this.legendHtml += `<li>${h}</li>`;\r\n }\r\n this.legendHtml += '</ul>';\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * style and legend object\r\n * @typedef {object} styleAndLegend\r\n * @property {styleFunc} style - style function\r\n * @property {string} legend - legend content\r\n */\r\n\r\n/**\r\n *\r\n * @param {object} esriResponse - layer info\r\n * @returns {styleAndLegend} style and legend object\r\n */\r\nexport function makeFeatureServiceLegendAndSymbol(esriResponse: EsriResponse) {\r\n \"use strict\";\r\n let renderer = esriResponse.drawingInfo.renderer;\r\n let symbolLegendOut: SymbolGenerator = null;\r\n\r\n switch (renderer.type) {\r\n case 'simple':\r\n switch (esriResponse.geometryType) {\r\n case 'esriGeometryPoint':\r\n symbolLegendOut = new SingleSymbol(esriResponse, PointSymbol);\r\n break;\r\n case 'esriGeometryPolyline':\r\n symbolLegendOut = new SingleSymbol(esriResponse, LineSymbol);\r\n break;\r\n case 'esriGeometryPolygon':\r\n symbolLegendOut = new SingleSymbol(esriResponse, PolygonSymbol);\r\n break;\r\n default:\r\n console.log(esriResponse);\r\n alert(esriResponse.geometryType + ' not handled');\r\n }\r\n break;\r\n case 'uniqueValue':\r\n switch (esriResponse.geometryType) {\r\n case 'esriGeometryPoint':\r\n symbolLegendOut = new UniqueValueSymbol(esriResponse, PointSymbol);\r\n break;\r\n case 'esriGeometryPolyline':\r\n symbolLegendOut = new UniqueValueSymbol(esriResponse, LineSymbol);\r\n break;\r\n case 'esriGeometryPolygon':\r\n symbolLegendOut = new UniqueValueSymbol(esriResponse, PolygonSymbol);\r\n break;\r\n default:\r\n console.log(esriResponse);\r\n alert(esriResponse['geometryType'] + ' not handled');\r\n }\r\n break;\r\n default:\r\n alert('not handled renderer type: ' + renderer['type']);\r\n }\r\n\r\n if (symbolLegendOut == null) {\r\n return {style: undefined, legend: ''};\r\n } else {\r\n return {style: symbolLegendOut.olStyle, legend: symbolLegendOut.legendHtml};\r\n }\r\n}\r\n\r\nnm.makeFeatureServiceLegendAndSymbol = makeFeatureServiceLegendAndSymbol;\r\n\r\n\r\n/**\r\n *\r\n * @param {object} lyrObject - the layer as defined in the response\r\n * @param {boolean} [skipLayerNameAndExpander=false] use only icons\r\n * @returns {string} legend html\r\n */\r\nfunction mapServiceLegendItem(lyrObject, skipLayerNameAndExpander: boolean = false) {\r\n\r\n\r\n skipLayerNameAndExpander = typeof skipLayerNameAndExpander == 'boolean' ? skipLayerNameAndExpander : false;\r\n let layerName = lyrObject['layerName'];\r\n let legendItems = lyrObject['legend'];\r\n let legendHtml = '';\r\n\r\n if (!skipLayerNameAndExpander) {\r\n legendHtml += `<span class=\"legend-layer-subitem\">${layerName}</span>`;\r\n }\r\n\r\n if (legendItems.length == 1) {\r\n legendHtml = `<img class=\"legend-layer-icon\" height=\"17\" src=\"data:image/png;base64,${legendItems[0]['imageData']}\">`;\r\n } else {\r\n if (!skipLayerNameAndExpander) {\r\n legendHtml += '<span class=\"legend-items-expander\" title=\"Expand/Collapse\">▼</span>';\r\n }\r\n legendHtml += '<ul>';\r\n for (let i = 0; i < legendItems.length; i++) {\r\n legendHtml += `<li>`;\r\n legendHtml += `<span class=\"legend-layer-subitem\">${htmlEscape(legendItems[i]['label'])}</span>`;\r\n legendHtml += `<img class=\"legend-layer-icon\" height=\"17\" src=\"data:image/png;base64,${legendItems[i]['imageData']}\">`;\r\n legendHtml += `</li>`;\r\n }\r\n legendHtml += '</ul>';\r\n }\r\n\r\n if (!skipLayerNameAndExpander) {\r\n legendHtml = `<span class=\"legend-layer-subitem\">${layerName}</span>` + legendHtml;\r\n }\r\n\r\n return legendHtml;\r\n}\r\n\r\n/**\r\n * make map service legent\r\n * @param {object} esriResponse - layer info\r\n * @returns {string} legend content\r\n */\r\nexport function makeMapServiceLegend(esriResponse) {\r\n \"use strict\";\r\n\r\n let newLegendHtml = '';\r\n\r\n let layers = esriResponse['layers'];\r\n\r\n if (layers.length == 1) {\r\n newLegendHtml += mapServiceLegendItem(layers[0], true);\r\n } else {\r\n newLegendHtml += '<ul>';\r\n for (let i = 0; i < layers.length; i++) {\r\n newLegendHtml += '<li>' + mapServiceLegendItem(layers[i]) + '</li>';\r\n }\r\n newLegendHtml += '</ul>';\r\n }\r\n\r\n return newLegendHtml;\r\n}\r\n\r\nnm.makeMapServiceLegend = makeMapServiceLegend;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/olHelpers/esriToOlStyle.ts","/**\r\n * Created by gavorhes on 11/2/2015.\r\n */\r\n\r\nimport provide from '../util/provide';\r\nimport {rangeChange} from './range-change';\r\nimport $ = 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\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: number;\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","import provide from '../util/provide';\r\nimport $ = require('jquery');\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\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","import {LayerBase, LayerBaseOptions} from './LayerBase';\r\nimport mapMove from '../olHelpers/mapMove';\r\nimport MapMoveCls from '../olHelpers/mapMoveCls'\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport $ = require('jquery');\r\n\r\nconst nm = provide('layers');\r\n\r\nexport interface makeMapMoveParams {\r\n /**\r\n *\r\n * @param lyr\r\n * @param extent\r\n * @param zoomLevel\r\n */\r\n (lyr: LayerBaseVector, extent: Array<number>, zoomLevel?: number): any\r\n}\r\n\r\n\r\n\r\n\r\nexport interface LayerBaseVectorOptions extends LayerBaseOptions{\r\n autoLoad?: boolean;\r\n style?: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction;\r\n onDemand?: boolean;\r\n onDemandDelay?: number;\r\n mapMoveMakeGetParams?: makeMapMoveParams;\r\n mapMoveObj?: MapMoveCls;\r\n renderOrder?: (a: ol.Feature, b: ol.Feature) => number;\r\n\r\n}\r\n\r\n\r\n\r\n/**\r\n * The Vector layer base\r\n * @augments LayerBase\r\n * @abstract\r\n */\r\nexport class LayerBaseVector extends LayerBase {\r\n _olLayer: ol.layer.Vector;\r\n _source: ol.source.Vector;\r\n _style: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction;\r\n _autoLoad: boolean;\r\n _onDemand: boolean;\r\n _onDemandDelay: number;\r\n _mapMoveMakeGetParams: makeMapMoveParams;\r\n _mapMoveParams: any;\r\n _mapMove: MapMoveCls;\r\n _projectionMap: ol.proj.Projection;\r\n _projection4326: ol.proj.Projection;\r\n\r\n\r\n\r\n /**\r\n * The base vector layer\r\n * @param {string} url - pass an empty string to prevent default load and add from a json 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 *\r\n * @param {boolean} [options.autoLoad=false] if the layer should auto load if not visible\r\n * @param {object} [options.style=undefined] the layer style, use openlayers default style if not defined\r\n * @param {boolean} [options.onDemand=false] if the layer should be loaded by extent on map move\r\n * @param {number} [options.onDemandDelay=300] delay before the map move callback should be called\r\n * @param {mapMoveMakeGetParams} [options.mapMoveMakeGetParams=function(lyr, extent, zoomLevel){}] function to create additional map move params\r\n * @param {MapMoveCls} [options.mapMoveObj=mapMove] alternate map move object for use with multi map pages\r\n *\r\n */\r\n constructor(url: string, options: LayerBaseVectorOptions = {}) {\r\n super(url, options);\r\n\r\n options = options as LayerBaseVectorOptions;\r\n\r\n //prevent regular load if no url has been provided\r\n if (this.url.trim() == '') {\r\n this._loaded = true;\r\n }\r\n\r\n this._style = typeof options.style == 'undefined' ? undefined : options.style;\r\n\r\n if (this.visible) {\r\n this._autoLoad = true;\r\n } else {\r\n this._autoLoad = (typeof options['autoLoad'] == 'boolean' ? options['autoLoad'] : false);\r\n }\r\n\r\n this._onDemand = typeof options.onDemand == 'boolean' ? options.onDemand : false;\r\n this._onDemandDelay = typeof options.onDemandDelay == 'number' ? options.onDemandDelay : 300;\r\n\r\n if (options.mapMoveObj) {\r\n this._mapMove = options.mapMoveObj;\r\n } else {\r\n this._mapMove = this._onDemand ? mapMove : undefined;\r\n }\r\n\r\n\r\n this._mapMoveMakeGetParams = typeof options.mapMoveMakeGetParams == 'function' ? options.mapMoveMakeGetParams :\r\n function () {return {};};\r\n\r\n if (this._onDemand) {\r\n this._loaded = true;\r\n this._mapMoveParams = {};\r\n this._mapMove.checkInit();\r\n this._mapMove.addVectorLayer(this);\r\n }\r\n\r\n this._source = new ol.source.Vector();\r\n\r\n\r\n this._olLayer = new ol.layer.Vector(\r\n {\r\n source: this._source,\r\n visible: this.visible,\r\n style: this.style,\r\n minResolution: this._minResolution,\r\n maxResolution: this._maxResolution,\r\n renderOrder: options.renderOrder\r\n }\r\n );\r\n\r\n this.olLayer.setZIndex(this._zIndex);\r\n\r\n\r\n this._projectionMap = null;\r\n this._projection4326 = new ol.proj.Projection({code: \"EPSG:4326\"});\r\n }\r\n\r\n /**\r\n * dummy to be overridden\r\n * @param {object} featureCollection - geojson or esrijson object\r\n */\r\n addFeatures(featureCollection) {\r\n console.log('Layer vector base addFeatures is a placeholder and does nothing');\r\n }\r\n\r\n /**\r\n * Before call to map move callback, can prevent call by returning false\r\n * @param {number} zoom - zoom level\r\n * @param {string} [evtType=undefined] undefined for initial load, otherwise one of 'change:center', 'change:resolution'\r\n * @returns {boolean} if the call should proceed\r\n */\r\n mapMoveBefore(zoom, evtType) {\r\n if (this.minZoom !== undefined) {\r\n if (zoom < this.minZoom) {\r\n return false;\r\n }\r\n }\r\n\r\n if (this.maxZoom !== undefined) {\r\n if (zoom > this.maxZoom) {\r\n return false;\r\n }\r\n }\r\n\r\n return this.visible;\r\n }\r\n\r\n /**\r\n * callback to generate the parameters passed in the get request\r\n * @param {object} extent - extent object\r\n * @param {number} extent.minX - minX\r\n * @param {number} extent.minY - minY\r\n * @param {number} extent.maxX - maxX\r\n * @param {number} extent.maxY - maxY\r\n * @param {number} zoomLevel - zoom level\r\n */\r\n mapMoveMakeGetParams(extent, zoomLevel) {\r\n this._mapMoveParams = {};\r\n $.extend(this._mapMoveParams, this.params);\r\n $.extend(this._mapMoveParams, this._mapMoveMakeGetParams(this, extent, zoomLevel));\r\n }\r\n\r\n /**\r\n * callback function on map move\r\n * @param {object} d - the json response\r\n */\r\n mapMoveCallback(d) {\r\n if (this.source) {\r\n this._source.clear();\r\n }\r\n }\r\n\r\n /**\r\n * clear features in the layer\r\n */\r\n clear() {\r\n if (this._source) {\r\n this._source.clear();\r\n }\r\n }\r\n\r\n /**\r\n * get on demand delay in miliseconds\r\n */\r\n get onDemandDelay(): number {\r\n return this._onDemandDelay;\r\n }\r\n\r\n /**\r\n * get if the layer is autoloaded\r\n */\r\n get autoLoad(): boolean {\r\n return this._autoLoad;\r\n }\r\n\r\n /**\r\n * get the style definition\r\n */\r\n get style(): ol.StyleFunction|Array<ol.style.Style>|ol.style.Style {\r\n return this._style;\r\n }\r\n\r\n /**\r\n * set the style\r\n * @param style - the style or function\r\n */\r\n set style(style: ol.StyleFunction|Array<ol.style.Style>|ol.style.Style) {\r\n this._style = style;\r\n this.olLayer.setStyle(this._style as ol.style.Style);\r\n }\r\n\r\n /**\r\n * get the map CRS if it is defined by the map move object\r\n */\r\n get mapCrs(): string {\r\n return this.mapProj == null ? null : this.mapProj.getCode();\r\n }\r\n\r\n get mapProj(): ol.proj.Projection{\r\n if (this._projectionMap != null){\r\n return this._projectionMap;\r\n }\r\n\r\n if (this._mapMove) {\r\n this._projectionMap = this._mapMove.map.getView().getProjection();\r\n return this._projectionMap;\r\n } else {\r\n return null;\r\n }\r\n\r\n }\r\n\r\n /**\r\n * get the map move object\r\n * @type {MapMoveCls|*}\r\n */\r\n get mapMove(): MapMoveCls {\r\n return this._mapMove;\r\n }\r\n\r\n /**\r\n * map move params\r\n * @type {object}\r\n */\r\n get mapMoveParams() {\r\n return this._mapMoveParams;\r\n }\r\n\r\n get visible(): boolean{\r\n return this._visible;\r\n }\r\n\r\n /**\r\n * Set the layer visibility\r\n * @type {boolean}\r\n * @override\r\n */\r\n set visible(visibility) {\r\n super.setVisible(visibility);\r\n\r\n if (this._onDemand) {\r\n this.mapMove.triggerLyrLoad(this);\r\n }\r\n }\r\n\r\n /**\r\n * get the layer vector source\r\n * @override\r\n */\r\n get source(): ol.source.Vector {\r\n return this.getSource() as ol.source.Vector;\r\n }\r\n\r\n /**\r\n * array of ol features\r\n */\r\n get features(): Array<ol.Feature> {\r\n return this.source.getFeatures();\r\n }\r\n\r\n /**\r\n *\r\n */\r\n get olLayer(): ol.layer.Vector {\r\n return super.getOlLayer() as ol.layer.Vector;\r\n }\r\n\r\n protected setZIndex(newZ: number) {\r\n this.olLayer.setZIndex(newZ);\r\n }\r\n}\r\n\r\nnm.LayerBaseVector = LayerBaseVector;\r\nexport default LayerBaseVector;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/layers/LayerBaseVector.ts","/**\r\n * Created by gavorhes on 11/2/2015.\r\n */\r\n\r\nimport {LayerBaseVector, LayerBaseVectorOptions} from './LayerBaseVector';\r\nimport * as esriToOl from '../olHelpers/esriToOlStyle';\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport $ = require('jquery');\r\nlet nm = provide('layers');\r\n\r\nexport interface LayerBaseVectorEsriOptions extends LayerBaseVectorOptions{\r\n format?: string;\r\n outSR?: number;\r\n where?: string;\r\n outFields?: string;\r\n useEsriStyle?: boolean;\r\n}\r\n\r\n/**\r\n * Base layer for esri vector layers\r\n * @augments LayerBaseVector\r\n */\r\nexport class LayerBaseVectorEsri extends LayerBaseVector {\r\n _outSR: number;\r\n _esriFormat: ol.format.EsriJSON;\r\n _urlCopy: string;\r\n _useEsriStyle: boolean;\r\n\r\n /**\r\n * The base vector 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 *\r\n * @param {boolean} [options.autoLoad=false] if the layer should auto load if not visible\r\n * @param {object} [options.style=undefined] the layer style, use openlayers default style if not defined\r\n * @param {boolean} [options.onDemand=false] if the layer should be loaded by extent on map move\r\n * @param {number} [options.onDemandDelay=300] delay before the map move callback should be called\r\n * @param {MapMoveCls} [options.mapMoveObj=mapMove] alternate map move object for use with multi map pages\r\n *\r\n * @param {string} [options.where=1=1] the layer filter clause\r\n * @param {string} [options.outFields=*] comma separated list of output fields, defaults to all\r\n * @param {string} [options.format=pjson] the format the retrieve the data\r\n * @param {number} [options.outSR=3857] the output spatial reference, defaults to web mercator\r\n * @param {boolean} [options.useEsriStyle=false] if the map service style should be used\r\n * @param {boolean} [options.collapseLegend=false] if the legend should be initially collapsed\r\n * @param {number} [options.mapMoveMakeGetParams=function(extent, zoomLevel){}] function to create additional map move params\r\n */\r\n constructor(url: string, options: LayerBaseVectorEsriOptions) {\r\n\r\n if (typeof options.params != 'object') {\r\n options.params = {};\r\n }\r\n options.params['where'] = options.where || '1=1';\r\n options.params['outFields'] = options.outFields || '*';\r\n options.params['f'] = options.format || 'pjson';\r\n options.params['outSR'] = options.outSR || 3857;\r\n\r\n super(url, options);\r\n this._outSR = this.params['outSR'];\r\n this._esriFormat = new ol.format.EsriJSON();\r\n\r\n if (this._url[this._url.length - 1] !== '/') {\r\n this._url += '/';\r\n }\r\n\r\n this._urlCopy = this.url;\r\n this._url += 'query?callback=?';\r\n\r\n if (this.autoLoad || this.visible) {\r\n this._load();\r\n }\r\n\r\n this._useEsriStyle = typeof options.useEsriStyle == 'boolean' ? options.useEsriStyle : false;\r\n\r\n if (this._useEsriStyle) {\r\n this.addLegendContent();\r\n }\r\n }\r\n\r\n /**\r\n * add additional content to the legend\r\n * @param {string} [additionalContent=''] additional content to add to legend\r\n */\r\n addLegendContent(additionalContent?: string) {\r\n if (!this._useEsriStyle) {\r\n super.addLegendContent(additionalContent);\r\n } else {\r\n $.get(this._urlCopy + '?f=pjson&callback=?', {}, (d) => {\r\n if (d['subLayers'].length > 0) {\r\n alert('should only use single feature layers, not groups');\r\n\r\n return;\r\n }\r\n\r\n let newStyleAndLegend = esriToOl.makeFeatureServiceLegendAndSymbol(d);\r\n this.style = newStyleAndLegend.style;\r\n super.addLegendContent(newStyleAndLegend.legend);\r\n }, 'json');\r\n }\r\n }\r\n\r\n\r\n /**\r\n * add feature collection\r\n * @param {object} featureCollection - features as esrijson\r\n */\r\n addFeatures(featureCollection) {\r\n let feats = this._esriFormat.readFeatures(featureCollection);\r\n this.source.addFeatures(feats);\r\n }\r\n\r\n /**\r\n * trigger load features\r\n * @protected\r\n * @returns {boolean} if already loaded\r\n */\r\n _load() {\r\n if (super._load()) {\r\n return true;\r\n }\r\n $.get(this._url, this.params, (d) => {\r\n this.addFeatures(d);\r\n this.loadCallback(this);\r\n }, 'json').fail(() => {\r\n this._loaded = false;\r\n });\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * callback to generate the parameters passed in the get request\r\n * @param {object} extent - extent object\r\n * @param {number} extent.minX - minX\r\n * @param {number} extent.minY - minY\r\n * @param {number} extent.maxX - maxX\r\n * @param {number} extent.maxY - maxY\r\n * @param {number} zoomLevel - zoom level\r\n */\r\n mapMoveMakeGetParams(extent, zoomLevel) {\r\n super.mapMoveMakeGetParams(extent, zoomLevel);\r\n this.mapMoveParams['geometry'] = `${extent.minX},${extent.minY},${extent.maxX},${extent.maxY}`;\r\n this.mapMoveParams['geometryType'] = 'esriGeometryEnvelope';\r\n this.mapMoveParams['spatialRel'] = 'esriSpatialRelIntersects';\r\n this.mapMoveParams['spatialRel'] = 'esriSpatialRelIntersects';\r\n this.mapMoveParams['inSR'] = 3857;\r\n if (this._outSR == 3857) {\r\n this.mapMoveParams['geometryPrecision'] = 1;\r\n }\r\n }\r\n\r\n /**\r\n * Before call to map move callback, can prevent call by returning false\r\n * @param {number} zoom - zoom level\r\n * @param {string} [evtType=undefined] undefined for initial load, otherwise one of 'change:center', 'change:resolution'\r\n * @returns {boolean} if the call should proceed\r\n */\r\n mapMoveBefore(zoom, evtType) {\r\n return super.mapMoveBefore(zoom, evtType);\r\n //if (super.mapMoveBefore(zoom, evtType)){\r\n // //place holder for additional processing\r\n // return true;\r\n //} else {\r\n // return false;\r\n //}\r\n }\r\n\r\n /**\r\n * callback function on map move\r\n * @param {object} d - the json response\r\n */\r\n mapMoveCallback(d) {\r\n super.mapMoveCallback(d);\r\n this.source.addFeatures(this._esriFormat.readFeatures(d));\r\n }\r\n}\r\n\r\nnm.LayerBaseVectorEsri = LayerBaseVectorEsri;\r\nexport default LayerBaseVectorEsri;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/layers/LayerBaseVectorEsri.ts","/**\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","/**\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 = require('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","/**\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\nimport $ = require('jquery');\r\n\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, 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","/**\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 = require('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","import {quickMap} from '../../src/olHelpers/quickMap';\r\nimport LayerRealEarthTile from \"../../src/layers/LayerRealEarthTile\";\r\nimport {MediaControl, changeFunction} from \"../../src/domUtil/media-control\";\r\nimport $ = require('jquery');\r\nimport {LayerBaseVectorEsri} from \"../../src/layers/LayerBaseVectorEsri\";\r\nimport {LayerEsriMapServer} from \"../../src/layers/LayerEsriMapServer\";\r\n\r\nlet nexrhresStatic = new LayerRealEarthTile({\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 timeLoadCallback: function (f) {\r\n console.log(f);\r\n }\r\n }\r\n);\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\nlet map = quickMap();\r\nmap.addLayer(nexrhresStatic.olLayer);\r\n\r\n\r\nlet coordinationLayer = new LayerBaseVectorEsri(\r\n 'http://transportal.cee.wisc.edu/applications/arcgis2/rest/services/GLRTOC/GlrtocCoordination/MapServer/0',\r\n {\r\n visible: true,\r\n autoLoad: true,\r\n name: 'Coordination',\r\n useEsriStyle: true\r\n }\r\n);\r\n\r\nmap.addLayer(coordinationLayer.olLayer);\r\n\r\n let oakRidgeLayers = [\r\n ['Cameras', 'cameras33'],\r\n ['HAR', 'HAR33'],\r\n ['DMS', 'MessageSigns33'],\r\n //['State Summary', 'statesummary'],\r\n ['Traffic Control', 'TrafficControl33'],\r\n ['Traffic Detection', 'TrafficDetectionMulti'],\r\n ['Weather', 'Weather33']\r\n ];\r\n\r\n\r\n for (let i = 0; i < oakRidgeLayers.length; i++) {\r\n let oakRidgeLayer = new LayerEsriMapServer(\r\n `http://itsdpro.ornl.gov/arcgis/rest/services/ITSPublic/${oakRidgeLayers[i][1]}/MapServer`,\r\n {\r\n id: oakRidgeLayers[i][1],\r\n name: oakRidgeLayers[i][0],\r\n visible: true,\r\n minZoom: 7,\r\n zIndex: 20,\r\n addPopup: true,\r\n legendCollapse: true\r\n }\r\n );\r\n map.addLayer(oakRidgeLayer.olLayer);\r\n }\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./test/demo/animate.ts"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 1b9d70c904b3cb6688ad","webpack:///./src/util/provide.ts","webpack:///external \"$\"","webpack:///external \"ol\"","webpack:///./src/util/makeGuid.ts","webpack:///./src/olHelpers/mapPopup.ts","webpack:///./src/olHelpers/mapInteractionBase.ts","webpack:///./src/olHelpers/mapMove.ts","webpack:///./src/olHelpers/quickMap.ts","webpack:///./src/layers/LayerBase.ts","webpack:///./src/util/checkDefined.ts","webpack:///./src/layers/LayerEsriMapServer.ts","webpack:///./src/olHelpers/mapMoveCls.ts","webpack:///./src/olHelpers/mapPopupCls.ts","webpack:///./src/olHelpers/quickMapBase.ts","webpack:///./src/olHelpers/zoomResolutionConvert.ts","webpack:///./src/olHelpers/esriToOlStyle.ts","webpack:///./src/domUtil/media-control.ts","webpack:///./src/domUtil/range-change.ts","webpack:///./src/layers/LayerBaseVector.ts","webpack:///./src/layers/LayerBaseVectorEsri.ts","webpack:///./src/layers/LayerRealEarthTile.ts","webpack:///./src/layers/LayerBaseXyzTile.ts","webpack:///./src/mixin/RealEarthAnimate.ts","webpack:///./src/mixin/RealEarthAnimateTile.ts","webpack:///./test/demo/animate.ts"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;AChEA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,2wE;;;;;;AC7B3C,mB;;;;;;ACAA,oB;;;;;;;ACAA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,2CAA2C,u/C;;;;;;;ACpB3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,2CAA2C,mtB;;;;;;;ACZ3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,++H;;;;;;;AC5E3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,2CAA2C,2rB;;;;;;;ACZ3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO,YAAY;AAC9B,WAAW,OAAO;AAClB,WAAW,OAAO,mBAAmB;AACrC,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,u7E;;;;;;;ACnC3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,wBAAwB;AACnE;AACA;AACA,oGAAoG;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,2m0B;;;;;;;AClZ3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uqD;;;;;;;AC1B3C;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,wBAAwB;AACvC;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA,4EAA4E;AAC5E,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,qBAAqB,yBAAyB;AAC9C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,24Y;;;;;;;ACxJ3C;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,m6uB;;;;;;;AC9O3C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,gBAAgB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF,6EAA6E;AAC7E,8FAA8F;AAC9F,sCAAsC,QAAQ;AAC9C,yFAAyF;AACzF,sCAAsC,MAAM,OAAO,MAAM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,6CAA6C,8BAA8B;AAC3E,iDAAiD,wCAAwC;AACzF,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,cAAc;AAC7B,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,gBAAgB;AAC/B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,gBAAgB;AAC/B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,mn1C;;;;;;;AC5a3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,sCAAsC,8BAA8B;AACpE,yCAAyC,gDAAgD,aAAa,EAAE;AACxG,sCAAsC;AACtC,yCAAyC;AACzC;AACA;AACA,mDAAmD,WAAW,WAAW,yBAAyB;AAClG,6CAA6C,aAAa,aAAa,oBAAoB,eAAe,WAAW;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD,4CAA4C,oBAAoB,2BAA2B,oBAAoB;AAC/G;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,+inB;;;;;;;AC3F3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,2uJ;;;;;;;AC3E3C;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,OAAO;AAClB;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,6BAA6B;AAC7B,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qDAAqD,yCAAyC;AAC9F,qBAAqB;AACrB,iBAAiB;AACjB,iHAAiH;AACjH;AACA;AACA;AACA,8CAA8C,sBAAsB,yCAAyC;AAC7G,iBAAiB;AACjB,wGAAwG;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,0EAA0E;AAC1E,iDAAiD;AACjD,iDAAiD;AACjD,wDAAwD;AACxD,2DAA2D;AAC3D,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,0EAA0E;AAC1E,0EAA0E;AAC1E,iDAAiD;AACjD,iDAAiD;AACjD,wDAAwD;AACxD,2DAA2D;AAC3D,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,aAAa,OAAO;AACpB,cAAc,UAAU;AACxB,cAAc,OAAO;AACrB;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,8CAA8C,kCAAkC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA,8FAA8F;AAC9F;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA,+FAA+F;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,u5lC;;;;;;;;ACpX3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B,QAAQ,GAAG;AAC1E,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,6BAA6B,EAAE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA,2CAA2C,uroB;;;;;;;AClN3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,OAAO;AAClB,UAAU;AACV,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,OAAO;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,2CAA2C,uiQ;;;;;;;AChG3C;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,qBAAqB,iEAAiE;AACrG,eAAe,WAAW;AAC1B;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,WAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,wDAAwD,oBAAoB;AAC5E;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,29nB;;;;;;;;;;;ACvS3C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,WAAW;AAC1B;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,OAAO,4DAA4D;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,2pe;;;;;;;ACnL3C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qHAAqH,EAAE,IAAI,EAAE,IAAI,EAAE;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,u+L;;;;;;;;;AC/E3C;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA,2CAA2C,+CAA+C;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qBAAqB,sCAAsC;AAC3D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,m5J;;;;;;;;ACpF3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,2BAA2B;AACzF;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,2uW;;;;;;;AC7H3C;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wHAAwH,EAAE,IAAI,EAAE,IAAI,EAAE;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,2CAA2C,miJ;;;;;;;;ACjE3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2BAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,2CAA2C,miM","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\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 33);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1b9d70c904b3cb6688ad","/**\r\n * Created by gavorhes on 12/10/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\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 var parts = namespace.split('.');\r\n var nameSpace = window['gv'];\r\n for (var i = 0; i < parts.length; i++) {\r\n var newObject = nameSpace[parts[i]];\r\n if (typeof newObject == 'undefined') {\r\n nameSpace[parts[i]] = {};\r\n }\r\n nameSpace = nameSpace[parts[i]];\r\n }\r\n return nameSpace;\r\n}\r\nprovide('util');\r\nwindow['gv'].util.provide = provide;\r\nexports.default = provide;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3ZpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUdIOzs7O0dBSUc7QUFDSCxpQkFBaUIsU0FBUztJQUN0QixZQUFZLENBQUM7SUFDYixFQUFFLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDO1FBQ2hDLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwQyxFQUFFLENBQUMsQ0FBQyxPQUFPLFNBQVMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1lBQ2pDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUVELFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFFcEMsa0JBQWUsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTAvMjAxNS5cclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIGNyZWF0ZSBhIG5hbWVzcGFjZSBvbiB0aGUgZ3Ygb2JqZWN0XHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UgdG8gY3JlYXRlXHJcbiAqIEByZXR1cm5zIHtvYmplY3R9IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5hbWVzcGFjZVxyXG4gKi9cclxuZnVuY3Rpb24gcHJvdmlkZShuYW1lc3BhY2Upe1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvd1snZ3YnXSA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgd2luZG93WydndiddID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBhcnRzID0gbmFtZXNwYWNlLnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgbmFtZVNwYWNlID0gd2luZG93WydndiddO1xyXG5cclxuICAgIGZvciAobGV0IGk9MDsgaTwgcGFydHMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGxldCBuZXdPYmplY3QgPSBuYW1lU3BhY2VbcGFydHNbaV1dO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG5ld09iamVjdCA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgICAgIG5hbWVTcGFjZVtwYXJ0c1tpXV0gPSB7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5hbWVTcGFjZSA9IG5hbWVTcGFjZVtwYXJ0c1tpXV07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5hbWVTcGFjZTtcclxufVxyXG5cclxucHJvdmlkZSgndXRpbCcpO1xyXG53aW5kb3dbJ2d2J10udXRpbC5wcm92aWRlID0gcHJvdmlkZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHByb3ZpZGU7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/util/provide.ts\n// module id = 0\n// module chunks = 0 1 2 3 4 5 6","module.exports = $;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"$\"\n// module id = 1\n// module chunks = 0 1 2 3 4 5 6","module.exports = ol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ol\"\n// module id = 2\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"./provide\");\r\nvar nm = provide_1.default('util');\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 var r = Math.random() * 16 | 0, v = c == 'x' ? r : r & 0x3 | 0x8;\r\n return v.toString(16);\r\n });\r\n}\r\nnm.makeGuid = makeGuid;\r\nexports.default = makeGuid;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUd1aWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYWtlR3VpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgscUNBQWdDO0FBQ2hDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFHekI7OztHQUdHO0FBQ0g7SUFDUSxNQUFNLENBQUMsc0NBQXNDO1NBQ3hDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUVqRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztBQUVmLENBQUM7QUFDRCxFQUFFLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUN2QixrQkFBZSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8zLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi9wcm92aWRlJztcclxubGV0IG5tID0gcHJvdmlkZSgndXRpbCcpO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBndWlkcyBhcmUgdXNlZCB0byB1bmlxdWVseSBpZGVudGlmeSBncm91cHMgYW5kIGZlYXR1cmVzXHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IGEgbmV3IGd1aWRcclxuICovXHJcbmZ1bmN0aW9uIG1ha2VHdWlkKCkge1xyXG4gICAgICAgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4J1xyXG4gICAgICAgICAgICAucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbiAoYykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHIgPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwLCB2ID0gYyA9PSAneCcgPyByIDogciAmIDB4MyB8IDB4ODtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxufVxyXG5ubS5tYWtlR3VpZCA9IG1ha2VHdWlkO1xyXG5leHBvcnQgZGVmYXVsdCBtYWtlR3VpZDtcclxuXHJcblxyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/util/makeGuid.ts\n// module id = 3\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar mapPopupCls_1 = require(\"./mapPopupCls\");\r\n/**\r\n * The single popup object catch is that it is common to multimap pages\r\n * @type {MapPopupCls}\r\n */\r\nexports.mapPopup = new mapPopupCls_1.default();\r\nexports.default = exports.mapPopup;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwUG9wdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBQb3B1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsNkNBQXdDO0FBRXhDOzs7R0FHRztBQUNVLFFBQUEsUUFBUSxHQUFHLElBQUkscUJBQVcsRUFBaUIsQ0FBQztBQUN6RCxrQkFBZSxnQkFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMy8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBNYXBQb3B1cENscyBmcm9tICcuL21hcFBvcHVwQ2xzJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2luZ2xlIHBvcHVwIG9iamVjdCBjYXRjaCBpcyB0aGF0IGl0IGlzIGNvbW1vbiB0byBtdWx0aW1hcCBwYWdlc1xyXG4gKiBAdHlwZSB7TWFwUG9wdXBDbHN9XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgbWFwUG9wdXAgPSBuZXcgTWFwUG9wdXBDbHMoKSBhcyBNYXBQb3B1cENscztcclxuZXhwb3J0IGRlZmF1bHQgbWFwUG9wdXA7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapPopup.ts\n// module id = 4\n// module chunks = 0 1 2 3","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Created by gavorhes on 12/8/2015.\r\n */\r\nvar provide_1 = require(\"../util/provide\");\r\nvar nm = provide_1.default('olHelpers');\r\n/**\r\n * base interaction\r\n */\r\nvar MapInteractionBase = (function () {\r\n /**\r\n * map interaction base\r\n * @param subtype - the interaction subtype\r\n */\r\n function MapInteractionBase(subtype) {\r\n this._map = null;\r\n this._initialized = false;\r\n this._subtype = subtype;\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 MapInteractionBase.prototype.init = function (theMap) {\r\n if (!this._initialized) {\r\n this._map = theMap;\r\n this._initialized = true;\r\n }\r\n };\r\n Object.defineProperty(MapInteractionBase.prototype, \"map\", {\r\n /**\r\n * get reference to the ol map object\r\n * @returns {ol.Map} the map object\r\n */\r\n get: function () {\r\n return this._map;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(MapInteractionBase.prototype, \"initialized\", {\r\n /**\r\n * get if is initialized\r\n * @returns {boolean} is initialized\r\n */\r\n get: function () {\r\n return this._initialized;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Check the initialization status and throw exception if not valid yet\r\n * @protected\r\n */\r\n MapInteractionBase.prototype._checkInit = function () {\r\n if (!this.initialized) {\r\n var 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 * Check the initialization status and throw exception if not valid yet\r\n */\r\n MapInteractionBase.prototype.checkInit = function () {\r\n this._checkInit();\r\n };\r\n return MapInteractionBase;\r\n}());\r\nexports.MapInteractionBase = MapInteractionBase;\r\nnm.MapInteractionBase = MapInteractionBase;\r\nexports.default = MapInteractionBase;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwSW50ZXJhY3Rpb25CYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWFwSW50ZXJhY3Rpb25CYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7O0dBRUc7QUFDSCwyQ0FBc0M7QUFFdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUloQzs7R0FFRztBQUNIO0lBS0k7OztPQUdHO0lBQ0gsNEJBQVksT0FBZTtRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlDQUFJLEdBQUosVUFBSyxNQUFjO1FBQ2YsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUEsQ0FBQztZQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztZQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQU1ELHNCQUFJLG1DQUFHO1FBSlA7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyQixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDJDQUFXO1FBSmY7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM3QixDQUFDOzs7T0FBQTtJQUVEOzs7T0FHRztJQUNILHVDQUFVLEdBQVY7UUFDSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksR0FBRyxHQUFNLElBQUksQ0FBQyxRQUFRLDRCQUF5QixDQUFDO1lBQ3BELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsTUFBTSxHQUFHLENBQUM7UUFDZCxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0NBQVMsR0FBVDtRQUNJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0wseUJBQUM7QUFBRCxDQUFDLEFBOURELElBOERDO0FBOURZLGdEQUFrQjtBQWdFL0IsRUFBRSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0FBQzNDLGtCQUFlLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvOC8yMDE1LlxyXG4gKi9cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnb2xIZWxwZXJzJyk7XHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiBiYXNlIGludGVyYWN0aW9uXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTWFwSW50ZXJhY3Rpb25CYXNlIHtcclxuICAgIF9tYXA6IG9sLk1hcDtcclxuICAgIF9pbml0aWFsaXplZDogYm9vbGVhbjtcclxuICAgIF9zdWJ0eXBlOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBtYXAgaW50ZXJhY3Rpb24gYmFzZVxyXG4gICAgICogQHBhcmFtIHN1YnR5cGUgLSB0aGUgaW50ZXJhY3Rpb24gc3VidHlwZVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihzdWJ0eXBlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9tYXAgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fc3VidHlwZSA9IHN1YnR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBiYXNlIGluaXRpYWxpemVyLCByZXR1cm5zIHRydWUgZm9yIGFscmVhZHkgaW5pdGlhbGl6ZWRcclxuICAgICAqIEBwYXJhbSB0aGVNYXAgLSB0aGUgb2wgTWFwXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIGZvciBhbHJlYWR5IGluaXRpYWxpemVkXHJcbiAgICAgKi9cclxuICAgIGluaXQodGhlTWFwOiBvbC5NYXApe1xyXG4gICAgICAgIGlmICghdGhpcy5faW5pdGlhbGl6ZWQpe1xyXG4gICAgICAgICAgICB0aGlzLl9tYXAgPSB0aGVNYXA7XHJcbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgcmVmZXJlbmNlIHRvIHRoZSBvbCBtYXAgb2JqZWN0XHJcbiAgICAgKiBAcmV0dXJucyB7b2wuTWFwfSB0aGUgbWFwIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBnZXQgbWFwKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgaWYgaXMgaW5pdGlhbGl6ZWRcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBpcyBpbml0aWFsaXplZFxyXG4gICAgICovXHJcbiAgICBnZXQgaW5pdGlhbGl6ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxpemVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgdGhlIGluaXRpYWxpemF0aW9uIHN0YXR1cyBhbmQgdGhyb3cgZXhjZXB0aW9uIGlmIG5vdCB2YWxpZCB5ZXRcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqL1xyXG4gICAgX2NoZWNrSW5pdCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgbGV0IG1zZyA9IGAke3RoaXMuX3N1YnR5cGV9IG9iamVjdCBub3QgaW5pdGlhbGl6ZWRgO1xyXG4gICAgICAgICAgICBhbGVydChtc2cpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhtc2cpO1xyXG4gICAgICAgICAgICB0aHJvdyBtc2c7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgdGhlIGluaXRpYWxpemF0aW9uIHN0YXR1cyBhbmQgdGhyb3cgZXhjZXB0aW9uIGlmIG5vdCB2YWxpZCB5ZXRcclxuICAgICAqL1xyXG4gICAgY2hlY2tJbml0KCl7XHJcbiAgICAgICAgdGhpcy5fY2hlY2tJbml0KCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbm5tLk1hcEludGVyYWN0aW9uQmFzZSA9IE1hcEludGVyYWN0aW9uQmFzZTtcclxuZXhwb3J0IGRlZmF1bHQgTWFwSW50ZXJhY3Rpb25CYXNlO1xyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapInteractionBase.ts\n// module id = 5\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar mapMoveCls_1 = require(\"./mapMoveCls\");\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\nexports.mapMove = new mapMoveCls_1.default();\r\nexports.default = exports.mapMove;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwTW92ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hcE1vdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUVILDJDQUFzQztBQUV0Qzs7O0dBR0c7QUFFVSxRQUFBLE9BQU8sR0FBRyxJQUFJLG9CQUFVLEVBQUUsQ0FBQztBQUN4QyxrQkFBZSxlQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8zLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IE1hcE1vdmVDbHMgZnJvbSAnLi9tYXBNb3ZlQ2xzJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2luZ2xlIG1hcCBtb3ZlIG9iamVjdCBjYXRjaCBpcyB0aGF0IGl0IGlzIGNvbW1vbiB0byBtdWx0aW1hcCBwYWdlc1xyXG4gKiBAdHlwZSB7TWFwTW92ZUNsc31cclxuICovXHJcblxyXG5leHBvcnQgY29uc3QgbWFwTW92ZSA9IG5ldyBNYXBNb3ZlQ2xzKCk7XHJcbmV4cG9ydCBkZWZhdWx0IG1hcE1vdmU7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapMove.ts\n// module id = 6\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 12/15/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar quickMapBase_1 = require(\"./quickMapBase\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar mapMove_1 = require(\"./mapMove\");\r\nvar mapPopup_1 = require(\"./mapPopup\");\r\nvar nm = provide_1.default('olHelpers');\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 {ol.Map} the ol map\r\n */\r\nfunction quickMap(options) {\r\n var m = quickMapBase_1.quickMapBase(options);\r\n mapMove_1.default.init(m);\r\n mapPopup_1.default.init(m);\r\n return m;\r\n}\r\nexports.quickMap = quickMap;\r\nnm.quickMap = quickMap;\r\nexports.default = quickMap;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2tNYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJxdWlja01hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsK0NBQTZEO0FBQzdELDJDQUFzQztBQUN0QyxxQ0FBZ0M7QUFDaEMsdUNBQWtDO0FBRWxDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFOUI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsa0JBQXlCLE9BQTBCO0lBQy9DLElBQUksQ0FBQyxHQUFHLDJCQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsaUJBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEIsa0JBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNiLENBQUM7QUFMRCw0QkFLQztBQUdELEVBQUUsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3ZCLGtCQUFlLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzE1LzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtxdWlja01hcE9wdGlvbnMsIHF1aWNrTWFwQmFzZX0gZnJvbSAnLi9xdWlja01hcEJhc2UnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFwTW92ZSBmcm9tICcuL21hcE1vdmUnO1xyXG5pbXBvcnQgbWFwUG9wdXAgZnJvbSAnLi9tYXBQb3B1cCc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5sZXQgbm0gPSBwcm92aWRlKCdvbEhlbHBlcnMnKTtcclxuXHJcbi8qKlxyXG4gKiBTZXRzIHVwIGEgbWFwIHdpdGggc29tZSBkZWZhdWx0IHBhcmFtZXRlcnMgYW5kIGluaXRpYWxpemVzXHJcbiAqIG1hcE1vdmUgYW5kIG1hcFBvcHVwXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucz17fV0gY29uZmlnIG9wdGlvbnNcclxuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmRpdklkPW1hcF0gbWFwIGRpdiBpZFxyXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMuY2VudGVyPXt9XSBjZW50ZXIgY29uZmlnIG9iamVjdFxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuY2VudGVyLng9LTEwMDE4Mzc4XSBjZW50ZXIgeCwgd2ViIG1lcmNhdG9yIHggb3IgbG9uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5jZW50ZXIueT01NTc0OTEwXSBjZW50ZXIgeSwgd2ViIG1lcmNhdG9yIHkgb3IgbGF0XHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56b29tPTddIHpvb20gbGV2ZWxcclxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSBtaW4gem9vbVxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIG1heCB6b29tXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuYmFzZVN3aXRjaGVyPXRydWVdIGlmIGFkZCBiYXNlIG1hcCBzd2l0Y2hlclxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmZ1bGxTY3JlZW49ZmFsc2VdIGlmIGFkZCBiYXNlIG1hcCBzd2l0Y2hlclxyXG4gKiBAcmV0dXJucyB7b2wuTWFwfSB0aGUgb2wgbWFwXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcXVpY2tNYXAob3B0aW9ucz8gOiBxdWlja01hcE9wdGlvbnMpOiBvbC5NYXAge1xyXG4gICAgbGV0IG0gPSBxdWlja01hcEJhc2Uob3B0aW9ucyk7XHJcbiAgICBtYXBNb3ZlLmluaXQobSk7XHJcbiAgICBtYXBQb3B1cC5pbml0KG0pO1xyXG4gICAgcmV0dXJuIG07XHJcbn1cclxuXHJcblxyXG5ubS5xdWlja01hcCA9IHF1aWNrTWFwO1xyXG5leHBvcnQgZGVmYXVsdCBxdWlja01hcDtcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/quickMap.ts\n// module id = 7\n// module chunks = 0 1 2 3","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar zoomResolutionConvert = require(\"../olHelpers/zoomResolutionConvert\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar makeGuid_1 = require(\"../util/makeGuid\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('layers');\r\n/**\r\n * The base layer class\r\n * @abstract\r\n */\r\nvar LayerBase = (function () {\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 function LayerBase(url, options) {\r\n if (options === void 0) { options = {}; }\r\n options = options || {};\r\n if (typeof url !== 'string') {\r\n throw 'Invalid URL';\r\n }\r\n this._url = url;\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 this.id = options.id || makeGuid_1.default();\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 if (this._opacity > 1) {\r\n this._opacity = 1;\r\n }\r\n else if (this._opacity < 0) {\r\n this._opacity = 0;\r\n }\r\n this._visible = typeof options.visible === 'boolean' ? options.visible : true;\r\n this._source = undefined;\r\n /**\r\n *\r\n * @protected\r\n */\r\n this._olLayer = undefined;\r\n this._loaded = false;\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 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 this.loadCallback = typeof options.loadCallback == 'function' ? options.loadCallback : function () {\r\n };\r\n this._legendContent = '';\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 }\r\n else {\r\n this._legendContent += \"<label class=\\\"legend-layer-name\\\">\" + this.name + \"</label>\";\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 * 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 LayerBase.prototype._load = function () {\r\n if (this.loaded == true) {\r\n return true;\r\n }\r\n else {\r\n this._loaded = true;\r\n return false;\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 LayerBase.prototype.getLegendDiv = function () {\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 * @param additionalContent - additional content to add to legend\r\n * @private\r\n */\r\n LayerBase.prototype._addLegendContent = function (additionalContent) {\r\n if (additionalContent === void 0) { additionalContent = ''; }\r\n var addCollapse = additionalContent.indexOf('<ul>') > -1;\r\n if (addCollapse) {\r\n additionalContent = '<span class=\"legend-items-expander\" title=\"Expand/Collapse\">▼</span>' + additionalContent;\r\n }\r\n this._legendContent += additionalContent;\r\n this._$legendDiv = $(\"#\" + this.id + \"-legend-layer-div\");\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 * add additional content to the legend\r\n * @param {string} [additionalContent=] - additonal content to add\r\n */\r\n LayerBase.prototype.addLegendContent = function (additionalContent) {\r\n this._addLegendContent(additionalContent);\r\n };\r\n LayerBase.prototype.applyCollapse = function () {\r\n if (this._applyCollapseCalled) {\r\n console.log('collapse already applied');\r\n return undefined;\r\n }\r\n this._$legendDiv = $(\"#\" + this.id + \"-legend-layer-div\");\r\n if (this._$legendDiv.length > 0) {\r\n var $expander = this._$legendDiv.find('.legend-items-expander');\r\n if ($expander.length > 0) {\r\n this._applyCollapseCalled = true;\r\n $expander.click(function () {\r\n var $this = $(this);\r\n $this.siblings('ul').slideToggle();\r\n if ($this.hasClass('legend-layer-group-collapsed')) {\r\n $this.removeClass('legend-layer-group-collapsed');\r\n $this.html('▼');\r\n }\r\n else {\r\n $this.addClass('legend-layer-group-collapsed');\r\n $this.html('▶');\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 * trick to refresh the layer\r\n */\r\n LayerBase.prototype.refresh = function () {\r\n if (this.source) {\r\n this.source.refresh();\r\n }\r\n };\r\n Object.defineProperty(LayerBase.prototype, \"id\", {\r\n get: function () {\r\n return this._id;\r\n },\r\n set: function (newId) {\r\n this._id = newId;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"animate\", {\r\n get: function () {\r\n return this._animate;\r\n },\r\n set: function (animate) {\r\n this._animate = animate;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"legendContent\", {\r\n /**\r\n * get the legend content\r\n * @type {string}\r\n */\r\n get: function () {\r\n return this._legendContent;\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: function (newVal) {\r\n this._legendContent = newVal;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"params\", {\r\n /**\r\n * get the map get params\r\n * @type {object}\r\n */\r\n get: function () {\r\n return this._params;\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: function (newParams) {\r\n this._params = newParams;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"minResolution\", {\r\n /**\r\n * get the minimum resolution\r\n * @type {number|*}\r\n */\r\n get: function () {\r\n return this._minResolution;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"maxResolution\", {\r\n /**\r\n * get the maximum resolution\r\n * @type {number|*}\r\n */\r\n get: function () {\r\n return this._maxResolution;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"minZoom\", {\r\n /**\r\n * get min zoom\r\n * @type {number|*}\r\n */\r\n get: function () {\r\n return this._minZoom;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"maxZoom\", {\r\n /**\r\n * get max zoom\r\n * @type {number|*}\r\n */\r\n get: function () {\r\n return this._maxZoom;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"url\", {\r\n /**\r\n * get the url\r\n * @type {string}\r\n */\r\n get: function () {\r\n return this._url;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"visible\", {\r\n /**\r\n * Get the layer visibility\r\n * @type {boolean}\r\n */\r\n get: function () {\r\n return this._visible;\r\n },\r\n /**\r\n * set the visibility\r\n * @param visibility\r\n */\r\n set: function (visibility) {\r\n this.setVisible(visibility);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LayerBase.prototype.setVisible = function (visibility) {\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 Object.defineProperty(LayerBase.prototype, \"opacity\", {\r\n /**\r\n * Get the layer opacity\r\n * @type {number}\r\n */\r\n get: function () {\r\n return this._opacity;\r\n },\r\n /**\r\n * Set the layer opacity\r\n * @param {number} opacity - layer opacity\r\n */\r\n set: function (opacity) {\r\n this._opacity = opacity;\r\n if (this.olLayer) {\r\n this.olLayer.setOpacity(this._opacity);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"name\", {\r\n /**\r\n * Get the layer name\r\n * @type {string}\r\n */\r\n get: function () {\r\n return this._name;\r\n },\r\n /**\r\n * set the layer name\r\n * @param {string} newName - the new name\r\n */\r\n set: function (newName) {\r\n this._name = newName;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"loaded\", {\r\n /**\r\n * Check if the layer is loaded\r\n * @type {boolean}\r\n */\r\n get: function () {\r\n return this._loaded;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"source\", {\r\n /**\r\n * get the layer source\r\n * @type {*}\r\n */\r\n get: function () {\r\n return this.getSource();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LayerBase.prototype.getSource = function () {\r\n return this._source;\r\n };\r\n Object.defineProperty(LayerBase.prototype, \"zIndex\", {\r\n /**\r\n * get the z index\r\n */\r\n get: function () {\r\n return this._zIndex;\r\n },\r\n /**\r\n * set the z index\r\n */\r\n set: function (newZ) {\r\n this._zIndex = newZ;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LayerBase.prototype.setZIndex = function (newZ) {\r\n };\r\n Object.defineProperty(LayerBase.prototype, \"olLayer\", {\r\n /**\r\n * the the ol layer\r\n */\r\n get: function () {\r\n return this.getOlLayer();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LayerBase.prototype.getOlLayer = function () {\r\n return this._olLayer;\r\n };\r\n return LayerBase;\r\n}());\r\nexports.LayerBase = LayerBase;\r\nnm.LayerBase = LayerBase;\r\nexports.default = LayerBase;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMEVBQTRFO0FBQzVFLDJDQUFzQztBQUV0Qyw2Q0FBd0M7QUFDeEMsMEJBQTZCO0FBRTdCLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFtQjdCOzs7R0FHRztBQUNIO0lBMEJJOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsbUJBQVksR0FBVyxFQUFFLE9BQThCO1FBQTlCLHdCQUFBLEVBQUEsWUFBOEI7UUFDbkQsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFzQixDQUFDO1FBRTVDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxhQUFhLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBR2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxPQUFPLENBQUMsTUFBTSxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUN2RSxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sT0FBTyxDQUFDLGNBQWMsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDbkcsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxjQUFjLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBRWxHLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxrQkFBUSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLGVBQWUsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMs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QixDQUFDOzs7T0FBQTtJQUVTLDhCQUFVLEdBQXBCO1FBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUNMLGdCQUFDO0FBQUQsQ0FBQyxBQXhaRCxJQXdaQztBQXhacUIsOEJBQVM7QUEwWi9CLEVBQUUsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0FBQ3pCLGtCQUFlLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHpvb21SZXNvbHV0aW9uQ29udmVydCBmcm9tICcuLi9vbEhlbHBlcnMvem9vbVJlc29sdXRpb25Db252ZXJ0JztcclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCBtYWtlR3VpZCBmcm9tICcuLi91dGlsL21ha2VHdWlkJztcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckJhc2VPcHRpb25ze1xyXG4gICAgaWQ/OiBzdHJpbmc7XHJcbiAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgb3BhY2l0eT86IG51bWJlcjtcclxuICAgIHZpc2libGU/OiBib29sZWFuO1xyXG4gICAgbWluWm9vbT86IG51bWJlcjtcclxuICAgIG1heFpvb20/OiBudW1iZXI7XHJcbiAgICBwYXJhbXM/OiBhbnk7XHJcbiAgICB6SW5kZXg/OiBudW1iZXI7XHJcbiAgICBsb2FkQ2FsbGJhY2s/OiBGdW5jdGlvbjtcclxuICAgIGxlZ2VuZENvbGxhcHNlPzogYm9vbGVhbjtcclxuICAgIGxlZ2VuZENoZWNrYm94PzogYm9vbGVhbjtcclxuICAgIGxlZ2VuZENvbnRlbnQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGhlIGJhc2UgbGF5ZXIgY2xhc3NcclxuICogQGFic3RyYWN0XHJcbiAqL1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGF5ZXJCYXNlIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgX2xlZ2VuZENoZWNrYm94OiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF91cmw6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBfb3BhY2l0eTogbnVtYmVyO1xyXG4gICAgcHJvdGVjdGVkIF9taW5ab29tOiBudW1iZXI7XHJcbiAgICBwcm90ZWN0ZWQgX21heFpvb206IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCBfdmlzaWJsZTogYm9vbGVhbjtcclxuICAgIHByb3RlY3RlZCBfbG9hZGVkOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF96SW5kZXg6IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCBfbGVnZW5kQ29udGVudDogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIF9wYXJhbXM6IGFueTtcclxuICAgIHByb3RlY3RlZCBfaWQ6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBfbmFtZTogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIF9zb3VyY2U6IG9sLnNvdXJjZS5Tb3VyY2U7XHJcbiAgICBwcm90ZWN0ZWQgX2FuaW1hdGU6IGJvb2xlYW47XHJcbiAgICBwcm90ZWN0ZWQgX2xlZ2VuZENvbGxhcHNlOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF9tYXhSZXNvbHV0aW9uOiBudW1iZXI7XHJcbiAgICBwcm90ZWN0ZWQgX21pblJlc29sdXRpb246IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCAgXyRsZWdlbmREaXY6IEpRdWVyeTtcclxuICAgIGxvYWRDYWxsYmFjazogRnVuY3Rpb247XHJcbiAgICBwcm90ZWN0ZWQgX29sTGF5ZXI6IG9sLmxheWVyLkxheWVyO1xyXG4gICAgcHJvdGVjdGVkIF9hcHBseUNvbGxhcHNlQ2FsbGVkOiBib29sZWFuO1xyXG5cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYmFzZSBsYXllciBmb3IgYWxsIG90aGVyc1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIHVybCBmb3Igc291cmNlXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmlkPW1ha2VHdWlkKCldIC0gbGF5ZXIgaWRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5uYW1lPVVubmFtZWQgTGF5ZXJdIC0gbGF5ZXIgbmFtZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm9wYWNpdHk9MV0gLSBvcGFjaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnZpc2libGU9dHJ1ZV0gLSBkZWZhdWx0IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5ab29tPXVuZGVmaW5lZF0gLSBtaW4gem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIC0gbWF4IHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnBhcmFtcz17fV0gLSB0aGUgZ2V0IHBhcmFtZXRlcnMgdG8gaW5jbHVkZSB0byByZXRyaWV2ZSB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56SW5kZXg9MF0gLSB0aGUgeiBpbmRleCBmb3IgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy5sb2FkQ2FsbGJhY2tdIC0gZnVuY3Rpb24gdG8gY2FsbCBvbiBsb2FkLCBjb250ZXh0IHRoaXMgaXMgdGhlIGxheWVyIG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb2xsYXBzZT1mYWxzZV0gLSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGJlIGluaXRpYWxseSBjb2xsYXBzZWRcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ2hlY2tib3g9dHJ1ZV0gLSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGhhdmUgYSBjaGVja2JveCBmb3IgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb250ZW50PXVuZGVmaW5lZF0gLSBhZGRpdGlvbmFsIGNvbnRlbnQgdG8gYWRkIHRvIHRoZSBsZWdlbmRcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IodXJsOiBzdHJpbmcsIG9wdGlvbnM6IExheWVyQmFzZU9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9IGFzIExheWVyQmFzZU9wdGlvbnM7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdXJsICE9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB0aHJvdyAnSW52YWxpZCBVUkwnO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl91cmwgPSB1cmw7XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9wYXJhbXMgPSB0eXBlb2Ygb3B0aW9ucy5wYXJhbXMgPT0gJ29iamVjdCcgPyBvcHRpb25zLnBhcmFtcyA6IHt9O1xyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbGxhcHNlID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kQ29sbGFwc2UgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5sZWdlbmRDb2xsYXBzZSA6IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENoZWNrYm94ID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kQ2hlY2tib3ggPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5sZWdlbmRDaGVja2JveCA6IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuaWQgPSBvcHRpb25zLmlkIHx8IG1ha2VHdWlkKCk7XHJcbiAgICAgICAgdGhpcy5fbmFtZSA9IG9wdGlvbnMubmFtZSB8fCAnVW5uYW1lZCBMYXllcic7XHJcbiAgICAgICAgdGhpcy5hbmltYXRlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IHR5cGVvZiBvcHRpb25zLm9wYWNpdHkgPT0gJ251bWJlcicgPyBvcHRpb25zLm9wYWNpdHkgOiAxO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fb3BhY2l0eSA+IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5fb3BhY2l0eSA9IDE7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9vcGFjaXR5IDwgMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9vcGFjaXR5ID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB0eXBlb2Ygb3B0aW9ucy52aXNpYmxlID09PSAnYm9vbGVhbicgPyBvcHRpb25zLnZpc2libGUgOiB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLl9zb3VyY2UgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByb3RlY3RlZFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuX21heFJlc29sdXRpb24gPSB6b29tUmVzb2x1dGlvbkNvbnZlcnQuem9vbVRvUmVzb2x1dGlvbihvcHRpb25zLm1pblpvb20pO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5fbWF4UmVzb2x1dGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5fbWF4UmVzb2x1dGlvbiArPSAwLjAwMDAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9taW5SZXNvbHV0aW9uID0gem9vbVJlc29sdXRpb25Db252ZXJ0Lnpvb21Ub1Jlc29sdXRpb24ob3B0aW9ucy5tYXhab29tKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWluWm9vbSA9IHR5cGVvZiBvcHRpb25zLm1pblpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLm1pblpvb20gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbWF4Wm9vbSA9IHR5cGVvZiBvcHRpb25zLm1heFpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLm1heFpvb20gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fekluZGV4ID0gdHlwZW9mIG9wdGlvbnMuekluZGV4ID09ICdudW1iZXInID8gb3B0aW9ucy56SW5kZXggOiAwO1xyXG5cclxuICAgICAgICB0aGlzLmxvYWRDYWxsYmFjayA9IHR5cGVvZiBvcHRpb25zLmxvYWRDYWxsYmFjayA9PSAnZnVuY3Rpb24nID8gb3B0aW9ucy5sb2FkQ2FsbGJhY2sgOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgfTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgPSAnJztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2xlZ2VuZENoZWNrYm94KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgKz0gYDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiAke3RoaXMudmlzaWJsZSA/ICdjaGVja2VkJyA6ICcnfSBgICtcclxuICAgICAgICAgICAgICAgIGBjbGFzcz1cImxlZ2VuZC1jaGVja1wiIGlkPVwiJHt0aGlzLmlkfS1sZWdlbmQtbGF5ZXItY2hlY2tcIj48c3Bhbj48L3NwYW4+YDtcclxuICAgICAgICAgICAgdGhpcy5fbGVnZW5kQ29udGVudCArPSBgPGxhYmVsIGZvcj1cIiR7dGhpcy5pZH0tbGVnZW5kLWxheWVyLWNoZWNrXCIgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbmFtZVwiPiR7dGhpcy5uYW1lfTwvbGFiZWw+YDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9sZWdlbmRDb250ZW50ICs9IGA8bGFiZWwgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbmFtZVwiPiR7dGhpcy5uYW1lfTwvbGFiZWw+YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuXyRsZWdlbmREaXYgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2FwcGx5Q29sbGFwc2VDYWxsZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9hZGRMZWdlbmRDb250ZW50KHR5cGVvZiBvcHRpb25zLmxlZ2VuZENvbnRlbnQgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5sZWdlbmRDb250ZW50IDogdW5kZWZpbmVkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGJhc2UgbG9hZCBmdW5jdGlvbiwgc2V0cyBfbG9hZGVkID0gdHJ1ZSBpZiBpdCBpcyBub3QgYWxyZWFkeVxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IGlmIGFscmVhZHkgbG9hZGVkXHJcbiAgICAgKi9cclxuICAgIF9sb2FkKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmxvYWRlZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHRoZSBsZWdlbmQgaHRtbCwgYmUgc3VyZSB0byBvbmx5IGFkZCB0byB0aGUgRE9NIG9uY2VcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IGh0bWwgZm9yIGxheWVyIHdyYXBwZWQgaW4gYSBkaXZcclxuICAgICAqL1xyXG4gICAgZ2V0TGVnZW5kRGl2KCkge1xyXG4gICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImxlZ2VuZC1sYXllci1kaXZcIiBpZD1cIiR7dGhpcy5pZH0tbGVnZW5kLWxheWVyLWRpdlwiPiR7dGhpcy5fbGVnZW5kQ29udGVudH08L2Rpdj5gO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBhZGRpdGlvbmFsQ29udGVudCAtIGFkZGl0aW9uYWwgY29udGVudCB0byBhZGQgdG8gbGVnZW5kXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBfYWRkTGVnZW5kQ29udGVudChhZGRpdGlvbmFsQ29udGVudD0nJykge1xyXG5cclxuICAgICAgICBsZXQgYWRkQ29sbGFwc2UgPSBhZGRpdGlvbmFsQ29udGVudC5pbmRleE9mKCc8dWw+JykgPiAtMTtcclxuXHJcbiAgICAgICAgaWYgKGFkZENvbGxhcHNlKSB7XHJcbiAgICAgICAgICAgIGFkZGl0aW9uYWxDb250ZW50ID0gJzxzcGFuIGNsYXNzPVwibGVnZW5kLWl0ZW1zLWV4cGFuZGVyXCIgdGl0bGU9XCJFeHBhbmQvQ29sbGFwc2VcIj4mIzk2NjA7PC9zcGFuPicgKyBhZGRpdGlvbmFsQ29udGVudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgKz0gYWRkaXRpb25hbENvbnRlbnQ7XHJcblxyXG4gICAgICAgIHRoaXMuXyRsZWdlbmREaXYgPSAkKGAjJHt0aGlzLmlkfS1sZWdlbmQtbGF5ZXItZGl2YCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl8kbGVnZW5kRGl2Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5fJGxlZ2VuZERpdi5hcHBlbmQoYWRkaXRpb25hbENvbnRlbnQpO1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5Q29sbGFwc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhZGQgYWRkaXRpb25hbCBjb250ZW50IHRvIHRoZSBsZWdlbmRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbYWRkaXRpb25hbENvbnRlbnQ9XSAtIGFkZGl0b25hbCBjb250ZW50IHRvIGFkZFxyXG4gICAgICovXHJcbiAgICBhZGRMZWdlbmRDb250ZW50KGFkZGl0aW9uYWxDb250ZW50KSB7XHJcbiAgICAgICAgdGhpcy5fYWRkTGVnZW5kQ29udGVudChhZGRpdGlvbmFsQ29udGVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXBwbHlDb2xsYXBzZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5fYXBwbHlDb2xsYXBzZUNhbGxlZCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY29sbGFwc2UgYWxyZWFkeSBhcHBsaWVkJyk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fJGxlZ2VuZERpdiA9ICQoYCMke3RoaXMuaWR9LWxlZ2VuZC1sYXllci1kaXZgKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuXyRsZWdlbmREaXYubGVuZ3RoID4gMCkge1xyXG5cclxuICAgICAgICAgICAgbGV0ICRleHBhbmRlciA9IHRoaXMuXyRsZWdlbmREaXYuZmluZCgnLmxlZ2VuZC1pdGVtcy1leHBhbmRlcicpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCRleHBhbmRlci5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hcHBseUNvbGxhcHNlQ2FsbGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAkZXhwYW5kZXIuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCAkdGhpcyA9ICQodGhpcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICR0aGlzLnNpYmxpbmdzKCd1bCcpLnNsaWRlVG9nZ2xlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy5oYXNDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLnJlbW92ZUNsYXNzKCdsZWdlbmQtbGF5ZXItZ3JvdXAtY29sbGFwc2VkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLmh0bWwoJyYjOTY2MDsnKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5hZGRDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5odG1sKCcmIzk2NTQ7Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2xlZ2VuZENvbGxhcHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJGV4cGFuZGVyLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmljayB0byByZWZyZXNoIHRoZSBsYXllclxyXG4gICAgICovXHJcbiAgICByZWZyZXNoKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNvdXJjZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNvdXJjZS5yZWZyZXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBpZCgpOiBzdHJpbmd7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lkO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBpZChuZXdJZDogc3RyaW5nKXtcclxuICAgICAgICB0aGlzLl9pZCA9IG5ld0lkO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhbmltYXRlKCk6IGJvb2xlYW57XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FuaW1hdGU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGFuaW1hdGUoYW5pbWF0ZTogYm9vbGVhbil7XHJcbiAgICAgICAgdGhpcy5fYW5pbWF0ZSA9IGFuaW1hdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIGxlZ2VuZCBjb250ZW50XHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICovXHJcbiAgICBnZXQgbGVnZW5kQ29udGVudCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbGVnZW5kQ29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgbGVnZW5kIGNvbnRlbnQgZGlyZWN0bHlcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuZXdWYWwgLSBuZXcgY29udGVudFxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICovXHJcbiAgICBzZXQgbGVnZW5kQ29udGVudChuZXdWYWwpIHtcclxuICAgICAgICB0aGlzLl9sZWdlbmRDb250ZW50ID0gbmV3VmFsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtYXAgZ2V0IHBhcmFtc1xyXG4gICAgICogQHR5cGUge29iamVjdH1cclxuICAgICAqL1xyXG4gICAgZ2V0IHBhcmFtcygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IHRoZSBtYXAgZ2V0IHBhcmFtc1xyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IG5ld1BhcmFtcyAtIG5ldyBnZXQgcGFyYW1zXHJcbiAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgKi9cclxuICAgIHNldCBwYXJhbXMobmV3UGFyYW1zKSB7XHJcbiAgICAgICAgdGhpcy5fcGFyYW1zID0gbmV3UGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtaW5pbXVtIHJlc29sdXRpb25cclxuICAgICAqIEB0eXBlIHtudW1iZXJ8Kn1cclxuICAgICAqL1xyXG4gICAgZ2V0IG1pblJlc29sdXRpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pblJlc29sdXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIG1heGltdW0gcmVzb2x1dGlvblxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWF4UmVzb2x1dGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4UmVzb2x1dGlvbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCBtaW4gem9vbVxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWluWm9vbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWluWm9vbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCBtYXggem9vbVxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWF4Wm9vbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4Wm9vbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgdXJsXHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICovXHJcbiAgICBnZXQgdXJsKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91cmw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGxheWVyIHZpc2liaWxpdHlcclxuICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHZpc2liaWxpdHlcclxuICAgICAqL1xyXG4gICAgc2V0IHZpc2libGUodmlzaWJpbGl0eTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuc2V0VmlzaWJsZSh2aXNpYmlsaXR5KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0VmlzaWJsZSh2aXNpYmlsaXR5OiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZpc2liaWxpdHk7XHJcbiAgICAgICAgaWYgKHRoaXMub2xMYXllcikge1xyXG4gICAgICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0VmlzaWJsZSh0aGlzLl92aXNpYmxlKTtcclxuICAgICAgICAgICAgaWYgKHZpc2liaWxpdHkgJiYgIXRoaXMuX2xvYWRlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCB0aGUgbGF5ZXIgb3BhY2l0eVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqL1xyXG4gICAgZ2V0IG9wYWNpdHkoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wYWNpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIGxheWVyIG9wYWNpdHlcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvcGFjaXR5IC0gbGF5ZXIgb3BhY2l0eVxyXG4gICAgICovXHJcbiAgICBzZXQgb3BhY2l0eShvcGFjaXR5KSB7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IG9wYWNpdHk7XHJcbiAgICAgICAgaWYgKHRoaXMub2xMYXllcikge1xyXG4gICAgICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0T3BhY2l0eSh0aGlzLl9vcGFjaXR5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGxheWVyIG5hbWVcclxuICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgKi9cclxuICAgIGdldCBuYW1lKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9uYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IHRoZSBsYXllciBuYW1lXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3TmFtZSAtIHRoZSBuZXcgbmFtZVxyXG4gICAgICovXHJcbiAgICBzZXQgbmFtZShuZXdOYW1lKSB7XHJcbiAgICAgICAgdGhpcy5fbmFtZSA9IG5ld05hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGUgbGF5ZXIgaXMgbG9hZGVkXHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqL1xyXG4gICAgZ2V0IGxvYWRlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBsYXllciBzb3VyY2VcclxuICAgICAqIEB0eXBlIHsqfVxyXG4gICAgICovXHJcbiAgICBnZXQgc291cmNlKCk6IG9sLnNvdXJjZS5Tb3VyY2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNvdXJjZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0U291cmNlKCk6IG9sLnNvdXJjZS5Tb3VyY2V7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgeiBpbmRleFxyXG4gICAgICovXHJcbiAgICBnZXQgekluZGV4KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3pJbmRleDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgeiBpbmRleFxyXG4gICAgICovXHJcbiAgICBzZXQgekluZGV4KG5ld1o6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX3pJbmRleCA9IG5ld1o7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHNldFpJbmRleChuZXdaOiBudW1iZXIpe1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHRoZSB0aGUgb2wgbGF5ZXJcclxuICAgICAqL1xyXG4gICAgZ2V0IG9sTGF5ZXIoKTogb2wubGF5ZXIuTGF5ZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE9sTGF5ZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0T2xMYXllcigpOiBvbC5sYXllci5MYXllcntcclxuICAgICAgICByZXR1cm4gdGhpcy5fb2xMYXllcjtcclxuICAgIH1cclxufVxyXG5cclxubm0uTGF5ZXJCYXNlID0gTGF5ZXJCYXNlO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckJhc2U7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/layers/LayerBase.ts\n// module id = 8\n// module chunks = 0 1 2 3","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"./provide\");\r\nvar nm = provide_1.default('util.checkDefined');\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\nfunction undefinedOrNull(input) {\r\n \"use strict\";\r\n return (typeof input === 'undefined' || input === null);\r\n}\r\nexports.undefinedOrNull = undefinedOrNull;\r\nnm.undefinedOrNull = undefinedOrNull;\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\nfunction definedAndNotNull(input) {\r\n \"use strict\";\r\n return !(undefinedOrNull(input));\r\n}\r\nexports.definedAndNotNull = definedAndNotNull;\r\nnm.definedAndNotNull = definedAndNotNull;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tEZWZpbmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2hlY2tEZWZpbmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscUNBQWdDO0FBQ2hDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUV0Qzs7OztHQUlHO0FBQ0gseUJBQWlDLEtBQUs7SUFDbEMsWUFBWSxDQUFDO0lBRWIsTUFBTSxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBSkQsMENBSUM7QUFFRCxFQUFFLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztBQUdyQzs7OztHQUlHO0FBQ0gsMkJBQW1DLEtBQVU7SUFDekMsWUFBWSxDQUFDO0lBRWIsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBSkQsOENBSUM7QUFFRCxFQUFFLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcHJvdmlkZSBmcm9tICcuL3Byb3ZpZGUnO1xyXG5sZXQgbm0gPSBwcm92aWRlKCd1dGlsLmNoZWNrRGVmaW5lZCcpO1xyXG5cclxuLyoqXHJcbiAqIGNoZWNrIGlmIHRoZSBpbnB1dCBpcyB1bmRlZmluZWQgb3IgbnVsbFxyXG4gKiBAcGFyYW0gaW5wdXQgLSBpbnB1dCBwb2ludGVyXHJcbiAqIEByZXR1cm5zIHRydWUgdW5kZWZpbmVkIG9yIG51bGxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1bmRlZmluZWRPck51bGwgKGlucHV0KTogYm9vbGVhbntcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG5cclxuICAgIHJldHVybiAodHlwZW9mIGlucHV0ID09PSAndW5kZWZpbmVkJyB8fCBpbnB1dCA9PT0gbnVsbCk7XHJcbn1cclxuXHJcbm5tLnVuZGVmaW5lZE9yTnVsbCA9IHVuZGVmaW5lZE9yTnVsbDtcclxuXHJcblxyXG4vKipcclxuICogY2hlY2sgaWYgdGhlIGlucHV0IGlzIGRlZmluZWQgYW5kIG5vdCBudWxsXHJcbiAqIEBwYXJhbSBpbnB1dCAtIGlucHV0IHBvaW50ZXJcclxuICogQHJldHVybnMgdHJ1ZSBkZWZpbmVkIGFuZCBub3QgbnVsbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZWRBbmROb3ROdWxsIChpbnB1dDogYW55KTogYm9vbGVhbntcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG5cclxuICAgIHJldHVybiAhKHVuZGVmaW5lZE9yTnVsbChpbnB1dCkpO1xyXG59XHJcblxyXG5ubS5kZWZpbmVkQW5kTm90TnVsbCA9IGRlZmluZWRBbmROb3ROdWxsO1xyXG5cclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/util/checkDefined.ts\n// module id = 9\n// module chunks = 0 1 2 3","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Created by gavorhes on 12/7/2015.\r\n */\r\nvar LayerBase_1 = require(\"./LayerBase\");\r\nvar esriToOl = require(\"../olHelpers/esriToOlStyle\");\r\nvar mapPopup_1 = require(\"../olHelpers/mapPopup\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('layers');\r\n/**\r\n * esri mapserver layer\r\n * @augments LayerBase\r\n */\r\nvar LayerEsriMapServer = (function (_super) {\r\n __extends(LayerEsriMapServer, _super);\r\n /**\r\n * The base layer for all others\r\n * @param {string} url - resource url\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.addPopup=false] if a popup should be added\r\n * @param {undefined|Array<number>} [options.showLayers=undefined] if a popup should be added\r\n */\r\n function LayerEsriMapServer(url, options) {\r\n if (options === void 0) { options = {}; }\r\n var _this = _super.call(this, url, options) || this;\r\n _this._source = new ol.source.TileArcGISRest({\r\n url: _this.url == '' ? undefined : _this.url,\r\n params: typeof options.showLayers == 'undefined' ? undefined : { layers: 'show:' + options.showLayers.join(',') }\r\n });\r\n _this._olLayer = new ol.layer.Tile({\r\n source: _this._source,\r\n visible: _this.visible,\r\n opacity: _this.opacity,\r\n minResolution: _this._minResolution,\r\n maxResolution: _this._maxResolution\r\n });\r\n _this._olLayer.setZIndex(_this._zIndex);\r\n options.addPopup = typeof options.addPopup == 'boolean' ? options.addPopup : false;\r\n _this._esriFormat = new ol.format.EsriJSON();\r\n _this._popupRequest = null;\r\n _this.addLegendContent();\r\n if (options.addPopup) {\r\n mapPopup_1.default.addMapServicePopup(_this);\r\n }\r\n return _this;\r\n }\r\n /**\r\n * add additional content to the legend\r\n * @param {string} [additionalContent=''] additional content for legend\r\n */\r\n LayerEsriMapServer.prototype.addLegendContent = function (additionalContent) {\r\n var _this = this;\r\n var urlCopy = this.url;\r\n if (urlCopy[urlCopy.length - 1] !== '/') {\r\n urlCopy += '/';\r\n }\r\n urlCopy += 'legend?f=pjson&callback=?';\r\n $.get(urlCopy, {}, function (d) {\r\n var newHtml = esriToOl.makeMapServiceLegend(d);\r\n _super.prototype.addLegendContent.call(_this, newHtml);\r\n }, 'json');\r\n };\r\n LayerEsriMapServer.prototype.getPopupInfo = function (queryParams) {\r\n if (!this.visible) {\r\n return;\r\n }\r\n var urlCopy = this.url;\r\n if (urlCopy[urlCopy.length - 1] != '/') {\r\n urlCopy += '/';\r\n }\r\n urlCopy += 'identify?callback=?';\r\n var __this = this;\r\n if (this._popupRequest != null) {\r\n this._popupRequest.abort();\r\n }\r\n this._popupRequest = $.get(urlCopy, queryParams, function (d) {\r\n for (var _i = 0, _a = d['results']; _i < _a.length; _i++) {\r\n var r = _a[_i];\r\n var popupHtml = '<table class=\"esri-popup-table\">';\r\n for (var a in r['attributes']) {\r\n if (r['attributes'].hasOwnProperty(a)) {\r\n var attrVal = r['attributes'][a];\r\n if (attrVal == null || attrVal.toString().toLowerCase() == 'null') {\r\n continue;\r\n }\r\n var attr = a;\r\n if (attr.length > 14) {\r\n attr = attr.slice(0, 11) + '...';\r\n }\r\n popupHtml += \"<tr><td>\" + attr + \"</td><td>\" + attrVal + \"</td></tr>\";\r\n }\r\n }\r\n popupHtml += '</table>';\r\n mapPopup_1.default.addMapServicePopupContent(__this._esriFormat.readFeature(r), __this, popupHtml, r['layerName']);\r\n }\r\n }, 'json');\r\n this._popupRequest.always(function () {\r\n __this._popupRequest = null;\r\n });\r\n };\r\n Object.defineProperty(LayerEsriMapServer.prototype, \"source\", {\r\n /**\r\n *\r\n * @returns {ol.source.TileArcGISRest} the vector source\r\n */\r\n get: function () {\r\n return _super.prototype.getSource.call(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerEsriMapServer.prototype, \"olLayer\", {\r\n /**\r\n *\r\n * @returns the ol layer\r\n */\r\n get: function () {\r\n return _super.prototype.getOlLayer.call(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return LayerEsriMapServer;\r\n}(LayerBase_1.LayerBase));\r\nexports.LayerEsriMapServer = LayerEsriMapServer;\r\nnm.LayerEsriMapServer = LayerEsriMapServer;\r\nexports.default = LayerEsriMapServer;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJFc3JpTWFwU2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJFc3JpTWFwU2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gseUNBQXdEO0FBQ3hELHFEQUF1RDtBQUN2RCxrREFBNkM7QUFDN0MsMkNBQXNDO0FBQ3RDLDhCQUFpQztBQUNqQywwQkFBNkI7QUFFN0IsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQVE3Qjs7O0dBR0c7QUFDSDtJQUF3QyxzQ0FBUztJQUk3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Ba0JHO0lBQ0gsNEJBQVksR0FBRyxFQUFFLE9BQXVDO1FBQXZDLHdCQUFBLEVBQUEsWUFBdUM7UUFBeEQsWUFFSSxrQkFBTSxHQUFHLEVBQUUsT0FBTyxDQUFDLFNBNEJ0QjtRQTNCRyxLQUFJLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3ZDO1lBQ0ksR0FBRyxFQUFFLEtBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLFNBQVMsR0FBRyxLQUFJLENBQUMsR0FBRztZQUMxQyxNQUFNLEVBQUUsT0FBTyxPQUFPLENBQUMsVUFBVSxJQUFJLFdBQVcsR0FBRyxTQUFTLEdBQUcsRUFBQyxNQUFNLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFDO1NBQ2xILENBQ0osQ0FBQztRQUVGLEtBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM5QixNQUFNLEVBQUUsS0FBSSxDQUFDLE9BQXlCO1lBQ3RDLE9BQU8sRUFBRSxLQUFJLENBQUMsT0FBTztZQUNyQixPQUFPLEVBQUUsS0FBSSxDQUFDLE9BQU87WUFDckIsYUFBYSxFQUFFLEtBQUksQ0FBQyxjQUFjO1lBQ2xDLGFBQWEsRUFBRSxL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QUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMi83LzIwMTUuXHJcbiAqL1xyXG5pbXBvcnQge0xheWVyQmFzZSwgTGF5ZXJCYXNlT3B0aW9uc30gZnJvbSAnLi9MYXllckJhc2UnO1xyXG5pbXBvcnQgKiBhcyBlc3JpVG9PbCBmcm9tICcuLi9vbEhlbHBlcnMvZXNyaVRvT2xTdHlsZSc7XHJcbmltcG9ydCBtYXBQb3B1cCBmcm9tICcuLi9vbEhlbHBlcnMvbWFwUG9wdXAnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgb2wgPSByZXF1aXJlKCdjdXN0b20tb2wnKTtcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckVzcmlNYXBTZXJ2ZXJPcHRpb25zIGV4dGVuZHMgTGF5ZXJCYXNlT3B0aW9ucyB7XHJcbiAgICBhZGRQb3B1cD86IGJvb2xlYW47XHJcbiAgICBzaG93TGF5ZXJzPzogQXJyYXk8bnVtYmVyPjtcclxufVxyXG5cclxuLyoqXHJcbiAqIGVzcmkgbWFwc2VydmVyIGxheWVyXHJcbiAqIEBhdWdtZW50cyBMYXllckJhc2VcclxuICovXHJcbmV4cG9ydCBjbGFzcyBMYXllckVzcmlNYXBTZXJ2ZXIgZXh0ZW5kcyBMYXllckJhc2Uge1xyXG4gICAgX2VzcmlGb3JtYXQ6IG9sLmZvcm1hdC5Fc3JpSlNPTjtcclxuICAgIF9wb3B1cFJlcXVlc3Q6IEpRdWVyeVhIUjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBiYXNlIGxheWVyIGZvciBhbGwgb3RoZXJzXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gcmVzb3VyY2UgdXJsXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdIC0gY29uZmlnXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuaWRdIC0gbGF5ZXIgaWRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5uYW1lPVVubmFtZWQgTGF5ZXJdIC0gbGF5ZXIgbmFtZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm9wYWNpdHk9MV0gLSBvcGFjaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnZpc2libGU9dHJ1ZV0gLSBkZWZhdWx0IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5ab29tPXVuZGVmaW5lZF0gLSBtaW4gem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIC0gbWF4IHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnBhcmFtcz17fV0gdGhlIGdldCBwYXJhbWV0ZXJzIHRvIGluY2x1ZGUgdG8gcmV0cmlldmUgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuekluZGV4PTBdIHRoZSB6IGluZGV4IGZvciB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtvcHRpb25zLmxvYWRDYWxsYmFja10gZnVuY3Rpb24gdG8gY2FsbCBvbiBsb2FkLCBjb250ZXh0IHRoaXMgaXMgdGhlIGxheWVyIG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb2xsYXBzZT1mYWxzZV0gaWYgdGhlIGxlZ2VuZCBpdGVtIHNob3VsZCBiZSBpbml0aWFsbHkgY29sbGFwc2VkXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENoZWNrYm94PXRydWVdIGlmIHRoZSBsZWdlbmQgaXRlbSBzaG91bGQgaGF2ZSBhIGNoZWNrYm94IGZvciB2aXNpYmlsaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENvbnRlbnRdIGFkZGl0aW9uYWwgY29udGVudCB0byBhZGQgdG8gdGhlIGxlZ2VuZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5hZGRQb3B1cD1mYWxzZV0gaWYgYSBwb3B1cCBzaG91bGQgYmUgYWRkZWRcclxuICAgICAqIEBwYXJhbSB7dW5kZWZpbmVkfEFycmF5PG51bWJlcj59IFtvcHRpb25zLnNob3dMYXllcnM9dW5kZWZpbmVkXSBpZiBhIHBvcHVwIHNob3VsZCBiZSBhZGRlZFxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcih1cmwsIG9wdGlvbnM6IExheWVyRXNyaU1hcFNlcnZlck9wdGlvbnMgPSB7fSkge1xyXG5cclxuICAgICAgICBzdXBlcih1cmwsIG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuX3NvdXJjZSA9IG5ldyBvbC5zb3VyY2UuVGlsZUFyY0dJU1Jlc3QoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHVybDogdGhpcy51cmwgPT0gJycgPyB1bmRlZmluZWQgOiB0aGlzLnVybCxcclxuICAgICAgICAgICAgICAgIHBhcmFtczogdHlwZW9mIG9wdGlvbnMuc2hvd0xheWVycyA9PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IHtsYXllcnM6ICdzaG93OicgKyBvcHRpb25zLnNob3dMYXllcnMuam9pbignLCcpfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5fb2xMYXllciA9IG5ldyBvbC5sYXllci5UaWxlKHtcclxuICAgICAgICAgICAgc291cmNlOiB0aGlzLl9zb3VyY2UgYXMgb2wuc291cmNlLlRpbGUsXHJcbiAgICAgICAgICAgIHZpc2libGU6IHRoaXMudmlzaWJsZSxcclxuICAgICAgICAgICAgb3BhY2l0eTogdGhpcy5vcGFjaXR5LFxyXG4gICAgICAgICAgICBtaW5SZXNvbHV0aW9uOiB0aGlzLl9taW5SZXNvbHV0aW9uLFxyXG4gICAgICAgICAgICBtYXhSZXNvbHV0aW9uOiB0aGlzLl9tYXhSZXNvbHV0aW9uXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIuc2V0WkluZGV4KHRoaXMuX3pJbmRleCk7XHJcblxyXG4gICAgICAgIG9wdGlvbnMuYWRkUG9wdXAgPSB0eXBlb2Ygb3B0aW9ucy5hZGRQb3B1cCA9PSAnYm9vbGVhbicgPyBvcHRpb25zLmFkZFBvcHVwIDogZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuX2VzcmlGb3JtYXQgPSBuZXcgb2wuZm9ybWF0LkVzcmlKU09OKCk7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBSZXF1ZXN0ID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5hZGRMZWdlbmRDb250ZW50KCk7XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmFkZFBvcHVwKSB7XHJcbiAgICAgICAgICAgIG1hcFBvcHVwLmFkZE1hcFNlcnZpY2VQb3B1cCh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhZGQgYWRkaXRpb25hbCBjb250ZW50IHRvIHRoZSBsZWdlbmRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbYWRkaXRpb25hbENvbnRlbnQ9JyddIGFkZGl0aW9uYWwgY29udGVudCBmb3IgbGVnZW5kXHJcbiAgICAgKi9cclxuICAgIGFkZExlZ2VuZENvbnRlbnQoYWRkaXRpb25hbENvbnRlbnQ/OiBzdHJpbmcpIHtcclxuICAgICAgICBsZXQgdXJsQ29weSA9IHRoaXMudXJsO1xyXG5cclxuICAgICAgICBpZiAodXJsQ29weVt1cmxDb3B5Lmxlbmd0aCAtIDFdICE9PSAnLycpIHtcclxuICAgICAgICAgICAgdXJsQ29weSArPSAnLyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1cmxDb3B5ICs9ICdsZWdlbmQ/Zj1wanNvbiZjYWxsYmFjaz0/JztcclxuXHJcbiAgICAgICAgJC5nZXQodXJsQ29weSwge30sIChkKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBuZXdIdG1sID0gZXNyaVRvT2wubWFrZU1hcFNlcnZpY2VMZWdlbmQoZCk7XHJcbiAgICAgICAgICAgIHN1cGVyLmFkZExlZ2VuZENvbnRlbnQobmV3SHRtbCk7XHJcbiAgICAgICAgfSwgJ2pzb24nKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgZ2V0UG9wdXBJbmZvKHF1ZXJ5UGFyYW1zKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHVybENvcHkgPSB0aGlzLnVybDtcclxuXHJcbiAgICAgICAgaWYgKHVybENvcHlbdXJsQ29weS5sZW5ndGggLSAxXSAhPSAnLycpIHtcclxuICAgICAgICAgICAgdXJsQ29weSArPSAnLyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1cmxDb3B5ICs9ICdpZGVudGlmeT9jYWxsYmFjaz0/JztcclxuXHJcbiAgICAgICAgbGV0IF9fdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9wb3B1cFJlcXVlc3QgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cFJlcXVlc3QuYWJvcnQoKTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9wb3B1cFJlcXVlc3QgPSAkLmdldCh1cmxDb3B5LCBxdWVyeVBhcmFtcywgZnVuY3Rpb24gKGQpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgciBvZiBkWydyZXN1bHRzJ10pIHtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgcG9wdXBIdG1sID0gJzx0YWJsZSBjbGFzcz1cImVzcmktcG9wdXAtdGFibGVcIj4nO1xyXG5cclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGEgaW4gclsnYXR0cmlidXRlcyddKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJbJ2F0dHJpYnV0ZXMnXS5oYXNPd25Qcm9wZXJ0eShhKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXR0clZhbCA9IHJbJ2F0dHJpYnV0ZXMnXVthXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdHRyVmFsID09IG51bGwgfHwgYXR0clZhbC50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT0gJ251bGwnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGF0dHIgPSBhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ci5sZW5ndGggPiAxNCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ciA9IGF0dHIuc2xpY2UoMCwgMTEpICsgJy4uLic7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcHVwSHRtbCArPSBgPHRyPjx0ZD4ke2F0dHJ9PC90ZD48dGQ+JHthdHRyVmFsfTwvdGQ+PC90cj5gO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzwvdGFibGU+JztcclxuXHJcbiAgICAgICAgICAgICAgICBtYXBQb3B1cC5hZGRNYXBTZXJ2aWNlUG9wdXBDb250ZW50KF9fdGhpcy5fZXNyaUZvcm1hdC5yZWFkRmVhdHVyZShyKSwgX190aGlzLCBwb3B1cEh0bWwsIHJbJ2xheWVyTmFtZSddKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sICdqc29uJyk7XHJcblxyXG4gICAgICAgIHRoaXMuX3BvcHVwUmVxdWVzdC5hbHdheXMoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBfX3RoaXMuX3BvcHVwUmVxdWVzdCA9IG51bGw7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtvbC5zb3VyY2UuVGlsZUFyY0dJU1Jlc3R9IHRoZSB2ZWN0b3Igc291cmNlXHJcbiAgICAgKi9cclxuICAgIGdldCBzb3VyY2UoKTogb2wuc291cmNlLlRpbGVBcmNHSVNSZXN0IHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0U291cmNlKCkgYXMgb2wuc291cmNlLlRpbGVBcmNHSVNSZXN0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHRoZSBvbCBsYXllclxyXG4gICAgICovXHJcbiAgICBnZXQgb2xMYXllcigpOiBvbC5sYXllci5UaWxlIHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0T2xMYXllcigpIGFzIG9sLmxheWVyLlRpbGU7XHJcbiAgICB9XHJcbn1cclxubm0uTGF5ZXJFc3JpTWFwU2VydmVyID0gTGF5ZXJFc3JpTWFwU2VydmVyO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckVzcmlNYXBTZXJ2ZXI7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/layers/LayerEsriMapServer.ts\n// module id = 10\n// module chunks = 0 2 3","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar mapInteractionBase_1 = require(\"./mapInteractionBase\");\r\nvar checkDefined = require(\"../util/checkDefined\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar makeGuid_1 = require(\"../util/makeGuid\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('olHelpers');\r\n/**\r\n * assists with map move interactions, trigger callback functions\r\n * @augments MapInteractionBase\r\n */\r\nvar MapMoveCls = (function (_super) {\r\n __extends(MapMoveCls, _super);\r\n /**\r\n * constructor called implicitly\r\n */\r\n function MapMoveCls() {\r\n var _this = _super.call(this, 'map move') || this;\r\n _this._arrLyrRequest = [];\r\n _this._arrLyrTimeout = [];\r\n _this._arrLayer = [];\r\n _this._lookupLayer = {};\r\n _this._mapMoveCallbacks = [];\r\n _this._mapMoveCallbacksLookup = {};\r\n _this._mapMoveCallbackDelays = [];\r\n _this._mapMoveCallbackContext = [];\r\n _this._mapMoveCallbackTimeout = [];\r\n _this._mapExtent = undefined;\r\n _this._zoomLevel = undefined;\r\n return _this;\r\n }\r\n /**\r\n * initialize the map move object\r\n * @param theMap - the ol map\r\n */\r\n MapMoveCls.prototype.init = function (theMap) {\r\n var _this = this;\r\n _super.prototype.init.call(this, theMap);\r\n this.map.getView().on(['change:center', 'change:resolution'], function (e) {\r\n _this._updateMapExtent();\r\n // trigger the layer updates\r\n for (var i = 0; i < _this._arrLayer.length; i++) {\r\n _this.triggerLyrLoad(_this._arrLayer[i], i, e.type);\r\n }\r\n // trigger the map callbacks\r\n for (var i = 0; i < _this._mapMoveCallbacks.length; i++) {\r\n _this.triggerMoveCallback(i, e.type);\r\n }\r\n });\r\n };\r\n MapMoveCls.prototype._updateMapExtent = function () {\r\n var theView = this.map.getView();\r\n this._zoomLevel = theView.getZoom();\r\n var extentArray = theView.calculateExtent(this.map.getSize());\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 Object.defineProperty(MapMoveCls.prototype, \"mapExtent\", {\r\n /**\r\n * return the map extent\r\n */\r\n get: function () {\r\n if (!this._mapExtent) {\r\n this._updateMapExtent();\r\n }\r\n return this._mapExtent;\r\n },\r\n enumerable: true,\r\n configurable: true\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 MapMoveCls.prototype.triggerLyrLoad = function (lyr, index, eventType) {\r\n if (checkDefined.undefinedOrNull(lyr) && checkDefined.undefinedOrNull(index)) {\r\n throw 'need to define lyr or index';\r\n }\r\n else if (checkDefined.definedAndNotNull(lyr) && checkDefined.undefinedOrNull(index)) {\r\n index = this._arrLayer.indexOf(lyr);\r\n }\r\n else if (checkDefined.undefinedOrNull(lyr) && checkDefined.definedAndNotNull(index)) {\r\n lyr = this._arrLayer[index];\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 // 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 // dummy callback used if before load returns false\r\n var callbackFunc = function () { };\r\n if (lyr.mapMoveBefore(this._zoomLevel, eventType)) {\r\n lyr.mapMoveMakeGetParams(this._mapExtent, this._zoomLevel);\r\n var __this_1 = this;\r\n callbackFunc = function () {\r\n function innerFunction(theLayer, theIndex) {\r\n var _innerThis = this;\r\n this._arrLyrRequest[theIndex] = $.get(theLayer.url, theLayer.mapMoveParams, function (d) {\r\n /**\r\n * @type {LayerBaseVector}\r\n */\r\n theLayer.mapMoveCallback(d);\r\n theLayer.loadCallback();\r\n }, 'json').fail(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(function () {\r\n _innerThis._arrLyrTimeout[theIndex] = null;\r\n _innerThis._arrLyrRequest[theIndex] = null;\r\n });\r\n }\r\n innerFunction.call(__this_1, lyr, index);\r\n };\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 * 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 MapMoveCls.prototype.triggerMoveCallback = function (ind, eventType, functionId) {\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 if (typeof ind !== 'number') {\r\n ind = this._mapMoveCallbacks.indexOf(this._mapMoveCallbacksLookup[functionId]);\r\n }\r\n if (ind < 0) {\r\n console.log('function not found');\r\n return;\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 var ctx = this._mapMoveCallbackContext[ind];\r\n var theFunc = this._mapMoveCallbacks[ind];\r\n var __this = this;\r\n var f = function () {\r\n if (ctx !== null) {\r\n theFunc.call(ctx, __this._mapExtent, __this._zoomLevel, eventType);\r\n }\r\n else {\r\n theFunc(__this._mapExtent, __this._zoomLevel, eventType);\r\n }\r\n };\r\n this._mapMoveCallbackTimeout[ind] = setTimeout(f, this._mapMoveCallbackDelays[ind]);\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 MapMoveCls.prototype.addVectorLayer = function (lyr, triggerOnAdd) {\r\n if (triggerOnAdd === void 0) { triggerOnAdd = true; }\r\n if (this._arrLayer.indexOf(lyr) > -1) {\r\n console.log('already added ' + lyr.name + ' to map move');\r\n return;\r\n }\r\n this._checkInit();\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 triggerOnAdd = typeof triggerOnAdd == 'boolean' ? triggerOnAdd : true;\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 * 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 MapMoveCls.prototype.addCallback = function (func, context, delay, triggerOnAdd, functionId) {\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_1.default();\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 triggerOnAdd = typeof triggerOnAdd == 'boolean' ? triggerOnAdd : true;\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 return MapMoveCls;\r\n}(mapInteractionBase_1.default));\r\nexports.MapMoveCls = MapMoveCls;\r\nnm.MapMoveCls = MapMoveCls;\r\nexports.default = MapMoveCls;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwTW92ZUNscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hcE1vdmVDbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EsMkRBQXNEO0FBQ3RELG1EQUFxRDtBQUNyRCwyQ0FBc0M7QUFDdEMsNkNBQXdDO0FBRXhDLDBCQUE2QjtBQUM3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBcUJoQzs7O0dBR0c7QUFDSDtJQUFnQyw4QkFBa0I7SUFhOUM7O09BRUc7SUFDSDtRQUFBLFlBQ0ksa0JBQU0sVUFBVSxDQUFDLFNBZXBCO1FBZEcsS0FBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsS0FBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsS0FBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFFdkIsS0FBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixLQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLEtBQUksQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7UUFDakMsS0FBSSxDQUFDLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUNsQyxLQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBRWxDLEtBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLEtBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDOztJQUVoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gseUJBQUksR0FBSixVQUFLLE1BQWM7UUFBbkIsaUJBaUJDO1FBaEJHLGlCQUFNLElBQUksWUFBQyxNQUFNLENBQUMsQ0FBQztRQUVuQixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLFVBQUMsQ0FBQztZQUU3RCxLQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUV2Qiw0QkFBNEI7WUFDNUIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUM3QyxLQUFJLENBQUMsY0FBYyxDQUFDLEtBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0RCxDQUFDO1lBRUQsNEJBQTRCO1lBQzVCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNyRCxLQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQscUNBQWdCLEdBQWhCO1FBQ0ksSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVwQyxJQUFJLFdBQVcsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2QsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDcEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDcEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDcEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDdkIsQ0FBQztJQUNOLENBQUM7SUFLRCxzQkFBSSxpQ0FBUztRQUhiOztXQUVHO2FBQ0g7WUFDSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM1QixDQUFDO1lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDM0IsQ0FBQzs7O09BQUE7SUFFRDs7Ozs7T0FLRztJQUNILG1DQUFjLEdBQWQsVUFBZSxHQUFvQixFQUFFLEtBQWMsRUFBRSxTQUFrQjtRQUVuRSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFlBQVksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNFLE1BQU0sNkJBQTZCLENBQUM7UUFDeEMsQ0FBQztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksWUFBWSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEYsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxZQUFZLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BGLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxvQkFBb0I7UUFDcEIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdEMsQ0FBQztRQUVELDJDQUEyQztRQUMzQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN0QyxDQUFDO1FBRUQsbURBQW1EO1FBQ25ELElBQUksWUFBWSxHQUFHLGNBQWEsQ0FBQyxDQUFDO1FBRWxDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEQsR0FBRyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRTNELElBQUksUUFBTSxHQUFHLElBQUksQ0FBQztZQUVsQixZQUFZLEdBQUc7Z0JBQ1gsdUJBQXVCLFFBQVEsRUFBRSxRQUFRO29CQUNyQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUM7b0JBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FDakMsUUFBUSxDQUFDLEdBQUcsRUFDWixRQUFRLENBQUMsYUFBYSxFQUN0QixVQUFVLENBQUM7d0JBQ1A7OzJCQUVHO3dCQUNILFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQzVCLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDNUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDZixVQUFVLEtBQUs7d0JBQ1gsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDOzRCQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDOzRCQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQzs0QkFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7d0JBQ3hDLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUNUO3dCQUNJLFVBQVUsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDO3dCQUMzQyxVQUFVLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQztvQkFDL0MsQ0FBQyxDQUFDLENBQUM7Z0JBQ1gsQ0FBQztnQkFDRCxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDO1FBQ04sQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLFVBQVUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHdDQUFtQixHQUFuQixVQUFvQixHQUFXLEVBQUUsU0FBa0IsRUFBRSxVQUFtQjtRQUVwRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxXQUFXLElBQUksT0FBTyxVQUFVLElBQUksV0FBVyxDQUFDLENBQUEsQ0FBQztZQUMvRCxNQUFNLHFEQUFxRCxDQUFDO1FBQ2hFLENBQUM7UUFFRCxFQUFFLENBQUMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQSxDQUFDO1lBQ3pCLEdBQUcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ25GLENBQUM7UUFFRCxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUEsQ0FBQztZQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUVsQyxNQUFNLENBQUM7UUFDWCxDQUFDO1FBRUQsb0JBQW9CO1FBQ3BCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzVDLFlBQVksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzdDLENBQUM7UUFFRCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTFDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztRQUVsQixJQUFJLENBQUMsR0FBRztZQUNKLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN2RSxDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ0osT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM3RCxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxtQ0FBYyxHQUFkLFVBQWUsR0FBb0IsRUFBRSxZQUE0QjtRQUE1Qiw2QkFBQSxFQUFBLG1CQUE0QjtRQUM3RCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQyxDQUFDO1lBRTFELE1BQU0sQ0FBQztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBRWhDLFlBQVksR0FBRyxPQUFPLFlBQVksSUFBSSxTQUFTLEdBQUcsWUFBWSxHQUFHLElBQUksQ0FBQztRQUV0RSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ2YsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM1QixDQUFDO1lBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDeEQsQ0FBQztJQUNMLENBQUM7SUFHRDs7Ozs7OztPQU9HO0lBQ0gsZ0NBQVcsR0FBWCxVQUFZLElBQTZCLEVBQUUsT0FBYSxFQUFFLEtBQWMsRUFBRSxZQUF1QixFQUFFLFVBQW1CO1FBRWxILEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMseUNBQXlDLENBQUMsQ0FBQztZQUN2RCxNQUFNLENBQUM7UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUEsQ0FBQztZQUNiLFVBQVUsR0FBRyxrQkFBUSxFQUFFLENBQUM7UUFDNUIsQ0FBQztRQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxHQUFHLFVBQVUsQ0FBQztRQUN0RCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLFFBQVEsR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEMsWUFBWSxHQUFHLE9BQU8sWUFBWSxJQUFJLFNBQVMsR0FBRyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBRXRFLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDZixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzVCLENBQUM7WUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0wsQ0FBQztJQUNMLGlCQUFDO0FBQUQsQ0FBQyxBQWxRRCxDQUFnQyw0QkFBa0IsR0FrUWpEO0FBbFFZLGdDQUFVO0FBb1F2QixFQUFFLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztBQUMzQixrQkFBZSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGF5ZXJCYXNlVmVjdG9yIGZyb20gXCIuLi9sYXllcnMvTGF5ZXJCYXNlVmVjdG9yXCI7XHJcbmltcG9ydCBNYXBJbnRlcmFjdGlvbkJhc2UgZnJvbSAnLi9tYXBJbnRlcmFjdGlvbkJhc2UnO1xyXG5pbXBvcnQgKiBhcyBjaGVja0RlZmluZWQgZnJvbSAnLi4vdXRpbC9jaGVja0RlZmluZWQnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFrZUd1aWQgZnJvbSAnLi4vdXRpbC9tYWtlR3VpZCc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycycpO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgZXh0ZW50T2JqZWN0e1xyXG4gICAgbWluWDogbnVtYmVyO1xyXG4gICAgbWluWTogbnVtYmVyO1xyXG4gICAgbWF4WDogbnVtYmVyO1xyXG4gICAgbWF4WTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIG1hcE1vdmVDYWxsYmFja0Z1bmN0aW9ue1xyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGV4dGVudCBleHRlbnQgYXMgcHJlZGVmaW5lZCBvYmplY3QgbWluWCwgbWluWCwgbWF4WCwgbWF4WVxyXG4gICAgICogQHBhcmFtIHpvb21MZXZlbCBjdXJyZW50IHpvb20gbGV2ZWxcclxuICAgICAqIEBwYXJhbSBldnRUeXBlIHRoZSBldmVudCB0eXBlICdjaGFuZ2U6Y2VudGVyJywgJ2NoYW5nZTpyZXNvbHV0aW9uJ1xyXG4gICAgICovXHJcbiAgICAoZXh0ZW50OiBleHRlbnRPYmplY3QsIHpvb21MZXZlbDogbnVtYmVyLCBldnRUeXBlPzogc3RyaW5nKTogYW55XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogYXNzaXN0cyB3aXRoIG1hcCBtb3ZlIGludGVyYWN0aW9ucywgdHJpZ2dlciBjYWxsYmFjayBmdW5jdGlvbnNcclxuICogQGF1Z21lbnRzIE1hcEludGVyYWN0aW9uQmFzZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIE1hcE1vdmVDbHMgZXh0ZW5kcyBNYXBJbnRlcmFjdGlvbkJhc2Uge1xyXG4gICAgX21hcEV4dGVudDogZXh0ZW50T2JqZWN0O1xyXG4gICAgX3pvb21MZXZlbDogbnVtYmVyO1xyXG4gICAgX2xvb2t1cExheWVyOiBPYmplY3Q7XHJcbiAgICBfYXJyTGF5ZXI6IEFycmF5PExheWVyQmFzZVZlY3Rvcj47XHJcbiAgICBfYXJyTHlyVGltZW91dDogQXJyYXk8bnVtYmVyPjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0OiBBcnJheTxudW1iZXI+O1xyXG4gICAgX21hcE1vdmVDYWxsYmFja0RlbGF5czogQXJyYXk8bnVtYmVyPjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tzTG9va3VwOiBPYmplY3Q7XHJcbiAgICBfbWFwTW92ZUNhbGxiYWNrQ29udGV4dDogQXJyYXk8T2JqZWN0PjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tzOiBBcnJheTxtYXBNb3ZlQ2FsbGJhY2tGdW5jdGlvbj47XHJcbiAgICBfYXJyTHlyUmVxdWVzdDogQXJyYXk8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGNvbnN0cnVjdG9yIGNhbGxlZCBpbXBsaWNpdGx5XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCdtYXAgbW92ZScpO1xyXG4gICAgICAgIHRoaXMuX2Fyckx5clJlcXVlc3QgPSBbXTtcclxuICAgICAgICB0aGlzLl9hcnJMeXJUaW1lb3V0ID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyTGF5ZXIgPSBbXTtcclxuICAgICAgICB0aGlzLl9sb29rdXBMYXllciA9IHt9O1xyXG5cclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzID0gW107XHJcbiAgICAgICAgdGhpcy5fbWFwTW92ZUNhbGxiYWNrc0xvb2t1cCA9IHt9O1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja0RlbGF5cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja0NvbnRleHQgPSBbXTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0ID0gW107XHJcblxyXG4gICAgICAgIHRoaXMuX21hcEV4dGVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl96b29tTGV2ZWwgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogaW5pdGlhbGl6ZSB0aGUgbWFwIG1vdmUgb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0gdGhlTWFwIC0gdGhlIG9sIG1hcFxyXG4gICAgICovXHJcbiAgICBpbml0KHRoZU1hcDogb2wuTWFwKXtcclxuICAgICAgICBzdXBlci5pbml0KHRoZU1hcCk7XHJcblxyXG4gICAgICAgIHRoaXMubWFwLmdldFZpZXcoKS5vbihbJ2NoYW5nZTpjZW50ZXInLCAnY2hhbmdlOnJlc29sdXRpb24nXSwgKGUpID0+e1xyXG5cclxuICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHRyaWdnZXIgdGhlIGxheWVyIHVwZGF0ZXNcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9hcnJMYXllci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyTHlyTG9hZCh0aGlzLl9hcnJMYXllcltpXSwgaSwgZS50eXBlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gdHJpZ2dlciB0aGUgbWFwIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX21hcE1vdmVDYWxsYmFja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlck1vdmVDYWxsYmFjayhpLCBlLnR5cGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgX3VwZGF0ZU1hcEV4dGVudCgpIHtcclxuICAgICAgICBsZXQgdGhlVmlldyA9IHRoaXMubWFwLmdldFZpZXcoKTtcclxuICAgICAgICB0aGlzLl96b29tTGV2ZWwgPSB0aGVWaWV3LmdldFpvb20oKTtcclxuXHJcbiAgICAgICAgbGV0IGV4dGVudEFycmF5ID0gdGhlVmlldy5jYWxjdWxhdGVFeHRlbnQodGhpcy5tYXAuZ2V0U2l6ZSgpKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWFwRXh0ZW50ID0ge1xyXG4gICAgICAgICAgICBtaW5YOiBleHRlbnRBcnJheVswXSxcclxuICAgICAgICAgICAgbWluWTogZXh0ZW50QXJyYXlbMV0sXHJcbiAgICAgICAgICAgIG1heFg6IGV4dGVudEFycmF5WzJdLFxyXG4gICAgICAgICAgICBtYXhZOiBleHRlbnRBcnJheVszXVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiByZXR1cm4gdGhlIG1hcCBleHRlbnRcclxuICAgICAqL1xyXG4gICAgZ2V0IG1hcEV4dGVudCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX21hcEV4dGVudCkge1xyXG4gICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXBFeHRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUcmlnZ2VyIHRoZSBsYXllciBsb2FkXHJcbiAgICAgKiBAcGFyYW0gbHlyIHRoZSBsYXllciBiZWluZyBhY3RlZCBvblxyXG4gICAgICogQHBhcmFtIGluZGV4IGluZGV4IG9mIHRoZSBsYXllclxyXG4gICAgICogQHBhcmFtIGV2ZW50VHlwZSB0aGUgZXZlbnQgdHJpZ2dlcmluZyB0aGUgbG9hZCwgYXMgJ2NoYW5nZTpjZW50ZXInIG9yICdjaGFuZ2U6cmVzb2x1dGlvbidcclxuICAgICAqL1xyXG4gICAgdHJpZ2dlckx5ckxvYWQobHlyOiBMYXllckJhc2VWZWN0b3IsIGluZGV4PzogbnVtYmVyLCBldmVudFR5cGU/OiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgaWYgKGNoZWNrRGVmaW5lZC51bmRlZmluZWRPck51bGwobHlyKSAmJiBjaGVja0RlZmluZWQudW5kZWZpbmVkT3JOdWxsKGluZGV4KSkge1xyXG4gICAgICAgICAgICB0aHJvdyAnbmVlZCB0byBkZWZpbmUgbHlyIG9yIGluZGV4JztcclxuICAgICAgICB9IGVsc2UgaWYgKGNoZWNrRGVmaW5lZC5kZWZpbmVkQW5kTm90TnVsbChseXIpICYmIGNoZWNrRGVmaW5lZC51bmRlZmluZWRPck51bGwoaW5kZXgpKSB7XHJcbiAgICAgICAgICAgIGluZGV4ID0gdGhpcy5fYXJyTGF5ZXIuaW5kZXhPZihseXIpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY2hlY2tEZWZpbmVkLnVuZGVmaW5lZE9yTnVsbChseXIpICYmIGNoZWNrRGVmaW5lZC5kZWZpbmVkQW5kTm90TnVsbChpbmRleCkpIHtcclxuICAgICAgICAgICAgbHlyID0gdGhpcy5fYXJyTGF5ZXJbaW5kZXhdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gY2xlYXIgdGhlIHRpbWVvdXRcclxuICAgICAgICBpZiAodGhpcy5fYXJyTHlyVGltZW91dFtpbmRleF0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fYXJyTHlyVGltZW91dFtpbmRleF0pO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJUaW1lb3V0W2luZGV4XSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBhYm9ydCBpZiBuZWNlc3NhcnkgYW5kIGNsZWFyIHRoZSByZXF1ZXN0XHJcbiAgICAgICAgaWYgKHRoaXMuX2Fyckx5clJlcXVlc3RbaW5kZXhdICE9IG51bGwgJiYgdGhpcy5fYXJyTHlyUmVxdWVzdFtpbmRleF0gIT0gNCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0W2luZGV4XS5hYm9ydCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0W2luZGV4XSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBkdW1teSBjYWxsYmFjayB1c2VkIGlmIGJlZm9yZSBsb2FkIHJldHVybnMgZmFsc2VcclxuICAgICAgICBsZXQgY2FsbGJhY2tGdW5jID0gZnVuY3Rpb24gKCkge307XHJcblxyXG4gICAgICAgIGlmIChseXIubWFwTW92ZUJlZm9yZSh0aGlzLl96b29tTGV2ZWwsIGV2ZW50VHlwZSkpIHtcclxuICAgICAgICAgICAgbHlyLm1hcE1vdmVNYWtlR2V0UGFyYW1zKHRoaXMuX21hcEV4dGVudCwgdGhpcy5fem9vbUxldmVsKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBfX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICAgICAgY2FsbGJhY2tGdW5jID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gaW5uZXJGdW5jdGlvbih0aGVMYXllciwgdGhlSW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgX2lubmVyVGhpcyA9IHRoaXM7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXJyTHlyUmVxdWVzdFt0aGVJbmRleF0gPSAkLmdldChcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlTGF5ZXIudXJsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5tYXBNb3ZlUGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBAdHlwZSB7TGF5ZXJCYXNlVmVjdG9yfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5tYXBNb3ZlQ2FsbGJhY2soZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5sb2FkQ2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgJ2pzb24nKS5mYWlsKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoanFYSFIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqcVhIUi5zdGF0dXNUZXh0ICE9ICdhYm9ydCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZmFpbGVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhlTGF5ZXIudXJsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGVMYXllci5tYXBNb3ZlUGFyYW1zKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSkuYWx3YXlzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5uZXJUaGlzLl9hcnJMeXJUaW1lb3V0W3RoZUluZGV4XSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5uZXJUaGlzLl9hcnJMeXJSZXF1ZXN0W3RoZUluZGV4XSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaW5uZXJGdW5jdGlvbi5jYWxsKF9fdGhpcywgbHlyLCBpbmRleCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbHlyLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2Fyckx5clRpbWVvdXRbaW5kZXhdID0gc2V0VGltZW91dChjYWxsYmFja0Z1bmMsIGx5ci5vbkRlbWFuZERlbGF5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyaWdnZXIgdGhlIG1hcCBtb3ZlIGNhbGwgYmFjayBhdCB0aGUgZ2l2ZW4gaW5kZXhcclxuICAgICAqIEBwYXJhbSBpbmQgLSB0aGUgaW5kZXggb2YgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gZXZlbnRUeXBlPXVuZGVmaW5lZCB0aGUgZXZlbnQgdHJpZ2dlcmluZyB0aGUgbG9hZCBhcyAnY2hhbmdlOmNlbnRlcicgb3IgJ2NoYW5nZTpyZXNvbHV0aW9uJ1xyXG4gICAgICogQHBhcmFtIGZ1bmN0aW9uSWQ9dW5kZWZpbmVkIHRoZSBmdW5jdGlvbiBpZCB1c2VkIHRvIHJlZmVyZW5jZSB0aGUgYWRkZWQgY2FsbGJhY2sgZnVuY3Rpb25cclxuICAgICAqL1xyXG4gICAgdHJpZ2dlck1vdmVDYWxsYmFjayhpbmQ6IG51bWJlciwgZXZlbnRUeXBlPzogc3RyaW5nLCBmdW5jdGlvbklkPzogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgaW5kID09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBmdW5jdGlvbklkID09ICd1bmRlZmluZWQnKXtcclxuICAgICAgICAgICAgdGhyb3cgJ2VpdGhlciB0aGUgZnVuY3Rpb24gaW5kZXggb3IgdGhlIGlkIG11c3QgYmUgZGVmaW5lZCc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIGluZCAhPT0gJ251bWJlcicpe1xyXG4gICAgICAgICAgICBpbmQgPSB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzLmluZGV4T2YodGhpcy5fbWFwTW92ZUNhbGxiYWNrc0xvb2t1cFtmdW5jdGlvbklkXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaW5kIDwgMCl7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdmdW5jdGlvbiBub3QgZm91bmQnKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGNsZWFyIHRoZSB0aW1lb3V0XHJcbiAgICAgICAgaWYgKHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXRbaW5kXSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0W2luZF0pO1xyXG4gICAgICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0W2luZF0gPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGN0eCA9IHRoaXMuX21hcE1vdmVDYWxsYmFja0NvbnRleHRbaW5kXTtcclxuICAgICAgICBsZXQgdGhlRnVuYyA9IHRoaXMuX21hcE1vdmVDYWxsYmFja3NbaW5kXTtcclxuXHJcbiAgICAgICAgbGV0IF9fdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIGxldCBmID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAoY3R4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGVGdW5jLmNhbGwoY3R4LCBfX3RoaXMuX21hcEV4dGVudCwgX190aGlzLl96b29tTGV2ZWwsIGV2ZW50VHlwZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGVGdW5jKF9fdGhpcy5fbWFwRXh0ZW50LCBfX3RoaXMuX3pvb21MZXZlbCwgZXZlbnRUeXBlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXRbaW5kXSA9IHNldFRpbWVvdXQoZiwgdGhpcy5fbWFwTW92ZUNhbGxiYWNrRGVsYXlzW2luZF0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIGEgbGF5ZXIgdG8gdGhlIGludGVyYWN0aW9uXHJcbiAgICAgKiBAcGFyYW0gIGx5ciAtIGxheWVyIHRvIGFkZFxyXG4gICAgICogQHBhcmFtIHRyaWdnZXJPbkFkZCAtIGlmIHRoZSBsYXllciBzaG91bGQgYmUgbG9hZGVkIG9uIGFkZFxyXG4gICAgICovXHJcbiAgICBhZGRWZWN0b3JMYXllcihseXI6IExheWVyQmFzZVZlY3RvciwgdHJpZ2dlck9uQWRkOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgICAgIGlmICh0aGlzLl9hcnJMYXllci5pbmRleE9mKGx5cikgPiAtMSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnYWxyZWFkeSBhZGRlZCAnICsgbHlyLm5hbWUgKyAnIHRvIG1hcCBtb3ZlJyk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2NoZWNrSW5pdCgpO1xyXG5cclxuICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0LnB1c2gobnVsbCk7XHJcbiAgICAgICAgdGhpcy5fYXJyTHlyVGltZW91dC5wdXNoKG51bGwpO1xyXG4gICAgICAgIHRoaXMuX2FyckxheWVyLnB1c2gobHlyKTtcclxuICAgICAgICB0aGlzLl9sb29rdXBMYXllcltseXIuaWRdID0gbHlyO1xyXG5cclxuICAgICAgICB0cmlnZ2VyT25BZGQgPSB0eXBlb2YgdHJpZ2dlck9uQWRkID09ICdib29sZWFuJyA/IHRyaWdnZXJPbkFkZCA6IHRydWU7XHJcblxyXG4gICAgICAgIGlmICh0cmlnZ2VyT25BZGQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX21hcEV4dGVudCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJMeXJMb2FkKGx5ciwgdGhpcy5fYXJyTGF5ZXIubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIGFkZCBhIGNhbGxiYWNrIHRvIHRoZSBtYXAgbW92ZSBldmVudFxyXG4gICAgICogQHBhcmFtIGZ1bmMgLSBjYWxsYmFjayBmdW5jdGlvblxyXG4gICAgICogQHBhcmFtIGNvbnRleHQgLSB0aGUgY29udGV4dCB0byB1c2UgZm9yIHRoaXMgZnVuY3Rpb25cclxuICAgICAqIEBwYXJhbSBkZWxheT01MCB0aGUgZGVsYXkgYmVmb3JlIGNhbGwgbG9hZFxyXG4gICAgICogQHBhcmFtIHRyaWdnZXJPbkFkZCBpZiB0aGUgbGF5ZXIgc2hvdWxkIGJlIGxvYWRlZCBvbiBhZGQgdG8gbWFwTW92ZVxyXG4gICAgICogQHBhcmFtIGZ1bmN0aW9uSWQgb3B0aW9uYWwgaWQgdG8gcmVmZXJlbmNlIHRoZSBmdW5jdGlvbiBsYXRlciBmb3Igb3V0c2lkZSB0cmlnZ2VyaW5nXHJcbiAgICAgKi9cclxuICAgIGFkZENhbGxiYWNrKGZ1bmM6IG1hcE1vdmVDYWxsYmFja0Z1bmN0aW9uLCBjb250ZXh0PzogYW55LCBkZWxheT86IG51bWJlciwgdHJpZ2dlck9uQWRkPyA6IGJvb2xlYW4sIGZ1bmN0aW9uSWQ/OiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX21hcE1vdmVDYWxsYmFja3MuaW5kZXhPZihmdW5jKSA+IC0xKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCd0aGlzIGZ1bmN0aW9uIGFscmVhZHkgYWRkZWQgdG8gbWFwIG1vdmUnKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICBpZiAoIWZ1bmN0aW9uSWQpe1xyXG4gICAgICAgICAgICBmdW5jdGlvbklkID0gbWFrZUd1aWQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja3MucHVzaChmdW5jKTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzTG9va3VwW2Z1bmN0aW9uSWRdID0gZnVuY3Rpb25JZDtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tEZWxheXMucHVzaCh0eXBlb2YgZGVsYXkgPT0gJ251bWJlcicgPyBkZWxheSA6IDUwKTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tDb250ZXh0LnB1c2goY2hlY2tEZWZpbmVkLmRlZmluZWRBbmROb3ROdWxsKGNvbnRleHQpID8gY29udGV4dCA6IG51bGwpO1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXQucHVzaChudWxsKTtcclxuXHJcbiAgICAgICAgdHJpZ2dlck9uQWRkID0gdHlwZW9mIHRyaWdnZXJPbkFkZCA9PSAnYm9vbGVhbicgPyB0cmlnZ2VyT25BZGQgOiB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodHJpZ2dlck9uQWRkKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9tYXBFeHRlbnQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTWFwRXh0ZW50KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy50cmlnZ2VyTW92ZUNhbGxiYWNrKHRoaXMuX21hcE1vdmVDYWxsYmFja3MubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5ubS5NYXBNb3ZlQ2xzID0gTWFwTW92ZUNscztcclxuZXhwb3J0IGRlZmF1bHQgTWFwTW92ZUNscztcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapMoveCls.ts\n// module id = 11\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar mapInteractionBase_1 = require(\"./mapInteractionBase\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('olHelpers');\r\nvar FeatureLayerProperties = (function () {\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 function FeatureLayerProperties(feature, layer, layerIndex, selectionLayer, esriLayerName) {\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 Object.defineProperty(FeatureLayerProperties.prototype, \"layerName\", {\r\n get: function () {\r\n if (typeof this.esriLayerName == 'string') {\r\n return this.esriLayerName;\r\n }\r\n else {\r\n return this.layer.name;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return FeatureLayerProperties;\r\n}());\r\nexports.FeatureLayerProperties = FeatureLayerProperties;\r\n/**\r\n * map popup class\r\n * @augments MapInteractionBase\r\n */\r\nvar MapPopupCls = (function (_super) {\r\n __extends(MapPopupCls, _super);\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 * map popup constructor\r\n */\r\n function MapPopupCls() {\r\n var _this = _super.call(this, 'map popup') || this;\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 //let a = function($jqueryContent){console.log($jqueryContent)};\r\n //this._popupChangedLookup = {'a': a};\r\n _this._popupChangedFunctions = [];\r\n _this._esriMapServiceLayers = [];\r\n _this._popupOpen = false;\r\n _this._popupCoordinate = null;\r\n _this._passThroughLayerFeatureArray = [];\r\n _this._currentPopupIndex = -1;\r\n _this._popupContentLength = 0;\r\n return _this;\r\n }\r\n /**\r\n * map popup initialization\r\n * @param {ol.Map} theMap - the ol map\r\n */\r\n MapPopupCls.prototype.init = function (theMap) {\r\n var _this = this;\r\n _super.prototype.init.call(this, theMap);\r\n var $map;\r\n var target = this.map.getTarget();\r\n if (typeof target == 'string') {\r\n $map = $('#' + target);\r\n }\r\n else {\r\n $map = $(target);\r\n }\r\n $map.append('<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 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 var _ease = function (n) {\r\n return ol.easing.inAndOut(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 this._map.addOverlay(this._popupOverlay);\r\n this._$popupCloser.click(function (evt) {\r\n _this.closePopup();\r\n });\r\n // display popup on click\r\n this._map.on('singleclick', function (evt) {\r\n _this.closePopup();\r\n _this._popupCoordinate = evt['coordinate'];\r\n // esri map service layers\r\n if (_this._esriMapServiceLayers.length > 0) {\r\n var 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()).join(','),\r\n imageDisplay: _this._map.getSize().join(',') + ',96',\r\n returnGeometry: true,\r\n tolerance: 15,\r\n f: 'pjson'\r\n };\r\n for (var _i = 0, _a = _this._esriMapServiceLayers; _i < _a.length; _i++) {\r\n var l = _a[_i];\r\n l.getPopupInfo(queryParams);\r\n }\r\n }\r\n var layerFeatureObjectArray = _this._featuresAtPixel(evt['pixel']);\r\n _this._passThroughLayerFeatureArray = [];\r\n _this._currentPopupIndex = -1;\r\n for (var i = 0; i < layerFeatureObjectArray.length; i++) {\r\n var featObj = layerFeatureObjectArray[i];\r\n var props = featObj.feature.getProperties();\r\n var popupContentResponse = _this._arrPopupContentFunction[featObj.layerIndex](props, _this._$popupContent);\r\n //skip if return was false\r\n if (popupContentResponse === false) {\r\n //continue;\r\n }\r\n else if (typeof popupContentResponse == 'string') {\r\n featObj.popupContent = popupContentResponse;\r\n _this._passThroughLayerFeatureArray.push(featObj);\r\n }\r\n else {\r\n featObj.selectionLayer.getSource().addFeature(featObj.feature);\r\n }\r\n }\r\n _this._popupContentLength = _this._passThroughLayerFeatureArray.length;\r\n _this._currentPopupIndex = -1;\r\n var 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 popupHtml += '</div>';\r\n _this._$popupContent.html(popupHtml);\r\n _this._$popupContent.find('.previous-popup').click(function () {\r\n if (_this._popupContentLength == 1) {\r\n return;\r\n }\r\n if (_this._currentPopupIndex == 0) {\r\n _this._currentPopupIndex = _this._popupContentLength - 1;\r\n }\r\n else {\r\n _this._currentPopupIndex--;\r\n }\r\n _this._triggerFeatSelect();\r\n });\r\n var nextPopup = _this._$popupContent.find('.next-popup');\r\n nextPopup.click(function () {\r\n if (_this._popupContentLength == 1 && _this._currentPopupIndex > -1) {\r\n return;\r\n }\r\n if (_this._currentPopupIndex == _this._popupContentLength - 1) {\r\n _this._currentPopupIndex = 0;\r\n }\r\n else {\r\n _this._currentPopupIndex++;\r\n }\r\n _this._triggerFeatSelect();\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 //change mouse cursor when over marker\r\n this._map.on('pointermove', function (evt) {\r\n if (evt['dragging']) {\r\n return;\r\n }\r\n var pixel = _this.map.getEventPixel(evt['originalEvent']);\r\n var hit = _this.map.hasFeatureAtPixel(pixel, function (lyrCandidate) {\r\n for (var _i = 0, _a = _this._arrPopupOlLayers; _i < _a.length; _i++) {\r\n var olLayer = _a[_i];\r\n if (lyrCandidate == olLayer) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n });\r\n var mapElement = _this.map.getTargetElement();\r\n mapElement.style.cursor = hit ? 'pointer' : '';\r\n });\r\n return true;\r\n };\r\n /**\r\n * helper to select features\r\n * @private\r\n */\r\n MapPopupCls.prototype._triggerFeatSelect = function () {\r\n var $currentPopupItemNumber = this._$popupContent.find('.current-popup-item-number');\r\n var $innerPopup = this._$popupContent.find('.ol-popup-inner');\r\n var $layerNameSpan = this._$popupContent.find('.current-popup-layer-name');\r\n this.clearSelection();\r\n var 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 (var _i = 0, _a = this._popupChangedFunctions; _i < _a.length; _i++) {\r\n var f = _a[_i];\r\n f(this._$popupContent);\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 MapPopupCls.prototype.addMapServicePopupContent = function (feature, lyr, popupContent, esriName) {\r\n var featLayerObject = new FeatureLayerProperties(feature, lyr, this._popupContentLength, this._selectionLayerLookup[lyr.id], esriName);\r\n featLayerObject.popupContent = popupContent;\r\n this._passThroughLayerFeatureArray.push(featLayerObject);\r\n this._popupContentLength++;\r\n $('.popup-content-length').html(this._popupContentLength.toFixed());\r\n if (!this._popupOpen) {\r\n this._$popupContent.find('.next-popup').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 *\r\n * @param pixel - the ol pixel\r\n * @returns feature layer properties\r\n * @private\r\n */\r\n MapPopupCls.prototype._featuresAtPixel = function (pixel) {\r\n var _this = this;\r\n var layerFeatureObjectArray = [];\r\n this.map.forEachFeatureAtPixel(pixel, function (feature, layer) {\r\n var lyrIndex = _this._arrPopupOlLayers.indexOf(layer);\r\n if (lyrIndex > -1) {\r\n layerFeatureObjectArray.push(new FeatureLayerProperties(feature, _this._arrPopupLayers[lyrIndex], lyrIndex, _this._selectionLayers[lyrIndex]));\r\n }\r\n });\r\n return layerFeatureObjectArray;\r\n };\r\n MapPopupCls.prototype.closePopup = function () {\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 return false;\r\n };\r\n ;\r\n /**\r\n *\r\n * @param chgFunction - popup change function\r\n */\r\n MapPopupCls.prototype.addPopupChangedFunction = function (chgFunction) {\r\n this._popupChangedFunctions.push(chgFunction);\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 MapPopupCls.prototype._addPopupLayer = function (lyr, selectionStyle) {\r\n this._checkInit();\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 var theStyle;\r\n if (selectionStyle.olStyle) {\r\n theStyle = selectionStyle.olStyle;\r\n }\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 var selectionLayer = new ol.layer.Vector({\r\n source: new ol.source.Vector(),\r\n style: theStyle\r\n });\r\n selectionLayer.setZIndex(100);\r\n this._selectionLayers.push(selectionLayer);\r\n this._selectionLayerLookup[lyr.id] = selectionLayer;\r\n this.map.addLayer(selectionLayer);\r\n return selectionLayer;\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 MapPopupCls.prototype.addVectorPopup = function (lyr, popupContentFunction, selectionStyle) {\r\n var 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 return selectionLayer;\r\n };\r\n ;\r\n /**\r\n *\r\n * @param {LayerBase} lyr - layer\r\n */\r\n MapPopupCls.prototype.removeVectorPopup = function (lyr) {\r\n var idx = this._arrPopupLayerIds.indexOf(lyr.id);\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 * @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 MapPopupCls.prototype.addMapServicePopup = function (lyr, selectionStyle) {\r\n var selectionLayer = this._addPopupLayer(lyr, selectionStyle);\r\n this._esriMapServiceLayers.push(lyr);\r\n return selectionLayer;\r\n };\r\n MapPopupCls.prototype.clearSelection = function () {\r\n this._checkInit();\r\n for (var i = 0; i < this._selectionLayers.length; i++) {\r\n this._selectionLayers[i].getSource().clear();\r\n }\r\n for (var _i = 0, _a = this._mapClickFunctions; _i < _a.length; _i++) {\r\n var f = _a[_i];\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 MapPopupCls.prototype.addMapClickFunction = function (func) {\r\n this._mapClickFunctions.push(func);\r\n };\r\n return MapPopupCls;\r\n}(mapInteractionBase_1.default));\r\nexports.MapPopupCls = MapPopupCls;\r\nnm.MapPopupCls = MapPopupCls;\r\nexports.default = MapPopupCls;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwUG9wdXBDbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBQb3B1cENscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7Ozs7Ozs7Ozs7OztBQUVILDJEQUFzRDtBQUV0RCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBR2pDLDBCQUE2QjtBQUU3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBMEJoQztJQVNJOzs7Ozs7O09BT0c7SUFDSCxnQ0FBWSxPQUFtQixFQUFFLEtBQXlDLEVBQUUsVUFBa0IsRUFBRSxjQUErQixFQUFFLGFBQXNCO1FBQ25KLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxhQUFhLElBQUksUUFBUSxHQUFHLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDdEYsQ0FBQztJQUVELHNCQUFJLDZDQUFTO2FBQWI7WUFDSSxFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDOUIsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUMzQixDQUFDO1FBQ0wsQ0FBQzs7O09BQUE7SUFDTCw2QkFBQztBQUFELENBQUMsQUFqQ0QsSUFpQ0M7QUFqQ1ksd0RBQXNCO0FBbUNuQzs7O0dBR0c7QUFDSDtJQUFpQywrQkFBa0I7SUFxQi9DOzs7OztPQUtHO0lBR0g7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QWtCLEdBeWNsRDtBQXpjWSxrQ0FBVztBQTBjeEIsRUFBRSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDN0Isa0JBQWUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMy8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBNYXBJbnRlcmFjdGlvbkJhc2UgZnJvbSAnLi9tYXBJbnRlcmFjdGlvbkJhc2UnO1xyXG5pbXBvcnQgcHJvcGVydGllc1pvb21TdHlsZSBmcm9tICcuLi9vbEhlbHBlcnMvcHJvcGVydGllc1pvb21TdHlsZSc7XHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQge0xheWVyQmFzZVZlY3Rvcn0gZnJvbSBcIi4uL2xheWVycy9MYXllckJhc2VWZWN0b3JcIjtcclxuaW1wb3J0IExheWVyRXNyaU1hcFNlcnZlciBmcm9tIFwiLi4vbGF5ZXJzL0xheWVyRXNyaU1hcFNlcnZlclwiO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5cclxuY29uc3Qgbm0gPSBwcm92aWRlKCdvbEhlbHBlcnMnKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgcG9wdXBDaGFuZ2VkRnVuY3Rpb24ge1xyXG4gICAgKCRwb3BDb250ZW50OiBKUXVlcnkpOiBhbnk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBwb3B1cENhbGxiYWNrIHtcclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRoZSBwb3B1cFxyXG4gICAgICogQHBhcmFtIGZlYXR1cmVQcm9wZXJ0aWVzXHJcbiAgICAgKiBAcGFyYW0ganFSZWZcclxuICAgICAqL1xyXG4gICAgKGZlYXR1cmVQcm9wZXJ0aWVzOiBPYmplY3QsIGpxUmVmPzogSlF1ZXJ5KTogc3RyaW5nIHwgYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIG1hcEV2ZW50IHtcclxuICAgIGNvb3JkaW5hdGU6IG9sLkNvb3JkaW5hdGU7XHJcbiAgICBwaXhlbDogb2wuUGl4ZWw7XHJcbiAgICBkcmFnZ2luZzogYm9vbGVhbnxhbnk7XHJcbiAgICBvcmlnaW5hbEV2ZW50OiBFdmVudDtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlTGF5ZXJQcm9wZXJ0aWVzIHtcclxuXHJcbiAgICBmZWF0dXJlOiBvbC5GZWF0dXJlO1xyXG4gICAgbGF5ZXI6IExheWVyQmFzZVZlY3RvcnxMYXllckVzcmlNYXBTZXJ2ZXI7XHJcbiAgICBsYXllckluZGV4OiBudW1iZXI7XHJcbiAgICBzZWxlY3Rpb25MYXllcjogb2wubGF5ZXIuVmVjdG9yO1xyXG4gICAgcG9wdXBDb250ZW50OiBzdHJpbmc7XHJcbiAgICBlc3JpTGF5ZXJOYW1lOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGZlYXR1cmUgdGhlIGZlYXR1cmVcclxuICAgICAqIEBwYXJhbSBsYXllciAtIHRoZSBsYXllciBpbiB0aGUgcG9wdXBcclxuICAgICAqIEBwYXJhbSBsYXllckluZGV4IC0gaW5kZXggb2YgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gc2VsZWN0aW9uTGF5ZXIgLSB0aGUgb2wgc2VsZWN0aW9uIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gW2VzcmlMYXllck5hbWU9dW5kZWZpbmVkXSAtIGVzcmkgbGF5ZXIgbmFtZVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihmZWF0dXJlOiBvbC5GZWF0dXJlLCBsYXllcjogTGF5ZXJCYXNlVmVjdG9yfExheWVyRXNyaU1hcFNlcnZlciwgbGF5ZXJJbmRleDogbnVtYmVyLCBzZWxlY3Rpb25MYXllcjogb2wubGF5ZXIuVmVjdG9yLCBlc3JpTGF5ZXJOYW1lPzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5mZWF0dXJlID0gZmVhdHVyZTtcclxuICAgICAgICB0aGlzLmxheWVyID0gbGF5ZXI7XHJcbiAgICAgICAgdGhpcy5sYXllckluZGV4ID0gbGF5ZXJJbmRleDtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbkxheWVyID0gc2VsZWN0aW9uTGF5ZXI7XHJcbiAgICAgICAgdGhpcy5wb3B1cENvbnRlbnQgPSAnJztcclxuICAgICAgICB0aGlzLmVzcmlMYXllck5hbWUgPSB0eXBlb2YgZXNyaUxheWVyTmFtZSA9PSAnc3RyaW5nJyA/IGVzcmlMYXllck5hbWUgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGxheWVyTmFtZSgpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXNyaUxheWVyTmFtZSA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lc3JpTGF5ZXJOYW1lO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxheWVyLm5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogbWFwIHBvcHVwIGNsYXNzXHJcbiAqIEBhdWdtZW50cyBNYXBJbnRlcmFjdGlvbkJhc2VcclxuICovXHJcbmV4cG9ydCBjbGFzcyBNYXBQb3B1cENscyBleHRlbmRzIE1hcEludGVyYWN0aW9uQmFzZSB7XHJcbiAgICBwcml2YXRlIF9wb3B1cE9wZW46IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIF9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5OiBBcnJheTxGZWF0dXJlTGF5ZXJQcm9wZXJ0aWVzPjtcclxuICAgIHByaXZhdGUgX2N1cnJlbnRQb3B1cEluZGV4OiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9wb3B1cENvbnRlbnRMZW5ndGg6IG51bWJlcjtcclxuICAgIHByaXZhdGUgX2VzcmlNYXBTZXJ2aWNlTGF5ZXJzOiBBcnJheTxMYXllckVzcmlNYXBTZXJ2ZXI+O1xyXG4gICAgcHJpdmF0ZSBfJHBvcHVwQ2xvc2VyOiBKUXVlcnk7XHJcbiAgICBwcml2YXRlIF8kcG9wdXBDb250ZW50OiBKUXVlcnk7XHJcbiAgICBwcml2YXRlIF8kcG9wdXBDb250YWluZXI6IEpRdWVyeTtcclxuICAgIHByaXZhdGUgX3BvcHVwT3ZlcmxheTogb2wuT3ZlcmxheTtcclxuICAgIHByaXZhdGUgX2FyclBvcHVwTGF5ZXJzOiBBcnJheTxMYXllckJhc2VWZWN0b3I+O1xyXG4gICAgcHJpdmF0ZSBfcG9wdXBDb29yZGluYXRlOiBvbC5Db29yZGluYXRlO1xyXG4gICAgcHJpdmF0ZSBfcG9wdXBDaGFuZ2VkRnVuY3Rpb25zOiBBcnJheTxwb3B1cENoYW5nZWRGdW5jdGlvbj47XHJcbiAgICBwcml2YXRlIF9tYXBDbGlja0Z1bmN0aW9uczogQXJyYXk8RnVuY3Rpb24+O1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uTGF5ZXJMb29rdXA6IE9iamVjdDtcclxuICAgIHByaXZhdGUgX2FyclBvcHVwTGF5ZXJJZHM6IEFycmF5PHN0cmluZz47XHJcbiAgICBwcml2YXRlIF9hcnJQb3B1cExheWVyTmFtZXM6IEFycmF5PHN0cmluZz47XHJcbiAgICBwcml2YXRlIF9hcnJQb3B1cE9sTGF5ZXJzOiBBcnJheTxvbC5sYXllci5WZWN0b3I+O1xyXG4gICAgcHJpdmF0ZSBfYXJyUG9wdXBDb250ZW50RnVuY3Rpb246IEFycmF5PHBvcHVwQ2FsbGJhY2s+O1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uTGF5ZXJzOiBBcnJheTxvbC5sYXllci5WZWN0b3I+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5pdGlvbiBmb3Igb3BlbmxheWVycyBzdHlsZSBmdW5jdGlvblxyXG4gICAgICogQGNhbGxiYWNrIG9sU3R5bGVGdW5jdGlvblxyXG4gICAgICogJnBhcmFtIGZlYXR1cmUgdGhlIG9wZW5sYXllcnMgdmVjdG9yIGZlYXR1cmVcclxuICAgICAqICRwYXJhbVxyXG4gICAgICovXHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIHBvcHVwIGNvbnN0cnVjdG9yXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCdtYXAgcG9wdXAnKTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cExheWVySWRzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcnMgPSBbXTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb24gPSBbXTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250YWluZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ29udGVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDbG9zZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVycyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVyTG9va3VwID0ge307XHJcbiAgICAgICAgdGhpcy5fbWFwQ2xpY2tGdW5jdGlvbnMgPSBbXTtcclxuXHJcbiAgICAgICAgLy9sZXQgYSA9IGZ1bmN0aW9uKCRqcXVlcnlDb250ZW50KXtjb25zb2xlLmxvZygkanF1ZXJ5Q29udGVudCl9O1xyXG4gICAgICAgIC8vdGhpcy5fcG9wdXBDaGFuZ2VkTG9va3VwID0geydhJzogYX07XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDaGFuZ2VkRnVuY3Rpb25zID0gW107XHJcbiAgICAgICAgdGhpcy5fZXNyaU1hcFNlcnZpY2VMYXllcnMgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5fcG9wdXBPcGVuID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDb29yZGluYXRlID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5fcGFzc1Rocm91Z2hMYXllckZlYXR1cmVBcnJheSA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IC0xO1xyXG4gICAgICAgIHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCA9IDA7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIHBvcHVwIGluaXRpYWxpemF0aW9uXHJcbiAgICAgKiBAcGFyYW0ge29sLk1hcH0gdGhlTWFwIC0gdGhlIG9sIG1hcFxyXG4gICAgICovXHJcbiAgICBpbml0KHRoZU1hcDogb2wuTWFwKSB7XHJcbiAgICAgICAgc3VwZXIuaW5pdCh0aGVNYXApO1xyXG5cclxuICAgICAgICBsZXQgJG1hcDtcclxuICAgICAgICBsZXQgdGFyZ2V0ID0gdGhpcy5tYXAuZ2V0VGFyZ2V0KCk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgICRtYXAgPSAkKCcjJyArIHRhcmdldCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAkbWFwID0gJCh0YXJnZXQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJG1hcC5hcHBlbmQoXHJcbiAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwib2wtcG9wdXBcIj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwib2wtcG9wdXAtY2xvc2VyXCI+WDwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+PC9kaXY+JyArXHJcbiAgICAgICAgICAgICc8L2Rpdj4nXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ29udGFpbmVyID0gJG1hcC5maW5kKCcub2wtcG9wdXAnKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250ZW50ID0gJG1hcC5maW5kKCcucG9wdXAtY29udGVudCcpO1xyXG4gICAgICAgIHRoaXMuXyRwb3B1cENsb3NlciA9ICRtYXAuZmluZCgnLm9sLXBvcHVwLWNsb3NlcicpO1xyXG5cclxuICAgICAgICBsZXQgX2Vhc2UgPSAobjogbnVtYmVyKTogbnVtYmVyID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG9sLmVhc2luZy5pbkFuZE91dChuKTtcclxuICAgICAgICB9O1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5ID0gbmV3IG9sLk92ZXJsYXkoe1xyXG4gICAgICAgICAgICBlbGVtZW50OiB0aGlzLl8kcG9wdXBDb250YWluZXJbMF0sXHJcbiAgICAgICAgICAgIGF1dG9QYW46IHRydWUsXHJcbiAgICAgICAgICAgIGF1dG9QYW5BbmltYXRpb246IHtcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyNTAsXHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IHRoZU1hcC5nZXRWaWV3KCkuZ2V0Q2VudGVyKCksXHJcbiAgICAgICAgICAgICAgICBlYXNpbmc6IF9lYXNlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWFwLmFkZE92ZXJsYXkodGhpcy5fcG9wdXBPdmVybGF5KTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ2xvc2VyLmNsaWNrKChldnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIGRpc3BsYXkgcG9wdXAgb24gY2xpY2tcclxuICAgICAgICB0aGlzLl9tYXAub24oJ3NpbmdsZWNsaWNrJywgKGV2dCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwQ29vcmRpbmF0ZSA9IGV2dFsnY29vcmRpbmF0ZSddO1xyXG5cclxuICAgICAgICAgICAgLy8gZXNyaSBtYXAgc2VydmljZSBsYXllcnNcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2VzcmlNYXBTZXJ2aWNlTGF5ZXJzLmxlbmd0aCA+IDApIHtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgcXVlcnlQYXJhbXMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZ2VvbWV0cnk6IGV2dFsnY29vcmRpbmF0ZSddLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgICAgICBnZW9tZXRyeVR5cGU6ICdlc3JpR2VvbWV0cnlQb2ludCcsXHJcbiAgICAgICAgICAgICAgICAgICAgbGF5ZXJzOiAnYWxsJyxcclxuICAgICAgICAgICAgICAgICAgICBzcjogdGhpcy5fbWFwLmdldFZpZXcoKS5nZXRQcm9qZWN0aW9uKCkuZ2V0Q29kZSgpLnNwbGl0KCc6JylbMV0sXHJcbiAgICAgICAgICAgICAgICAgICAgbWFwRXh0ZW50OiAodGhpcy5fbWFwLmdldFZpZXcoKS5jYWxjdWxhdGVFeHRlbnQodGhpcy5fbWFwLmdldFNpemUoKSkgYXMgbnVtYmVyW10pLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZURpc3BsYXk6ICh0aGlzLl9tYXAuZ2V0U2l6ZSgpIGFzIG51bWJlcltdKS5qb2luKCcsJykgKyAnLDk2JyxcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm5HZW9tZXRyeTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICB0b2xlcmFuY2U6IDE1LFxyXG4gICAgICAgICAgICAgICAgICAgIGY6ICdwanNvbidcclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgbCBvZiB0aGlzLl9lc3JpTWFwU2VydmljZUxheWVycykge1xyXG4gICAgICAgICAgICAgICAgICAgIGwuZ2V0UG9wdXBJbmZvKHF1ZXJ5UGFyYW1zKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IGxheWVyRmVhdHVyZU9iamVjdEFycmF5ID0gdGhpcy5fZmVhdHVyZXNBdFBpeGVsKGV2dFsncGl4ZWwnXSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID0gLTE7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxheWVyRmVhdHVyZU9iamVjdEFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZmVhdE9iaiA9IGxheWVyRmVhdHVyZU9iamVjdEFycmF5W2ldO1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCBwcm9wcyA9IGZlYXRPYmouZmVhdHVyZS5nZXRQcm9wZXJ0aWVzKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHBvcHVwQ29udGVudFJlc3BvbnNlID0gdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb25bZmVhdE9iai5sYXllckluZGV4XShwcm9wcywgdGhpcy5fJHBvcHVwQ29udGVudCk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy9za2lwIGlmIHJldHVybiB3YXMgZmFsc2VcclxuICAgICAgICAgICAgICAgIGlmIChwb3B1cENvbnRlbnRSZXNwb25zZSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL2NvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcG9wdXBDb250ZW50UmVzcG9uc2UgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICBmZWF0T2JqLnBvcHVwQ29udGVudCA9IHBvcHVwQ29udGVudFJlc3BvbnNlIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5LnB1c2goZmVhdE9iaik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGZlYXRPYmouc2VsZWN0aW9uTGF5ZXIuZ2V0U291cmNlKCkuYWRkRmVhdHVyZShmZWF0T2JqLmZlYXR1cmUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cENvbnRlbnRMZW5ndGggPSB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID0gLTE7XHJcblxyXG4gICAgICAgICAgICBsZXQgcG9wdXBIdG1sID0gJzxkaXYgY2xhc3M9XCJvbC1wb3B1cC1uYXZcIj4nO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzxzcGFuIGNsYXNzPVwicHJldmlvdXMtcG9wdXAgb2wtcG9wdXAtbmF2LWFycm93XCI+JiM5NjY0Ozwvc3Bhbj4nO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzxzcGFuIGNsYXNzPVwibmV4dC1wb3B1cCBvbC1wb3B1cC1uYXYtYXJyb3dcIj4mIzk2NTQ7PC9zcGFuPic7XHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSBgPHNwYW4gY2xhc3M9XCJjdXJyZW50LXBvcHVwLWl0ZW0tbnVtYmVyXCIgc3R5bGU9XCJmb250LXdlaWdodDogYm9sZDtcIj48L3NwYW4+YDtcclxuICAgICAgICAgICAgcG9wdXBIdG1sICs9IGA8c3Bhbj4mbmJzcDtvZiZuYnNwOzwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gYDxzcGFuIGNsYXNzPVwicG9wdXAtY29udGVudC1sZW5ndGhcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkO1wiPiR7dGhpcy5fcG9wdXBDb250ZW50TGVuZ3RofTwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gYDxzcGFuPiZuYnNwOyZuYnNwOy0mbmJzcDsmbmJzcDs8L3NwYW4+YDtcclxuICAgICAgICAgICAgcG9wdXBIdG1sICs9IGA8c3BhbiBjbGFzcz1cImN1cnJlbnQtcG9wdXAtbGF5ZXItbmFtZVwiPjwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzwvZGl2Pic7XHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSAnPGRpdiBjbGFzcz1cIm9sLXBvcHVwLWlubmVyXCI+JztcclxuXHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSAnPC9kaXY+JztcclxuXHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuaHRtbChwb3B1cEh0bWwpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fJHBvcHVwQ29udGVudC5maW5kKCcucHJldmlvdXMtcG9wdXAnKS5jbGljaygoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4LS07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyRmVhdFNlbGVjdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGxldCBuZXh0UG9wdXAgPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5uZXh0LXBvcHVwJyk7XHJcblxyXG4gICAgICAgICAgICBuZXh0UG9wdXAuY2xpY2soKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCA9PSAxICYmIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID09IHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IDA7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyRmVhdFNlbGVjdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgbmV4dFBvcHVwLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9wb3B1cE92ZXJsYXkuc2V0UG9zaXRpb24odGhpcy5fcG9wdXBDb29yZGluYXRlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuc2Nyb2xsVG9wKDApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcG9wdXBPcGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvL2NoYW5nZSBtb3VzZSBjdXJzb3Igd2hlbiBvdmVyIG1hcmtlclxyXG4gICAgICAgIHRoaXMuX21hcC5vbigncG9pbnRlcm1vdmUnLCAoZXZ0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChldnRbJ2RyYWdnaW5nJ10pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgcGl4ZWwgPSB0aGlzLm1hcC5nZXRFdmVudFBpeGVsKGV2dFsnb3JpZ2luYWxFdmVudCddKTtcclxuICAgICAgICAgICAgbGV0IGhpdCA9IHRoaXMubWFwLmhhc0ZlYXR1cmVBdFBpeGVsKHBpeGVsLCAobHlyQ2FuZGlkYXRlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBvbExheWVyIG9mIHRoaXMuX2FyclBvcHVwT2xMYXllcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobHlyQ2FuZGlkYXRlID09IG9sTGF5ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGxldCBtYXBFbGVtZW50ID0gdGhpcy5tYXAuZ2V0VGFyZ2V0RWxlbWVudCgpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICBtYXBFbGVtZW50LnN0eWxlLmN1cnNvciA9IGhpdCA/ICdwb2ludGVyJyA6ICcnO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGhlbHBlciB0byBzZWxlY3QgZmVhdHVyZXNcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIF90cmlnZ2VyRmVhdFNlbGVjdCgpIHtcclxuICAgICAgICBsZXQgJGN1cnJlbnRQb3B1cEl0ZW1OdW1iZXIgPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5jdXJyZW50LXBvcHVwLWl0ZW0tbnVtYmVyJyk7XHJcbiAgICAgICAgbGV0ICRpbm5lclBvcHVwID0gdGhpcy5fJHBvcHVwQ29udGVudC5maW5kKCcub2wtcG9wdXAtaW5uZXInKTtcclxuICAgICAgICBsZXQgJGxheWVyTmFtZVNwYW4gPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5jdXJyZW50LXBvcHVwLWxheWVyLW5hbWUnKTtcclxuICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICAgICAgbGV0IGx5ckZlYXRPYmogPSB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5W3RoaXMuX2N1cnJlbnRQb3B1cEluZGV4XTtcclxuICAgICAgICAkY3VycmVudFBvcHVwSXRlbU51bWJlci5odG1sKCh0aGlzLl9jdXJyZW50UG9wdXBJbmRleCArIDEpLnRvRml4ZWQoKSk7XHJcbiAgICAgICAgJGxheWVyTmFtZVNwYW4uaHRtbChseXJGZWF0T2JqLmxheWVyTmFtZSk7XHJcbiAgICAgICAgJGlubmVyUG9wdXAuaHRtbChseXJGZWF0T2JqLnBvcHVwQ29udGVudCk7XHJcbiAgICAgICAgbHlyRmVhdE9iai5zZWxlY3Rpb25MYXllci5nZXRTb3VyY2UoKS5hZGRGZWF0dXJlKGx5ckZlYXRPYmouZmVhdHVyZSk7XHJcbiAgICAgICAgZm9yIChsZXQgZiBvZiB0aGlzLl9wb3B1cENoYW5nZWRGdW5jdGlvbnMpIHtcclxuICAgICAgICAgICAgZih0aGlzLl8kcG9wdXBDb250ZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBmZWF0dXJlIC0gdGhlIG9sIGZlYXR1cmVcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJFc3JpTWFwU2VydmVyfSBseXIgLSB0aGUgbWFwIHNlcnZlciBsYXllclxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHBvcHVwQ29udGVudCAtIHBvcHVwIGNvbnRlbnRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBlc3JpTmFtZSAtIGVzcmkgbGF5ZXIgbmFtZVxyXG4gICAgICovXHJcbiAgICBhZGRNYXBTZXJ2aWNlUG9wdXBDb250ZW50KGZlYXR1cmU6IG9sLkZlYXR1cmUsIGx5cjogTGF5ZXJFc3JpTWFwU2VydmVyLCBwb3B1cENvbnRlbnQ6IHN0cmluZywgZXNyaU5hbWU6IHN0cmluZykge1xyXG5cclxuICAgICAgICBsZXQgZmVhdExheWVyT2JqZWN0ID0gbmV3IEZlYXR1cmVMYXllclByb3BlcnRpZXMoXHJcbiAgICAgICAgICAgIGZlYXR1cmUsIGx5ciwgdGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoLCB0aGlzLl9zZWxlY3Rpb25MYXllckxvb2t1cFtseXIuaWRdLCBlc3JpTmFtZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgZmVhdExheWVyT2JqZWN0LnBvcHVwQ29udGVudCA9IHBvcHVwQ29udGVudDtcclxuXHJcbiAgICAgICAgdGhpcy5fcGFzc1Rocm91Z2hMYXllckZlYXR1cmVBcnJheS5wdXNoKGZlYXRMYXllck9iamVjdCk7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoKys7XHJcblxyXG4gICAgICAgICQoJy5wb3B1cC1jb250ZW50LWxlbmd0aCcpLmh0bWwodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoLnRvRml4ZWQoKSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fcG9wdXBPcGVuKSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuZmluZCgnLm5leHQtcG9wdXAnKS50cmlnZ2VyKCdjbGljaycpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5LnNldFBvc2l0aW9uKHRoaXMuX3BvcHVwQ29vcmRpbmF0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuc2Nyb2xsVG9wKDApO1xyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cE9wZW4gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gIHBpeGVsIC0gdGhlIG9sIHBpeGVsXHJcbiAgICAgKiBAcmV0dXJucyAgZmVhdHVyZSBsYXllciBwcm9wZXJ0aWVzXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBfZmVhdHVyZXNBdFBpeGVsKHBpeGVsOiBvbC5QaXhlbCk6IEFycmF5PEZlYXR1cmVMYXllclByb3BlcnRpZXM+IHtcclxuICAgICAgICBsZXQgbGF5ZXJGZWF0dXJlT2JqZWN0QXJyYXkgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5tYXAuZm9yRWFjaEZlYXR1cmVBdFBpeGVsKHBpeGVsLCAoZmVhdHVyZTogb2wuRmVhdHVyZSwgbGF5ZXI6IG9sLmxheWVyLlZlY3RvcikgPT4ge1xyXG4gICAgICAgICAgICBsZXQgbHlySW5kZXggPSB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzLmluZGV4T2YobGF5ZXIpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGx5ckluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIGxheWVyRmVhdHVyZU9iamVjdEFycmF5LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAgbmV3IEZlYXR1cmVMYXllclByb3BlcnRpZXMoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZlYXR1cmUsIHRoaXMuX2FyclBvcHVwTGF5ZXJzW2x5ckluZGV4XSwgbHlySW5kZXgsIHRoaXMuX3NlbGVjdGlvbkxheWVyc1tseXJJbmRleF0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gbGF5ZXJGZWF0dXJlT2JqZWN0QXJyYXk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VQb3B1cCgpIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICB0aGlzLl9wb3B1cE9wZW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9wb3B1cE92ZXJsYXkuc2V0UG9zaXRpb24odW5kZWZpbmVkKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDbG9zZXJbMF0uYmx1cigpO1xyXG4gICAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24oKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250ZW50Lmh0bWwoJycpO1xyXG5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY2hnRnVuY3Rpb24gLSBwb3B1cCBjaGFuZ2UgZnVuY3Rpb25cclxuICAgICAqL1xyXG4gICAgYWRkUG9wdXBDaGFuZ2VkRnVuY3Rpb24oY2hnRnVuY3Rpb246IHBvcHVwQ2hhbmdlZEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDaGFuZ2VkRnVuY3Rpb25zLnB1c2goY2hnRnVuY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJCYXNlfCp9IGx5ciAtIHRoZSBsYXllciBiZWluZyBhY3RlZCBvblxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtzZWxlY3Rpb25TdHlsZT17fV0gdGhlIHNlbGVjdGlvbiBzdHlsZSBjb25maWd1cmF0aW9uXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3NlbGVjdGlvblN0eWxlLmNvbG9yPXJnYmEoMjU1LDE3MCwwLDAuNSldIHRoZSBzZWxlY3Rpb24gY29sb3JcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc2VsZWN0aW9uU3R5bGUud2lkdGg9MTBdIHRoZSBzZWxlY3Rpb24gd2lkdGggZm9yIGxpbmVhciBmZWF0dXJlc1xyXG4gICAgICogQHBhcmFtIHtvYmplY3R8ZnVuY3Rpb259IFtzZWxlY3Rpb25TdHlsZS5vbFN0eWxlPXVuZGVmaW5lZF0gYW4gb3BlbmxheWVycyBzdHlsZSBvYmplY3Qgb3IgZnVuY3Rpb25cclxuICAgICAqIEByZXR1cm5zICB0aGUgbmV3IHNlbGVjdGlvbiBsYXllclxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgX2FkZFBvcHVwTGF5ZXIobHlyOiBMYXllckJhc2VWZWN0b3IsIHNlbGVjdGlvblN0eWxlOiB7Y29sb3I/OiBzdHJpbmcsIHdpZHRoPzogbnVtYmVyLCBvbFN0eWxlPzogb2wuc3R5bGUuU3R5bGV9KTogb2wubGF5ZXIuVmVjdG9yIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuXHJcbiAgICAgICAgc2VsZWN0aW9uU3R5bGUgPSBzZWxlY3Rpb25TdHlsZSB8fCB7fTtcclxuICAgICAgICBzZWxlY3Rpb25TdHlsZS5jb2xvciA9IHNlbGVjdGlvblN0eWxlLmNvbG9yIHx8ICdyZ2JhKDI1NSwxNzAsMCwwLjUpJztcclxuICAgICAgICBzZWxlY3Rpb25TdHlsZS53aWR0aCA9IHNlbGVjdGlvblN0eWxlLndpZHRoIHx8IDEwO1xyXG5cclxuICAgICAgICBsZXQgdGhlU3R5bGU7XHJcblxyXG4gICAgICAgIGlmIChzZWxlY3Rpb25TdHlsZS5vbFN0eWxlKSB7XHJcbiAgICAgICAgICAgIHRoZVN0eWxlID0gc2VsZWN0aW9uU3R5bGUub2xTdHlsZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGVTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICBzdHJva2U6IG5ldyBvbC5zdHlsZS5TdHJva2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzZWxlY3Rpb25TdHlsZS5jb2xvcixcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogc2VsZWN0aW9uU3R5bGUud2lkdGhcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5DaXJjbGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHJhZGl1czogNyxcclxuICAgICAgICAgICAgICAgICAgICBmaWxsOiBuZXcgb2wuc3R5bGUuRmlsbCh7Y29sb3I6IHNlbGVjdGlvblN0eWxlLmNvbG9yfSksXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiBuZXcgb2wuc3R5bGUuU3Ryb2tlKHtjb2xvcjogc2VsZWN0aW9uU3R5bGUuY29sb3IsIHdpZHRoOiAxfSlcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgZmlsbDogbmV3IG9sLnN0eWxlLkZpbGwoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzZWxlY3Rpb25TdHlsZS5jb2xvclxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgc2VsZWN0aW9uTGF5ZXIgPSBuZXcgb2wubGF5ZXIuVmVjdG9yKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IG5ldyBvbC5zb3VyY2UuVmVjdG9yKCksXHJcbiAgICAgICAgICAgICAgICBzdHlsZTogdGhlU3R5bGVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHNlbGVjdGlvbkxheWVyLnNldFpJbmRleCgxMDApO1xyXG5cclxuICAgICAgICB0aGlzLl9zZWxlY3Rpb25MYXllcnMucHVzaChzZWxlY3Rpb25MYXllcik7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uTGF5ZXJMb29rdXBbbHlyLmlkXSA9IHNlbGVjdGlvbkxheWVyO1xyXG4gICAgICAgIHRoaXMubWFwLmFkZExheWVyKHNlbGVjdGlvbkxheWVyKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHNlbGVjdGlvbkxheWVyO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBwb3B1cCB0byB0aGUgbWFwXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyQmFzZXwqfSBseXIgVGhlIGxheWVyIHRoYXQgdGhlIHBvcHVwIHdpdGggYWN0IG9uXHJcbiAgICAgKiBAcGFyYW0ge3BvcHVwQ2FsbGJhY2t9IHBvcHVwQ29udGVudEZ1bmN0aW9uIC0gcG9wdXAgY29udGVudCBmdW5jdGlvbiB0aGF0IG1ha2VzIHBvcHVwIGluZm9cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbc2VsZWN0aW9uU3R5bGU9e31dIHRoZSBzZWxlY3Rpb24gc3R5bGUgY29uZmlndXJhdGlvblxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzZWxlY3Rpb25TdHlsZS5jb2xvcj1yZ2JhKDI1NSwxNzAsMCwwLjUpXSB0aGUgc2VsZWN0aW9uIGNvbG9yXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3NlbGVjdGlvblN0eWxlLndpZHRoPTEwXSB0aGUgc2VsZWN0aW9uIHdpZHRoIGZvciBsaW5lYXIgZmVhdHVyZXNcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fGZ1bmN0aW9ufSBbc2VsZWN0aW9uU3R5bGUub2xTdHlsZT11bmRlZmluZWRdIGFuIG9wZW5sYXllcnMgc3R5bGUgb2JqZWN0IG9yIGZ1bmN0aW9uXHJcbiAgICAgKiBAcmV0dXJucyB7b2JqZWN0fSBhIHJlZmVyZW5jZSB0byB0aGUgb2wgc2VsZWN0aW9uIGxheWVyXHJcbiAgICAgKi9cclxuICAgIGFkZFZlY3RvclBvcHVwKGx5cjogTGF5ZXJCYXNlVmVjdG9yLCBwb3B1cENvbnRlbnRGdW5jdGlvbjogcG9wdXBDYWxsYmFjayxcclxuICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblN0eWxlPzoge2NvbG9yPzogc3RyaW5nLCB3aWR0aD86IG51bWJlciwgb2xTdHlsZT86IG9sLnN0eWxlLlN0eWxlfSkge1xyXG4gICAgICAgIGxldCBzZWxlY3Rpb25MYXllciA9IHRoaXMuX2FkZFBvcHVwTGF5ZXIobHlyLCBzZWxlY3Rpb25TdHlsZSk7XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcklkcy5wdXNoKGx5ci5pZCk7XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzLnB1c2gobHlyLm5hbWUpO1xyXG4gICAgICAgIHRoaXMuX2FyclBvcHVwTGF5ZXJzLnB1c2gobHlyKTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzLnB1c2gobHlyLm9sTGF5ZXIpO1xyXG4gICAgICAgIHRoaXMuX2FyclBvcHVwQ29udGVudEZ1bmN0aW9uLnB1c2gocG9wdXBDb250ZW50RnVuY3Rpb24pO1xyXG5cclxuICAgICAgICByZXR1cm4gc2VsZWN0aW9uTGF5ZXI7XHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyQmFzZX0gbHlyIC0gbGF5ZXJcclxuICAgICAqL1xyXG4gICAgcmVtb3ZlVmVjdG9yUG9wdXAobHlyKSB7XHJcbiAgICAgICAgbGV0IGlkeCA9IHRoaXMuX2FyclBvcHVwTGF5ZXJJZHMuaW5kZXhPZihseXIuaWQpO1xyXG5cclxuICAgICAgICBpZiAoaWR4ID4gLTEpIHtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcklkcy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzLnNwbGljZShpZHgsIDEpO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJQb3B1cExheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBPbExheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb24uc3BsaWNlKGlkeCwgMSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NlbGVjdGlvbkxheWVyTG9va3VwW2x5ci5pZF07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJFc3JpTWFwU2VydmVyfSBseXIgLSBtYXAgc2VydmVyIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW3NlbGVjdGlvblN0eWxlPXt9XSB0aGUgc2VsZWN0aW9uIHN0eWxlIGNvbmZpZ3VyYXRpb25cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc2VsZWN0aW9uU3R5bGUuY29sb3I9cmdiYSgyNTUsMTcwLDAsMC41KV0gdGhlIHNlbGVjdGlvbiBjb2xvclxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzZWxlY3Rpb25TdHlsZS53aWR0aD0xMF0gdGhlIHNlbGVjdGlvbiB3aWR0aCBmb3IgbGluZWFyIGZlYXR1cmVzXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdHxmdW5jdGlvbn0gW3NlbGVjdGlvblN0eWxlLm9sU3R5bGU9dW5kZWZpbmVkXSBhbiBvcGVubGF5ZXJzIHN0eWxlIG9iamVjdCBvciBmdW5jdGlvblxyXG4gICAgICogQHJldHVybnMge29iamVjdH0gYSByZWZlcmVuY2UgdG8gdGhlIG9sIHNlbGVjdGlvbiBsYXllclxyXG4gICAgICovXHJcbiAgICBhZGRNYXBTZXJ2aWNlUG9wdXAobHlyLCBzZWxlY3Rpb25TdHlsZT86IG9sLnN0eWxlLlN0eWxlfEFycmF5PG9sLnN0eWxlLlN0eWxlPnxvbC5TdHlsZUZ1bmN0aW9uKSB7XHJcbiAgICAgICAgbGV0IHNlbGVjdGlvbkxheWVyID0gdGhpcy5fYWRkUG9wdXBMYXllcihseXIsIHNlbGVjdGlvblN0eWxlKTtcclxuICAgICAgICB0aGlzLl9lc3JpTWFwU2VydmljZUxheWVycy5wdXNoKGx5cik7XHJcblxyXG4gICAgICAgIHJldHVybiBzZWxlY3Rpb25MYXllcjtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhclNlbGVjdGlvbigpIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3NlbGVjdGlvbkxheWVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25MYXllcnNbaV0uZ2V0U291cmNlKCkuY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgZiBvZiB0aGlzLl9tYXBDbGlja0Z1bmN0aW9ucykge1xyXG4gICAgICAgICAgICBmKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBtYXAgaXMgY2xpY2tlZCBidXQgYmVmb3JlIGFueSBwb3B1cHMgYXJlIGltcGxlbWVudGVkXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIC0gdGhlIG1hcCBjbGljayBmdW5jdGlvblxyXG4gICAgICovXHJcbiAgICBhZGRNYXBDbGlja0Z1bmN0aW9uKGZ1bmM6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fbWFwQ2xpY2tGdW5jdGlvbnMucHVzaChmdW5jKTtcclxuICAgIH1cclxufVxyXG5ubS5NYXBQb3B1cENscyA9IE1hcFBvcHVwQ2xzO1xyXG5leHBvcnQgZGVmYXVsdCBNYXBQb3B1cENscztcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapPopupCls.ts\n// module id = 12\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 12/15/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('olHelpers');\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\nfunction quickMapBase(options) {\r\n options = options || {};\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 var $mapDiv = $('#' + options.divId);\r\n $mapDiv.css('position', 'relative');\r\n var 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 var 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 var 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 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 if (options.zoom < 0 || options.zoom > 28) {\r\n throw 'zoom out of range';\r\n }\r\n if (options.center.x >= -180 && options.center.x <= 180 && options.center.y >= -90 && options.center.y <= 90) {\r\n var p = new ol.geom.Point([options.center.x, options.center.y]);\r\n new ol.proj.Projection({ code: \"EPSG:4326\" });\r\n p.transform(new ol.proj.Projection({ code: \"EPSG:4326\" }), new ol.proj.Projection({ code: \"EPSG:3857\" }));\r\n var coordinates = p.getCoordinates();\r\n options.center.x = coordinates[0];\r\n options.center.y = coordinates[1];\r\n }\r\n var controls = ol.control.defaults({\r\n attributionOptions: { collapsible: false }\r\n });\r\n var 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 var map = new ol.Map({\r\n layers: [osmLayer],\r\n target: options.divId,\r\n controls: controls,\r\n view: view\r\n });\r\n if (options.fullScreen) {\r\n map.addControl(new ol.control.FullScreen({}));\r\n }\r\n return map;\r\n}\r\nexports.quickMapBase = quickMapBase;\r\nnm.quickMapBase = quickMapBase;\r\nexports.default = quickMapBase;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2tNYXBCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicXVpY2tNYXBCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFFSCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBQ2pDLDBCQUE2QjtBQUM3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBWWhDOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILHNCQUE2QixPQUF5QjtJQUNsRCxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQXFCLENBQUM7SUFDM0MsT0FBTyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztJQUN2QyxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBQyxDQUFDO0lBQzlELE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxPQUFPLENBQUMsSUFBSSxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNsRSxPQUFPLENBQUMsWUFBWSxHQUFHLE9BQU8sT0FBTyxDQUFDLFlBQVksSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDOUYsT0FBTyxDQUFDLFVBQVUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxVQUFVLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBR3pGLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXBDLElBQUksUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVB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RUgsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDckIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUM7QUFDZixDQUFDO0FBNUVELG9DQTRFQztBQUVELEVBQUUsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0FBQy9CLGtCQUFlLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzE1LzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnb2xIZWxwZXJzJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIHF1aWNrTWFwT3B0aW9ucyB7XHJcbiAgICBkaXZJZD86IHN0cmluZztcclxuICAgIGNlbnRlcj86IHt4OiBudW1iZXIsIHk6IG51bWJlcn07XHJcbiAgICB6b29tPzogbnVtYmVyO1xyXG4gICAgbWluWm9vbT86IG51bWJlcjtcclxuICAgIG1heFpvb20/OiBudW1iZXI7XHJcbiAgICBiYXNlU3dpdGNoZXI/OiBib29sZWFuO1xyXG4gICAgZnVsbFNjcmVlbj86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXRzIHVwIGEgbWFwIHdpdGggc29tZSBkZWZhdWx0IHBhcmFtZXRlcnMgYW5kIGluaXRpYWxpemVzXHJcbiAqIG1hcE1vdmUgYW5kIG1hcFBvcHVwXHJcbiAqXHJcbiAqIEBwYXJhbSBbb3B0aW9ucz17fV0gY29uZmlnIG9wdGlvbnNcclxuICogQHBhcmFtIFtvcHRpb25zLmRpdklkPW1hcF0gbWFwIGRpdiBpZFxyXG4gKiBAcGFyYW0gW29wdGlvbnMuY2VudGVyPXt9XSBjZW50ZXIgY29uZmlnIG9iamVjdFxyXG4gKiBAcGFyYW0gW29wdGlvbnMuY2VudGVyLng9LTEwMDE4Mzc4XSBjZW50ZXIgeCwgd2ViIG1lcmNhdG9yIHggb3IgbG9uXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5jZW50ZXIueT01NTc0OTEwXSBjZW50ZXIgeSwgd2ViIG1lcmNhdG9yIHkgb3IgbGF0XHJcbiAqIEBwYXJhbSBbb3B0aW9ucy56b29tPTddIHpvb20gbGV2ZWxcclxuICogQHBhcmFtIFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSBtaW4gem9vbVxyXG4gKiBAcGFyYW0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIG1heCB6b29tXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5iYXNlU3dpdGNoZXI9dHJ1ZV0gaWYgYWRkIGJhc2UgbWFwIHN3aXRjaGVyXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5mdWxsU2NyZWVuPWZhbHNlXSBpZiBhZGQgYmFzZSBtYXAgc3dpdGNoZXJcclxuICogQHJldHVybnMgdGhlIG9sIG1hcFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHF1aWNrTWFwQmFzZShvcHRpb25zPzogcXVpY2tNYXBPcHRpb25zKTogb2wuTWFwIHtcclxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9IGFzIHF1aWNrTWFwT3B0aW9ucztcclxuICAgIG9wdGlvbnMuZGl2SWQgPSBvcHRpb25zLmRpdklkIHx8ICdtYXAnO1xyXG4gICAgb3B0aW9ucy5jZW50ZXIgPSBvcHRpb25zLmNlbnRlciB8fCB7eDogLTEwMDE4Mzc4LCB5OiA1NTc0OTEwfTtcclxuICAgIG9wdGlvbnMuem9vbSA9IHR5cGVvZiBvcHRpb25zLnpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLnpvb20gOiA3O1xyXG4gICAgb3B0aW9ucy5iYXNlU3dpdGNoZXIgPSB0eXBlb2Ygb3B0aW9ucy5iYXNlU3dpdGNoZXIgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5iYXNlU3dpdGNoZXIgOiB0cnVlO1xyXG4gICAgb3B0aW9ucy5mdWxsU2NyZWVuID0gdHlwZW9mIG9wdGlvbnMuZnVsbFNjcmVlbiA9PSAnYm9vbGVhbicgPyBvcHRpb25zLmZ1bGxTY3JlZW4gOiBmYWxzZTtcclxuXHJcblxyXG4gICAgbGV0ICRtYXBEaXYgPSAkKCcjJyArIG9wdGlvbnMuZGl2SWQpO1xyXG4gICAgJG1hcERpdi5jc3MoJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XHJcblxyXG4gICAgbGV0IG9zbUxheWVyID0gbmV3IG9sLmxheWVyLlRpbGUoe3NvdXJjZTogbmV3IG9sLnNvdXJjZS5PU00oKX0pO1xyXG4gICAgLy8gbGV0IHNhdExheWVyID0gbmV3IG9sLmxheWVyLlRpbGUoe3Zpc2libGU6IGZhbHNlLCBzb3VyY2U6IG5ldyBvbC5zb3VyY2UuTWFwUXVlc3Qoe2xheWVyOiAnc2F0J30pfSk7XHJcblxyXG4gICAgbGV0IG9zbUNzcyA9IFwidXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURBQUFBQXdDQU1BQUFCZzNBbTFBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFNQVVFeFVSUUFBQURRMU5EazVPVVJGUkV0TFMxRkhTRmxaV0dKUlZHSmlZV2RtWld4c2JIUm1hWEJwYW5OMGMzVjBkSHA1ZVg1K2ZJVnpkNEYzZWVWMGp1ZDVqdVo4azRhSGhvbUhob3lHaDVlR2o1T1ZsSmlWbFppWWw1cVptSnlkbktPVGxhS1ptcUtkbmFPaW9hcXFxS3V6c2JPdnJyU3lzTGEzdGJXNHVMbTZ1YjI3dWIrL3ZiR1h3YkNad2JDZ3hMS2x4ck9xeUxTdHliTzN5clN4eXJXenpiVzJ5N2ExemJLNHk3VzZ6Ylc4eTc2MHlyVEF6YlRGenJQS3pyTE96clRKenJUT3pyN0N3YlhDMExYSzBMVE8wTDNJMGJQUXo3VFF6N1BTMGJYUTBMblIwYnJXMWJ6VDByN1UwNzdWMUx6YzJkcU5xdGVVc2R5WHNjYXF1dU9IbmVhR211ZUhuT2VKbnVpQmxlaUtuK2VOb09pT29PV1VwT2lSbytpU3BlaVVwZXFZcHVtYXFPbWRyUFN5bmVtZ3J1U3F0T21pc09tbHN1dXF0ZXF1dU9XMXZPdXh1K3V4dk9xMXZlK3h2UEswcHZXM28vVzVwZk81cXZTN3FmQ3d2TU91d2MyL3dOZW54Tnl5ek5lLzBOcTMxTnE1MWR5NzJPeTN3T3U0d091K3hleTR3Tys2eE8yK3hmVEFyL1RDc3ZmRnRQSEx2dlRKdU1QRHdNZkh4Y1hLeWMzRHhNdkZ5TXZMeU0zUHpjRFYwOERWMU1UWDFjYlkxczdYMXNqWjFzcmEyTW5kM003YjJjN2MydGZIMXRuQjF0N0YyZDdNMjlmWDF0TFkxdERkMnRIZTNOVGYzTm5TMTlyWjF0dmEyTm5mM3QzZDI4cmgzdFhnM05uaDN0emozOTNrMzluaTRON2s0TjduNXVYRHlPZkx6K3pBeHUzQ3lPekV5ZXpLemVESjNlTE0zdXZQMHUzUDBlUGYyKzdSMHU3UTF1L1UwKzdVMWV6YzArN2EyZS9kMiszZjN2YkZ6dkxPd2ZITjBQUFF3L1RVeC9MV3l2TFl6UERRMWZQZTB1YmM0dnZlNHVIaDMrbmgzKy9oMnUvaDN2SGoydkhsM3VIbTRlVG40dURwNWVibzQrWG81T0RxNmVicTZPVHY2K25sNCsvajRPN2w0ZTduNXVqcDQrbnA1T3pxNWU3czV1cnQ2Tzd0Nk9ydzZ1N3g2dTN4N3ZQajVQRGw0ZkRvNHZEcTVmRHQ1dkR1NlBEdjdQVHY2ZkR4NnZIeDdmSDE3Zlh3NmZYeTdmYjA3L2J6OGZUMTh2bjM4dnIzOWZyNDgvcjU5UHI2K1AzKysvLysvZ0FBQUxOVFNrMEFBQUVBZEZKT1UvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vd0JUOXdjbEFBQUFDWEJJV1hNQUFBN0RBQUFPd3dISGI2aGtBQUFBR0hSRldIUlRiMlowZDJGeVpRQndZV2x1ZEM1dVpYUWdOQzR3TGpsc00zNU9BQUFGTkVsRVFWUklTMVZWQ1p4VlV4aS85bDBVSVVUMmJNblk0M2JWSTJjMFkwMWtTV0lhUzBqMkpFdGtONDFwaW9tWnJQUEtRMmFRN0pLSW1PWmxubTI0OTNUSnpEdWZ1VTFaaSt2L2ZlZSttWi8vNzkzdm5QT2Q3enZmZXM1ekRCRVprQkJqQWNJamIrSWlvdHFnZGhhdDhBTUswdmw3L1I5TjdHaVd0c2hxSXIrRVo1Z1lLaWJ5VXNYWTFsL21mRnBzc3ZVbFdRMEZrVTNneTQrUkIvK2t3WWNPOHBSU25sZGNPVS9yMmxBSEFSU3drMk9SZ0VtT2RDMUVzdVJpWVNxTVB3d3JvTUlyYVprNVYyZllKUWpDS2ZaclJtaDNnU0FaaTJpNGI3d1N5bFd1OEVxWndTNTlKa0ZVYVc5NkpiTlNjK0NFVW10NHJvcnd1Wm1XZERhb2MrdVpFVHVRbFRDVTV4WXpSN211VW5WVVZvK0JjUmhyZS9Wd1VwYXNnSndoSDdKa1lJWUEwc054aG1Dd1VLK2x3NnZDS0JaZWh3MDFkRWl5dzRRNGFFMFo0YWhEaEthRlFzR25KMkJncUtvVEJzTmpGeTBTbFc2d2hSQVpUZG04REJKbWtCWmhEaTFqNHhKUUJrNnl3cldVVHltYUN4YWM4bFJPY2RhdVJHelFTTnRBN0VIVVloWHlFd2hoZ2pGVXFSdU8rcmF1aEYxYXdGcHpDc213VWJqSUZCUjB1MWJLdHlHcHVsVy9IL2NWVnpreUdhSVdUSVI5cEZBVjZHSzJnUE1YTVg4Z1BrOXp6eFhnSTFraW1jQWx0RVlyK2NqaW8xaW1sS3BFYTlyT2lwTG0rcCtDWjZCdy8vcWQxL2YvTytHd014YlNMcHlvWkVjd2t5aDJqSWtzKzNobWRkMmpXVXc0c2N4Tnlzbkh4VTduU3NwVFJjSmpDWkdMM0lzanNZSk1NZzVtd2d4N2dhSU9MQkZDb2dBZ0JCb05hOXcrREU2SStCczdGVGd3d3JKYkhqV0RncFlvMkt3dEJUY1lFRHVsb0M5Z2VRdytrMlJHblBHcFRhT2xxN0FTK1lJQ1V6NERaVmFYMlRpTkRodVlmVHRZNGdlTGkwSW9DbTNYY2N3TTloeDRrVTI4U3RRRWxqRHMzWkVwRkdBKzhkS3pMbVY5eW1Jd0Y1Rk9HbjJHZEpNOEtMSERKYlh5aVlWTUc5TVJUTGlYR0dnMlFLYXhNM2toUFNScndNOXpFSWFyZHhVMncvRWlBMGdPZVlLSHpEUjBWNy9RR1YzbEtJQTlrdHJEQXJ4TzNnZEErazZTS29CaVZ3Y203TmpaYjkrSG56dGcyODJUdUhWWjlMT0lTRk50OU1neUNldFpWY3pTeG55RGJsMTdQZW5xNm1xcGcxSWhSYUVPMmFWTFVPNC9yMTdIOHRUdjZmMTNoNzFkZHV2WkkzWSt1TWRXa3NOU2F1TG92Snc1aHNxaVBJVXZ0MGt1Ny9pQmVVUjNza3Ntb21ZV3RSYkFqYmlMZnYybFg5L1Y3TFZHNHVZblVaWGhRN2YyT1BDWkV4OXdyWVdUY2VQRVFxUEVNTDhwbDRtTWRyL2psWGx2SGlSaUoyK01TVEZZNFRUU1lTdHV2ejJSL0pYaCtQUGVHWG0wNTVKKzMvWURXdU51M1IzREFyUHV0eWcwWmd5a01WRFU5TmRtMjIrd1lhbHIycnNlNDhDbnNUSUZjTW43M3ZmaE5ya3R4MUVVY1puUHY2YWgzWXk1Y0RUUmRCRW9Hb0JlYWg3MWRxRnlqWkRKTGtXazNOM3Y0dXVrdHNzaldwemNpTVB4UWVIajhuTUt6Y0d1QjB0QXl6RmhkQ0tPWVd2NEh3T1FWd0l4TEc5OWE2dXZIM3NKQ3lPM2grazRFWitHNyt4ajVmNFhYa3NvYUdyZE1SelNjOEFSQTgrY2RPdWsyeDZmZmZOTnQ1eCtSbzFvbVBsclQvQ1FEbGNObHB4NE5CSVdYaGt4N1kzWnAzb2ZOUjdVdjg5T20vYmVXMFRMSXluSHYzdnMxVnNPRnBTV1NYdmZ1UFVmOUJyUkZ5eGdYZEhvS0puUUZlZ1BPb3Z2eno1OW50cnp5ZTI0MGlnOFVRM2xESTJWcXdhZ3JLSVFjTFhORkwzd2dsTjJPSGRCUTYvdkkza0VORFZCd1JiM2sxWHRjekZialduNEV6TVlpN0NGMzEyOStKVFl1UlNkckd1UzkyZzVkcHFuNnFYb0pRczV4bUw4cCtXdDRoTGJ0MG14Mk9MTlpSMmJiUHk4ekpOUUdGTS9mL0NmWFpla1JZRmpHQ1dqSUpwTStXaUN6R0JQV0hob3lhQXNqUlQvQjJHeTV5ellKa3dVQUFBQUFFbEZUa1N1UW1DQycpXCI7XHJcbiAgICBsZXQgYWVyaWFsQ3NzID0gXCJ1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBREFBQUFBd0NBTUFBQUJnM0FtMUFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQU1BVUV4VVJRQUxCZ0lNRFFnT0J3UU9FUWNUQndVU0N3b1ZEQXdkQnc4WkRnVVJFd1lVR0FZWkZRWVpHZ2tURlFvVkdRc1pGQXdaSEJNZURoSWJGQkViSEF3V0lBNGJJUkVjSVE0aENRd2pGdzRsSEJna0RCOHNEeFVpRXhJaUdoQW9HeG9oRlJzaEdSb3JIUWNyS1FzaUlRd21LZ29vSkEwcEtRODFKdzh5TFJNaUl4SW1LeFVySlJFdUtoc2xKQjBySWhvb0tSVXVNQk15TGhrd0pob3pLaDQ4THhVek1STTlNQnd6TWlVdkZDTXRHaU13RWl3ekZDZ3pIREkrR1NJc0lTa3ZKU1F4SWlNMkxpWTVKaWMrTHlrMEpTbzBLeTQ5SlNzOUtTVTFOU003TkNzMk5TOCtORE0xSnpVOUxqZzdJREpDSFMxRExTTkFNaXRDTVN4SU9qUkVJVFpMSURaSktEbEZJanBGS3p0S0pUMUxLekpCTXpwSE1EMUpNanBLUEQxUktqbFFOQzFEUWo1UVFFQThNRUpHSmtCS0pVSk5LMGxMTEVKTU1rVk1QRXBPTkVOU0xVZFpMMHBUTGtwYUxrUlVNa1JTUEVWWk1rdFVNMHBWT2tsWk1rbFpORXBjTlUxWk1rMVpOVXhmTWs1ZE5reGNPVkZVTTFSVU9GSmJOVkZaT1ZOWVBWRmRPVkpkUEZWYU9WVmFQVlZkT2xWZFBWcGFObHBkTzBwaE4wMWhPbEJpTjFOaFBGTm9QMXBpUFdGYlBtUmpQRU5PUUV0UFNVUlRRa0pWUzB4VlFrMVZTa3hiUWt4Y1MwaGVVVkZYUkZSY1FsSmZURnhlUWxwZVMwNWxRazFrU0ZSalFWUmpTbFpwUTF0a1FseGxTbHhwUkYxclNWVm5VVnRsVTFsbFhGOXRVMXhvWGx4d1NsOXJhbVJmUW1KbFEyRmhTV0ZsU1dGbFRtVmxTV1JtVEdGb1FXRnBSV0ZzUm1WcFJXVnRSbU5zU210bFJHcHFSbXBzUzJCbVdHUnNVbUZyVzJwdFVtWnlSMlJ4VEdweFRXVnlVMlJ5VzJkNVYydHpVbXQwV1cxNVZHMTVXWEZ1VEhOdFZuRnhUWEY0VDNoMFRuSnpVbkoxWEhKNFZYTjZXbnAwVkh4MVczMTVWWHA4WEdSMFlHeDBZSFZ6WlhKMGFIUjlaWFYrYUhsOVlIT0NYWHFCWFhlQ1lIeUNZM2lFYUh5SVluK0phWHFLY1lCNVdJTjZZNFNDWG9DRFpJR0VhWUNJWm9PTGE0aUNhSW1KYklPT2RZdU1jbzZPZUl1VmNwT0tiWktQYzVhUWI1ZVhlNXVmZzZLamhBQUFBQUFBQUFBQUFBQUFBT0dDZVFnQUFBRUFkRkpPVS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy93QlQ5d2NsQUFBQUNYQklXWE1BQUE3REFBQU93d0hIYjZoa0FBQUFHSFJGV0hSVGIyWjBkMkZ5WlFCd1lXbHVkQzV1WlhRZ05DNHdMamxzTTM1T0FBQUg4MGxFUVZSSVN5MVdiWFFVVnhtKzZ3cW5rM1ptcHhsMkZHMkVHZzkyQzhHRGxXcHRWVHdhK3VGM3hjS21EZkZ6Q1V6RHNKTnN1blhpcGdsSlhKYnJ0Sldtd1pOU25IRDNqb2pSZ1VJbTJVdW1JWjBKWjdKQnlyQUxiTVdXMElCVzhhUmE0K2NmNzZUZVgzTm0zdWMrei9zKzcvdnVnbDRyL2FNVHJUNGUxcFBUcW5ubUpObjVBeVV6Um5yUmxlL3FFMzNkc3ZyQnRBUVZveHRwWk5LM3pTellqVWp2aVdPMkFnK1I3N2RsN1czNm4vMUVwOUtCUEcvUytQeTBQa2pVL2dQS1FHcXdUSHJ5aVdZRkFYU3ZNYWlyc2lvN1NqeU5zbkN6aDBxS0ltVjkvN21oZkhRWngyeU4xTys3clhVbTMzTVVQYWJvT2tBSkhhb0lkWGZKajJ4V2V5RDhqTUZFWGt2SXU1cXpwVTk4OGdXQjV6bCtHUytzRmU1NXRyRVZQZFdaQjJtaXE4YkJWa05GTzJSMHFucmZraVhoY0podEROWEU2dGJXOTcvczlPOS83WmZWaHg4Ni9Dd3JST3BmdnZ4Ym9NcWVMc3VxUHIxajQ0cUV3RE5NT0J4aW1VaVlvVThzdzdCQy9hN1Q3MnVFbnlKRGxHeFo5S2NnbFpSeXVxcXJ2L3RTWkVyZ09JNE5nUkJUSXc5RW1IQW9GR1pabnA2YUdhSjJHVHhmeFlzOGtLVlVRaDdXQjVoUWVDM0xzVXhveFZLVzE0bDNCWDJXY29VWVBpWnlMTGU4dGVaK2l1VDRHR2h2VjVLcEtXa3B5enhFcjJNWmdRMXhkUmpmUkJvSCsyazZsSUhqS1RIUFBCbzhDU0pJU3FxcTR3R0dPY1d5bElHbGd2Z05YMUdkOHZGNWYrSVVJd2IzMG5nK0dnMlFmQlJJTXZ5MGpHOFNWa1lvNE4wenZVWFZSenRiSi9MNnhMN2xVWkVYQkVIa3VacWxTNmdFQVVnS0p1cm5oRnRmcEFDT1lkOGIvaFZiSlBxd2k0NGE2S0Ewc1BWaklpL1NJeXhiM3U4S2xBSjBTOGpSVmdybFcrblZIUGRyaGlYQ3h1NDJkODZCeWtzRGM4MFAzTWtKRkJGUThIbzFsUWVncFdKUldGR3NEc1J3d3Y3cEl5dnVRVzBaa3JYNk5EVkZicWN2YVFJOHZieXF6dDVBQVJyc2JLeDV5aFFFR3Mrd1BPNTZiT0srMHJjd01yT0trcFViWldZeFYwNFVlWlp2L2NCS0ZoUkw2UWR2OXk0TGZFREE3L3RoZzd0VG12MWE1L0duTzB3bDBkUWc4MHdnbFphSFVteFJ2andBSE9meU4wbXhycHFMVXBjanNLM05IWU1vNFIxbzZlaG8yWnlJYjJGb2VPQzNJTEs4a1oySFFNT3VXeXdHWFVrSkJDZVRiWUZTMCt5bTFoMi82VWdtdm5ydktZWlp0SUVYR2Y3NUMyY0lBcDVMSE5kNzF4N3VQb1RqYWtyV0g5ZTNLRnBhYXRqVXZKVXlzRncwS3JMTVlNVzJsVGc0UGVVUXg2a0pFQUx2eFhFbUNkVnlQTEh0Q1NqQmhjMDFYQ2pJZ2FmeG91K1BFNktDMWRoeFNDd29CQ2MrTjRQM2J0TTg0cG1kU1NqSm5qTy9udlk0TFFmVnl6NS9JK3Y2SXdqVU9NankrTVZDeEliS3VwVEphRWt0cDdjVEtVNDJQdmpoMm0vOGNTcEM2YVBzYVgvTUhTdVVRTFZWc0lhNFJVVHMvci9CVkFleE5kamRuc05HN2ovclY5M3hoZUxNektuRnJQZVRFUWNoQ3lDY0tiMjVhQUluN2xyQWVydHJad3lOWE04TjZ6ZldyRm8zZDJTbU9FY0Y4M3gvcitPT0ZnckFIWVdGN2NFTGpoVjdVUW8vNldBSVVWbDlKRmw4YS8vSFo2NlZwYlkzSTlRS1pxUHJ1NzdsQStpT1dBSXIwaEt4SENtbXIwb3RoU3llSWw1eTNxdDR4VDhnU05yS0Vab3pzOEVsczY3cmdzTE9aK3lnendNZmJ0TmhvYmZnenBFeUduejdodFB0elVpNlB1T29qN0swV0YvTVhpVUZ4d0dhalJEMWhqWVhIWEk5cDQwNnFPeWlucDUvdGlXY0RIWTBqSXU0bjY0UWZxN2tsaUIyZ2VtYWc5UWJPaWEwUGJiRE1iZDQzU0h1dnhGeHJBb2N4aW5zN01YNUtxYmUxUWl4S0J4b1Y0Ly9QZkFnR0N1K1JsbTRTdlppenlESCswcmVESHA5MmlPMEJ1WDNiQ2ZJdGwwUEV3dllMcXB3WEcyTUhsR3NRNFM4cE1KWnYxSkdtSGlFb0hRRGRPandtVmxFUC9uRTlBREtqSTh4TEkwT09HSVRmeTBTYmVHL0MyaktVREdTbERoTTlJM0lwSzlpdXA2WG5iUk5DN3lxdWVOc0pDQ0lpWHpkUWhuYUdOKzQ2dW1uRWR5NVU1VWJVSjQ4TEZNOUdrSm84QmRET2lBWjdaSVFiS2hZTE1xdmhVMndtTnhqRUFzUzJBSTd5NG5XRjY0ZHVlUGJrN1lWM3p2QVZMRU1EOUF4SlJOYTNLRFVpYlY3RGpua3Vwck1FWWpTY0ZOY2FSMmNlUDJ1OVIvNWsxMDUyUnltZTVwaEFGUnN3bEhqQXVkaVA0ZE95N0NheExnZEpoOXZVbFUxNzAyLytMUGExVTlmdlBpOXFsQTRYRVVCSmMzZEZscHNSNDU3SURsMWlQcUxwN284MU5RZ3lWMTlpWVUzOHVUaXY5NzVQZDNTaXdRY3NHangrdjQvNmZsNVQ3RU9PTVRDdHBiS3hmZW1zUXEvM29sUVpjbWluQURBQUkwY3VHTEhhSE9GeGJ1R3ZSay9aOXU3Q1VMcW9WUjZORTB5eDFhdmozMG9SaGMvaldVb0lBTEd4a3owZGcxRGw5aWFJN0xxT09YS3NYSkZ3aml1RUFpNzBKcmEyblcxUEwwOHpMQmhac01BQnBXNWNzSTdUUGZldzlpcEZLY241azFpKzFLeUNXS2pDM1cvOGRGMWQ2NjYrUmFhYkJWVEZUSGFjam9vakJORGgwTkR4aytJUFRsd2ZxSmtXcGJucEZIWEliTGJtcHhFUTNmZi9aMGcvbWF1WHNvbG45d0RSankvTkhzUUZ3M1A2dld1VEo0My8rRlpyazJjdkFGUmlwQ0tkZkQ5eTIrcGpSajc4czBLZENVREtKdmRWOTFDaG5nVjM4VDIwVE0rZ2doanBKYVBscEZyMnhiRXo1ZzRBL05HdDVyTndkd21ZR2VlZU1YQlNMSEhVSWMrNlJzb2pSSDlWVFVtMy9tTGYvNjRiNDcwWHZveG9US2hsTUJRMmpNRXpvMlBqeGRHTXBwbW4xUk0yNGJXRkpxYVF2NEJjdUphMlNhbTdab2txMWxkQ3N6MDZOQ0JIcmh3cVZRWXBmRmo0Mk5aZXh6MUVXOVNSL2tUNThuRWVRS0piMmZQWGpqcDB1L1lVa3dIRWdMZU9uZjJuT3VmMVRSVE0wMkNMS0xUUHk2MC94MUNDenRxbjdFditCZHNDM20rMzBkZWNRdlcvd0JOVHdVK0NmVVFBUUFBQUFCSlJVNUVya0pnZ2c9PScpXCI7XHJcblxyXG4gICAgaWYgKG9wdGlvbnMuYmFzZVN3aXRjaGVyKSB7XHJcbiAgICAgICAgLy8gIGxldCBzd2l0Y2hlckNvbnRlbnQgPSAnPGRpdiBjbGFzcz1cImJhc2UtbWFwLXN3aXRjaGVyXCIgdGl0bGU9XCJUb2dnbGUgQmFzZSBMYXllclwiIHN0eWxlPVwiJztcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9ICdwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNzBweDsgbGVmdDogNHB4OyBib3JkZXI6IHNvbGlkIGJsYWNrIDFweDsgJztcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9IGBoZWlnaHQ6IDUwcHg7IHdpZHRoOiA1MHB4OyB6LWluZGV4OiAxMDsgYm9yZGVyLXJhZGl1czogNHB4OyBiYWNrZ3JvdW5kOiAke2FlcmlhbENzc307YDtcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9ICdcIj48L2Rpdj4nO1xyXG4gICAgICAgIC8vICAkbWFwRGl2LmFwcGVuZChzd2l0Y2hlckNvbnRlbnQpO1xyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gJG1hcERpdi5maW5kKCcuYmFzZS1tYXAtc3dpdGNoZXInKS5jbGljayhmdW5jdGlvbigpIHtcclxuICAgICAgICAvLyAgICAgIFwidXNlIHN0cmljdFwiO1xyXG4gICAgICAgIC8vICAgICAgb3NtTGF5ZXIuc2V0VmlzaWJsZSghb3NtTGF5ZXIuZ2V0VmlzaWJsZSgpKTtcclxuICAgICAgICAvLyAgICAgIHNhdExheWVyLnNldFZpc2libGUoIXNhdExheWVyLmdldFZpc2libGUoKSk7XHJcbiAgICAgICAgLy9cclxuICAgICAgICAvLyAgICAgIGlmIChvc21MYXllci5nZXRWaXNpYmxlKCkpe1xyXG4gICAgICAgIC8vICAgICAgICAgICQodGhpcykuY3NzKCdiYWNrZ3JvdW5kJywgYWVyaWFsQ3NzKTtcclxuICAgICAgICAvLyAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgJCh0aGlzKS5jc3MoJ2JhY2tncm91bmQnLCBvc21Dc3MpO1xyXG4gICAgICAgIC8vICAgICAgfVxyXG4gICAgICAgIC8vICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0aW9ucy56b29tIDwgMCB8fCBvcHRpb25zLnpvb20gPiAyOCkge1xyXG4gICAgICAgIHRocm93ICd6b29tIG91dCBvZiByYW5nZSc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9wdGlvbnMuY2VudGVyLnggPj0gLTE4MCAmJiBvcHRpb25zLmNlbnRlci54IDw9IDE4MCAmJiBvcHRpb25zLmNlbnRlci55ID49IC05MCAmJiBvcHRpb25zLmNlbnRlci55IDw9IDkwKSB7XHJcbiAgICAgICAgbGV0IHAgPSBuZXcgb2wuZ2VvbS5Qb2ludChbb3B0aW9ucy5jZW50ZXIueCwgb3B0aW9ucy5jZW50ZXIueV0pO1xyXG4gICAgICAgIG5ldyBvbC5wcm9qLlByb2plY3Rpb24oe2NvZGU6IFwiRVBTRzo0MzI2XCJ9KTtcclxuXHJcbiAgICAgICAgcC50cmFuc2Zvcm0obmV3IG9sLnByb2ouUHJvamVjdGlvbih7Y29kZTogXCJFUFNHOjQzMjZcIn0pLCBuZXcgb2wucHJvai5Qcm9qZWN0aW9uKHtjb2RlOiBcIkVQU0c6Mzg1N1wifSkpO1xyXG4gICAgICAgIGxldCBjb29yZGluYXRlcyA9IHAuZ2V0Q29vcmRpbmF0ZXMoKTtcclxuICAgICAgICBvcHRpb25zLmNlbnRlci54ID0gY29vcmRpbmF0ZXNbMF07XHJcbiAgICAgICAgb3B0aW9ucy5jZW50ZXIueSA9IGNvb3JkaW5hdGVzWzFdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xzID0gb2wuY29udHJvbC5kZWZhdWx0cyh7XHJcbiAgICAgICAgICAgIGF0dHJpYnV0aW9uT3B0aW9uczoge2NvbGxhcHNpYmxlOiBmYWxzZX1cclxuICAgICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IHZpZXcgPSBuZXcgb2wuVmlldyh7XHJcbiAgICAgICAgY2VudGVyOiBbb3B0aW9ucy5jZW50ZXIueCwgb3B0aW9ucy5jZW50ZXIueV0sXHJcbiAgICAgICAgem9vbTogb3B0aW9ucy56b29tLFxyXG4gICAgICAgIG1pblpvb206IG9wdGlvbnMubWluWm9vbSxcclxuICAgICAgICBtYXhab29tOiBvcHRpb25zLm1heFpvb21cclxuICAgIH0pO1xyXG5cclxuICAgIGxldCBtYXAgPSBuZXcgb2wuTWFwKHtcclxuICAgICAgICBsYXllcnM6IFtvc21MYXllcl0sXHJcbiAgICAgICAgdGFyZ2V0OiBvcHRpb25zLmRpdklkLFxyXG4gICAgICAgIGNvbnRyb2xzOiBjb250cm9scyxcclxuICAgICAgICB2aWV3OiB2aWV3XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAob3B0aW9ucy5mdWxsU2NyZWVuKSB7XHJcbiAgICAgICAgbWFwLmFkZENvbnRyb2wobmV3IG9sLmNvbnRyb2wuRnVsbFNjcmVlbih7fSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtYXA7XHJcbn1cclxuXHJcbm5tLnF1aWNrTWFwQmFzZSA9IHF1aWNrTWFwQmFzZTtcclxuZXhwb3J0IGRlZmF1bHQgcXVpY2tNYXBCYXNlO1xyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/quickMapBase.ts\n// module id = 13\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 12/14/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"../util/provide\");\r\nvar nm = provide_1.default('olHelpers.zoomResolutionConvert');\r\nvar _zoomResLookup = [\r\n 156543.03392804097,\r\n 78271.51696402048,\r\n 39135.75848201024,\r\n 19567.87924100512,\r\n 9783.93962050256,\r\n 4891.96981025128,\r\n 2445.98490512564,\r\n 1222.99245256282,\r\n 611.49622628141,\r\n 305.748113140705,\r\n 152.8740565703525,\r\n 76.43702828517625,\r\n 38.21851414258813,\r\n 19.109257071294063,\r\n 9.554628535647032,\r\n 4.777314267823516,\r\n 2.388657133911758,\r\n 1.194328566955879,\r\n 0.5971642834779395,\r\n 0.29858214173896974,\r\n 0.14929107086948487,\r\n 0.07464553543474244,\r\n 0.03732276771737122,\r\n 0.01866138385868561,\r\n 0.009330691929342804,\r\n 0.004665345964671402,\r\n 0.002332672982335701,\r\n 0.0011663364911678506,\r\n 0.0005831682455839253 //28\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\nfunction zoomToResolution(zoomLevel) {\r\n \"use strict\";\r\n if (typeof zoomLevel == 'number') {\r\n if (zoomLevel % 1 === 0 && zoomLevel >= 0 && zoomLevel <= 28) {\r\n return _zoomResLookup[zoomLevel];\r\n }\r\n else {\r\n console.log(\"invalid zoom level provided: \" + zoomLevel);\r\n return undefined;\r\n }\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\nexports.zoomToResolution = zoomToResolution;\r\nnm.zoomToResolution = zoomToResolution;\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\nfunction resolutionToZoom(resolution) {\r\n for (var i = 0; i < _zoomResLookup.length; i++) {\r\n if (resolution >= _zoomResLookup[i]) {\r\n return i;\r\n }\r\n }\r\n return 0;\r\n}\r\nexports.resolutionToZoom = resolutionToZoom;\r\nnm.resolutionToZoom = resolutionToZoom;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbVJlc29sdXRpb25Db252ZXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiem9vbVJlc29sdXRpb25Db252ZXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFFSCwyQ0FBc0M7QUFDdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBRXRELElBQUksY0FBYyxHQUFHO0lBQ2pCLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLHFCQUFxQjtJQUNyQixxQkFBcUIsQ0FBQyxJQUFJO0NBQzdCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsMEJBQWlDLFNBQVM7SUFDdEMsWUFBWSxDQUFDO0lBRWIsRUFBRSxDQUFDLENBQUMsT0FBTyxTQUFTLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMvQixFQUFFLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLElBQUksQ0FBQyxJQUFJLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNELE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBZ0MsU0FBVyxDQUFDLENBQUM7WUFFekQsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNyQixDQUFDO0lBQ0wsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUNyQixDQUFDO0FBQ0wsQ0FBQztBQWRELDRDQWNDO0FBQ0QsRUFBRSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0FBR3ZDOzs7O0dBSUc7QUFDSCwwQkFBaUMsVUFBVTtJQUN2QyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUMsQ0FBQztRQUM1QyxFQUFFLENBQUMsQ0FBQyxVQUFVLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUEsQ0FBQztZQUNsQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2IsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ2IsQ0FBQztBQVJELDRDQVFDO0FBRUQsRUFBRSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTQvMjAxNS5cclxuICovXHJcblxyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycy56b29tUmVzb2x1dGlvbkNvbnZlcnQnKTtcclxuXHJcbmxldCBfem9vbVJlc0xvb2t1cCA9IFtcclxuICAgIDE1NjU0My4wMzM5MjgwNDA5NywgLy8wXHJcbiAgICA3ODI3MS41MTY5NjQwMjA0OCwgLy8xXHJcbiAgICAzOTEzNS43NTg0ODIwMTAyNCwgLy8yXHJcbiAgICAxOTU2Ny44NzkyNDEwMDUxMiwgLy8zXHJcbiAgICA5NzgzLjkzOTYyMDUwMjU2LCAvLzRcclxuICAgIDQ4OTEuOTY5ODEwMjUxMjgsIC8vNVxyXG4gICAgMjQ0NS45ODQ5MDUxMjU2NCwgLy82XHJcbiAgICAxMjIyLjk5MjQ1MjU2MjgyLCAvLzdcclxuICAgIDYxMS40OTYyMjYyODE0MSwgLy84XHJcbiAgICAzMDUuNzQ4MTEzMTQwNzA1LCAvLzlcclxuICAgIDE1Mi44NzQwNTY1NzAzNTI1LCAvLzEwXHJcbiAgICA3Ni40MzcwMjgyODUxNzYyNSwgLy8xMVxyXG4gICAgMzguMjE4NTE0MTQyNTg4MTMsIC8vMTJcclxuICAgIDE5LjEwOTI1NzA3MTI5NDA2MywgLy8xM1xyXG4gICAgOS41NTQ2Mjg1MzU2NDcwMzIsIC8vMTRcclxuICAgIDQuNzc3MzE0MjY3ODIzNTE2LCAvLzE1XHJcbiAgICAyLjM4ODY1NzEzMzkxMTc1OCwgLy8xNlxyXG4gICAgMS4xOTQzMjg1NjY5NTU4NzksIC8vMTdcclxuICAgIDAuNTk3MTY0MjgzNDc3OTM5NSwgLy8xOFxyXG4gICAgMC4yOTg1ODIxNDE3Mzg5Njk3NCwgLy8xOVxyXG4gICAgMC4xNDkyOTEwNzA4Njk0ODQ4NywgLy8yMFxyXG4gICAgMC4wNzQ2NDU1MzU0MzQ3NDI0NCwgLy8yMVxyXG4gICAgMC4wMzczMjI3Njc3MTczNzEyMiwgLy8yMlxyXG4gICAgMC4wMTg2NjEzODM4NTg2ODU2MSwgLy8yM1xyXG4gICAgMC4wMDkzMzA2OTE5MjkzNDI4MDQsIC8vMjRcclxuICAgIDAuMDA0NjY1MzQ1OTY0NjcxNDAyLCAvLzI1XHJcbiAgICAwLjAwMjMzMjY3Mjk4MjMzNTcwMSwgLy8yNlxyXG4gICAgMC4wMDExNjYzMzY0OTExNjc4NTA2LCAvLzI3XHJcbiAgICAwLjAwMDU4MzE2ODI0NTU4MzkyNTMgLy8yOFxyXG5dO1xyXG5cclxuLyoqXHJcbiAqIEdldCB0aGUgcmVzb2x1dGlvbiBnaXZlbiB0aGUgem9vbSBsZXZlbFxyXG4gKiBAcGFyYW0ge251bWJlcn0gem9vbUxldmVsIC0gdGhlIHpvb20gbGV2ZWxcclxuICogQHJldHVybnMge251bWJlcnwqfSB0aGUgbWFwIHJlc29sdXRpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB6b29tVG9SZXNvbHV0aW9uKHpvb21MZXZlbCkge1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB6b29tTGV2ZWwgPT0gJ251bWJlcicpIHtcclxuICAgICAgICBpZiAoem9vbUxldmVsICUgMSA9PT0gMCAmJiB6b29tTGV2ZWwgPj0gMCAmJiB6b29tTGV2ZWwgPD0gMjgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIF96b29tUmVzTG9va3VwW3pvb21MZXZlbF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYGludmFsaWQgem9vbSBsZXZlbCBwcm92aWRlZDogJHt6b29tTGV2ZWx9YCk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxufVxyXG5ubS56b29tVG9SZXNvbHV0aW9uID0gem9vbVRvUmVzb2x1dGlvbjtcclxuXHJcblxyXG4vKipcclxuICogR2V0IHJlc29sdXRpb24gZnJvbSB0aGUgem9vbSBsZXZlbFxyXG4gKiBAcGFyYW0ge251bWJlcn0gcmVzb2x1dGlvbiAtIHRoZSByZXNvbHV0aW9uXHJcbiAqIEByZXR1cm5zIHtudW1iZXJ8Kn0gdGhlIHpvb20gbGV2ZWxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZXNvbHV0aW9uVG9ab29tKHJlc29sdXRpb24pe1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBfem9vbVJlc0xvb2t1cC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgaWYgKHJlc29sdXRpb24gPj0gX3pvb21SZXNMb29rdXBbaV0gKXtcclxuICAgICAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAwO1xyXG59XHJcblxyXG5ubS5yZXNvbHV0aW9uVG9ab29tID0gcmVzb2x1dGlvblRvWm9vbTtcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/zoomResolutionConvert.ts\n// module id = 14\n// module chunks = 0 1 2 3","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Created by gavorhes on 1/4/2016.\r\n */\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar nm = provide_1.default('olHelpers.esriToOlStyle');\r\n/**\r\n * This callback is displayed as part of the Requester class.\r\n * @callback styleFunc\r\n * @param {ol.Feature} feat - openlayers feature\r\n * @param {number} resolution - map resolution\r\n */\r\n/**\r\n *\r\n * @param {Array<number>} colorArray - input color array\r\n * @param {number} opacity - the opacity 0 to 1\r\n * @returns {string} rgba string\r\n * @private\r\n */\r\nfunction _colorArrayToRgba(colorArray, opacity) {\r\n \"use strict\";\r\n return \"rgba(\" + colorArray[0] + \",\" + colorArray[1] + \",\" + colorArray[2] + \",\" + opacity + \")\";\r\n}\r\n/**\r\n * escape html charcters\r\n * @param {string} str - input string\r\n * @returns {string} escaped string\r\n */\r\nfunction htmlEscape(str) {\r\n return String(str)\r\n .replace(/&/g, '&')\r\n .replace(/\"/g, '"')\r\n .replace(/'/g, ''')\r\n .replace(/</g, '<')\r\n .replace(/>/g, '>');\r\n}\r\nnm.htmlEscape = htmlEscape;\r\nvar CommonSymbol = (function () {\r\n /**\r\n *\r\n * @param symbolObj\r\n * @param {number} opacity\r\n */\r\n function CommonSymbol(symbolObj, opacity) {\r\n this.symbolObj = symbolObj;\r\n this.opacity = opacity;\r\n this.olStyle = undefined;\r\n this.legendHtml = '';\r\n }\r\n return CommonSymbol;\r\n}());\r\nvar PointSymbol = (function (_super) {\r\n __extends(PointSymbol, _super);\r\n function PointSymbol(symbolObj, opacity) {\r\n var _this = _super.call(this, symbolObj, opacity) || this;\r\n switch (_this.symbolObj.type) {\r\n case 'esriSMS':\r\n var innerColor = _colorArrayToRgba(_this.symbolObj.color, _this.opacity);\r\n var outerColor = _colorArrayToRgba(_this.symbolObj.outline.color, _this.opacity);\r\n var outlineWidth = _this.symbolObj.outline.width;\r\n var radius = _this.symbolObj.size;\r\n _this.olStyle = new ol.style.Style({\r\n image: new ol.style.Circle({\r\n radius: radius,\r\n fill: new ol.style.Fill({\r\n color: innerColor\r\n }),\r\n stroke: new ol.style.Stroke({ color: outerColor, width: outlineWidth })\r\n })\r\n });\r\n _this.legendHtml = \"<span class=\\\"legend-layer-icon\\\" style=\\\"color: \" + innerColor + \"\\\">●</span>\";\r\n break;\r\n case 'esriPMS':\r\n _this.olStyle = new ol.style.Style({\r\n image: new ol.style.Icon({ src: \"data:image/png;base64,\" + _this.symbolObj['imageData'] })\r\n });\r\n _this.legendHtml = \"<img class=\\\"legend-layer-icon\\\" height=\\\"17\\\" src=\\\"data:image/png;base64,\" + _this.symbolObj['imageData'] + \"\\\">\";\r\n break;\r\n default:\r\n console.log(_this.symbolObj);\r\n alert('Point symbol does not handle symbol type: ' + _this.symbolObj['type']);\r\n }\r\n return _this;\r\n }\r\n return PointSymbol;\r\n}(CommonSymbol));\r\nvar LineSymbol = (function (_super) {\r\n __extends(LineSymbol, _super);\r\n function LineSymbol(symbolObj, opacity) {\r\n var _this = _super.call(this, symbolObj, opacity) || this;\r\n switch (_this.symbolObj.type) {\r\n case 'esriSLS':\r\n var innerColor = _colorArrayToRgba(_this.symbolObj.color, _this.opacity);\r\n var lineWidth = _this.symbolObj.width;\r\n _this.olStyle = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: innerColor,\r\n //lineDash: [4],\r\n width: lineWidth\r\n })\r\n });\r\n _this.legendHtml = \"<span class=\\\"legend-layer-icon\\\" \";\r\n _this.legendHtml += \"style=\\\"\";\r\n _this.legendHtml += \"background-color: \" + innerColor + \";\";\r\n _this.legendHtml += \"width: 40px;\";\r\n _this.legendHtml += \"height: 4px;\";\r\n _this.legendHtml += \"position: relative;\";\r\n _this.legendHtml += \"display: inline-block;\";\r\n _this.legendHtml += \"top: -1px;\";\r\n _this.legendHtml += \"\\\"></span>\";\r\n break;\r\n default:\r\n console.log(_this.symbolObj);\r\n alert('Line symbol does not handle symbol type: ' + _this.symbolObj['type']);\r\n }\r\n return _this;\r\n }\r\n return LineSymbol;\r\n}(CommonSymbol));\r\nvar PolygonSymbol = (function (_super) {\r\n __extends(PolygonSymbol, _super);\r\n function PolygonSymbol(symbolObj, opacity) {\r\n var _this = _super.call(this, symbolObj, opacity) || this;\r\n switch (_this.symbolObj['type']) {\r\n case 'esriSFS':\r\n var innerColor = _colorArrayToRgba(_this.symbolObj.color, _this.opacity);\r\n var outerColor = _colorArrayToRgba(_this.symbolObj.outline.color, _this.opacity);\r\n var outlineWidth = _this.symbolObj.outline.width;\r\n _this.olStyle = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: outerColor,\r\n //lineDash: [4],\r\n width: outlineWidth\r\n }),\r\n fill: new ol.style.Fill({\r\n color: innerColor\r\n })\r\n });\r\n _this.legendHtml = \"<span class=\\\"legend-layer-icon\\\" \";\r\n _this.legendHtml += \"style=\\\"\";\r\n _this.legendHtml += \"background-color: \" + innerColor + \";\";\r\n _this.legendHtml += \"border: solid \" + outerColor + \" 1px;\";\r\n _this.legendHtml += \"width: 40px;\";\r\n _this.legendHtml += \"height: 9px;\";\r\n _this.legendHtml += \"position: relative;\";\r\n _this.legendHtml += \"display: inline-block;\";\r\n _this.legendHtml += \"top: 2px;\";\r\n _this.legendHtml += \"\\\"></span>\";\r\n break;\r\n default:\r\n console.log(_this.symbolObj);\r\n alert('Polygon symbol does handle symbol type: ' + _this.symbolObj['type']);\r\n }\r\n return _this;\r\n }\r\n return PolygonSymbol;\r\n}(CommonSymbol));\r\nvar SymbolGenerator = (function () {\r\n function SymbolGenerator(esriResponse) {\r\n this.opacity = (100 - (esriResponse['drawingInfo']['transparency'] || 0)) / 100;\r\n this.renderer = esriResponse.drawingInfo.renderer;\r\n this.olStyle = undefined;\r\n this.legendHtml = '';\r\n }\r\n return SymbolGenerator;\r\n}());\r\nvar SingleSymbol = (function (_super) {\r\n __extends(SingleSymbol, _super);\r\n /**\r\n *\r\n * @param {object} esriResponse - layer info\r\n * @param SymbolClass - the symbol class to use\r\n */\r\n function SingleSymbol(esriResponse, SymbolClass) {\r\n var _this = _super.call(this, esriResponse) || this;\r\n _this.symbol = _this.renderer.symbol;\r\n var symbolObj = new SymbolClass(_this.symbol, _this.opacity);\r\n _this.olStyle = symbolObj.olStyle;\r\n _this.legendHtml = symbolObj.legendHtml;\r\n return _this;\r\n }\r\n return SingleSymbol;\r\n}(SymbolGenerator));\r\nvar UniqueValueSymbol = (function (_super) {\r\n __extends(UniqueValueSymbol, _super);\r\n /**\r\n *\r\n * @param {object} esriResponse - layer info\r\n * @param SymbolClass - the Symbol class definition\r\n */\r\n function UniqueValueSymbol(esriResponse, SymbolClass) {\r\n var _this = _super.call(this, esriResponse) || this;\r\n _this.uniqueValueInfos = _this.renderer['uniqueValueInfos'];\r\n _this.propertyName = _this.renderer['field1'];\r\n _this.defaultSymbol = _this.renderer['defaultSymbol'];\r\n if (_this.defaultSymbol) {\r\n var symbolObj = new SymbolClass(_this.defaultSymbol, _this.opacity);\r\n _this.defaultStyle = symbolObj.olStyle;\r\n _this.defaultLabelHtml = \"<span class=\\\"legend-layer-subitem\\\">\" + htmlEscape(_this.renderer['defaultLabel']) + \"</span>\" + symbolObj.legendHtml;\r\n }\r\n else {\r\n _this.defaultStyle = undefined;\r\n _this.defaultLabelHtml = 'other';\r\n }\r\n _this.valueArray = [];\r\n _this.labelArray = [];\r\n _this.legendArray = [];\r\n _this.propertyStyleLookup = {};\r\n for (var _i = 0, _a = _this.uniqueValueInfos; _i < _a.length; _i++) {\r\n var uniqueVal = _a[_i];\r\n _this.labelArray.push(uniqueVal['label']);\r\n _this.valueArray.push(uniqueVal['value']);\r\n var uniqueSym = new SymbolClass(uniqueVal.symbol, _this.opacity);\r\n _this.legendArray.push(\"<span class=\\\"legend-layer-subitem\\\">\" + htmlEscape(uniqueVal['label']) + \"</span>\" + uniqueSym.legendHtml);\r\n _this.propertyStyleLookup[uniqueVal['value']] = uniqueSym.olStyle;\r\n }\r\n _this.olStyle = function (feature) {\r\n var checkProperties = feature.getProperties();\r\n var checkProperty = checkProperties[_this.propertyName];\r\n var returnValue;\r\n if (_this.propertyStyleLookup[checkProperty] !== undefined) {\r\n returnValue = [_this.propertyStyleLookup[checkProperty]];\r\n }\r\n else {\r\n returnValue = [_this.defaultStyle];\r\n }\r\n return returnValue;\r\n };\r\n if (_this.defaultLabelHtml !== null) {\r\n _this.legendArray.push(_this.defaultLabelHtml);\r\n }\r\n _this.legendHtml = '<ul>';\r\n for (var _b = 0, _c = _this.legendArray; _b < _c.length; _b++) {\r\n var h = _c[_b];\r\n _this.legendHtml += \"<li>\" + h + \"</li>\";\r\n }\r\n _this.legendHtml += '</ul>';\r\n return _this;\r\n }\r\n return UniqueValueSymbol;\r\n}(SymbolGenerator));\r\n/**\r\n * style and legend object\r\n * @typedef {object} styleAndLegend\r\n * @property {styleFunc} style - style function\r\n * @property {string} legend - legend content\r\n */\r\n/**\r\n *\r\n * @param {object} esriResponse - layer info\r\n * @returns {styleAndLegend} style and legend object\r\n */\r\nfunction makeFeatureServiceLegendAndSymbol(esriResponse) {\r\n \"use strict\";\r\n var renderer = esriResponse.drawingInfo.renderer;\r\n var symbolLegendOut = null;\r\n switch (renderer.type) {\r\n case 'simple':\r\n switch (esriResponse.geometryType) {\r\n case 'esriGeometryPoint':\r\n symbolLegendOut = new SingleSymbol(esriResponse, PointSymbol);\r\n break;\r\n case 'esriGeometryPolyline':\r\n symbolLegendOut = new SingleSymbol(esriResponse, LineSymbol);\r\n break;\r\n case 'esriGeometryPolygon':\r\n symbolLegendOut = new SingleSymbol(esriResponse, PolygonSymbol);\r\n break;\r\n default:\r\n console.log(esriResponse);\r\n alert(esriResponse.geometryType + ' not handled');\r\n }\r\n break;\r\n case 'uniqueValue':\r\n switch (esriResponse.geometryType) {\r\n case 'esriGeometryPoint':\r\n symbolLegendOut = new UniqueValueSymbol(esriResponse, PointSymbol);\r\n break;\r\n case 'esriGeometryPolyline':\r\n symbolLegendOut = new UniqueValueSymbol(esriResponse, LineSymbol);\r\n break;\r\n case 'esriGeometryPolygon':\r\n symbolLegendOut = new UniqueValueSymbol(esriResponse, PolygonSymbol);\r\n break;\r\n default:\r\n console.log(esriResponse);\r\n alert(esriResponse['geometryType'] + ' not handled');\r\n }\r\n break;\r\n default:\r\n alert('not handled renderer type: ' + renderer['type']);\r\n }\r\n if (symbolLegendOut == null) {\r\n return { style: undefined, legend: '' };\r\n }\r\n else {\r\n return { style: symbolLegendOut.olStyle, legend: symbolLegendOut.legendHtml };\r\n }\r\n}\r\nexports.makeFeatureServiceLegendAndSymbol = makeFeatureServiceLegendAndSymbol;\r\nnm.makeFeatureServiceLegendAndSymbol = makeFeatureServiceLegendAndSymbol;\r\n/**\r\n *\r\n * @param {object} lyrObject - the layer as defined in the response\r\n * @param {boolean} [skipLayerNameAndExpander=false] use only icons\r\n * @returns {string} legend html\r\n */\r\nfunction mapServiceLegendItem(lyrObject, skipLayerNameAndExpander) {\r\n if (skipLayerNameAndExpander === void 0) { skipLayerNameAndExpander = false; }\r\n skipLayerNameAndExpander = typeof skipLayerNameAndExpander == 'boolean' ? skipLayerNameAndExpander : false;\r\n var layerName = lyrObject['layerName'];\r\n var legendItems = lyrObject['legend'];\r\n var legendHtml = '';\r\n if (!skipLayerNameAndExpander) {\r\n legendHtml += \"<span class=\\\"legend-layer-subitem\\\">\" + layerName + \"</span>\";\r\n }\r\n if (legendItems.length == 1) {\r\n legendHtml = \"<img class=\\\"legend-layer-icon\\\" height=\\\"17\\\" src=\\\"data:image/png;base64,\" + legendItems[0]['imageData'] + \"\\\">\";\r\n }\r\n else {\r\n if (!skipLayerNameAndExpander) {\r\n legendHtml += '<span class=\"legend-items-expander\" title=\"Expand/Collapse\">▼</span>';\r\n }\r\n legendHtml += '<ul>';\r\n for (var i = 0; i < legendItems.length; i++) {\r\n legendHtml += \"<li>\";\r\n legendHtml += \"<span class=\\\"legend-layer-subitem\\\">\" + htmlEscape(legendItems[i]['label']) + \"</span>\";\r\n legendHtml += \"<img class=\\\"legend-layer-icon\\\" height=\\\"17\\\" src=\\\"data:image/png;base64,\" + legendItems[i]['imageData'] + \"\\\">\";\r\n legendHtml += \"</li>\";\r\n }\r\n legendHtml += '</ul>';\r\n }\r\n if (!skipLayerNameAndExpander) {\r\n legendHtml = \"<span class=\\\"legend-layer-subitem\\\">\" + layerName + \"</span>\" + legendHtml;\r\n }\r\n return legendHtml;\r\n}\r\n/**\r\n * make map service legent\r\n * @param {object} esriResponse - layer info\r\n * @returns {string} legend content\r\n */\r\nfunction makeMapServiceLegend(esriResponse) {\r\n \"use strict\";\r\n var newLegendHtml = '';\r\n var layers = esriResponse['layers'];\r\n if (layers.length == 1) {\r\n newLegendHtml += mapServiceLegendItem(layers[0], true);\r\n }\r\n else {\r\n newLegendHtml += '<ul>';\r\n for (var i = 0; i < layers.length; i++) {\r\n newLegendHtml += '<li>' + mapServiceLegendItem(layers[i]) + '</li>';\r\n }\r\n newLegendHtml += '</ul>';\r\n }\r\n return newLegendHtml;\r\n}\r\nexports.makeMapServiceLegend = makeMapServiceLegend;\r\nnm.makeMapServiceLegend = makeMapServiceLegend;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNyaVRvT2xTdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVzcmlUb09sU3R5bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0dBRUc7QUFDSCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBQ2pDLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUU5Qzs7Ozs7R0FLRztBQUVIOzs7Ozs7R0FNRztBQUNILDJCQUEyQixVQUFVLEVBQUUsT0FBTztJQUMxQyxZQUFZLENBQUM7SUFFYixNQUFNLENBQUMsVUFBUSxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBSSxPQUFPLE1BQUcsQ0FBQztBQUNqRixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILG9CQUFvQixHQUFHO0lBQ25CLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1NBQ2IsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7U0FDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUM7U0FDdkIsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7U0FDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7U0FDckIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsRUFBRSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7QUE0QjNCO0lBTUk7Ozs7T0FJRztJQUNILHNCQUFZLFNBQXFCLEVBQUUsT0FBZTtRQUM5QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lB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Q29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxLzQvMjAxNi5cclxuICovXHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycy5lc3JpVG9PbFN0eWxlJyk7XHJcblxyXG4vKipcclxuICogVGhpcyBjYWxsYmFjayBpcyBkaXNwbGF5ZWQgYXMgcGFydCBvZiB0aGUgUmVxdWVzdGVyIGNsYXNzLlxyXG4gKiBAY2FsbGJhY2sgc3R5bGVGdW5jXHJcbiAqIEBwYXJhbSB7b2wuRmVhdHVyZX0gZmVhdCAtIG9wZW5sYXllcnMgZmVhdHVyZVxyXG4gKiBAcGFyYW0ge251bWJlcn0gcmVzb2x1dGlvbiAtIG1hcCByZXNvbHV0aW9uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSB7QXJyYXk8bnVtYmVyPn0gY29sb3JBcnJheSAtIGlucHV0IGNvbG9yIGFycmF5XHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBvcGFjaXR5IC0gdGhlIG9wYWNpdHkgMCB0byAxXHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHJnYmEgc3RyaW5nXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5mdW5jdGlvbiBfY29sb3JBcnJheVRvUmdiYShjb2xvckFycmF5LCBvcGFjaXR5KSB7XHJcbiAgICBcInVzZSBzdHJpY3RcIjtcclxuXHJcbiAgICByZXR1cm4gYHJnYmEoJHtjb2xvckFycmF5WzBdfSwke2NvbG9yQXJyYXlbMV19LCR7Y29sb3JBcnJheVsyXX0sJHtvcGFjaXR5fSlgO1xyXG59XHJcblxyXG4vKipcclxuICogZXNjYXBlIGh0bWwgY2hhcmN0ZXJzXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgLSBpbnB1dCBzdHJpbmdcclxuICogQHJldHVybnMge3N0cmluZ30gZXNjYXBlZCBzdHJpbmdcclxuICovXHJcbmZ1bmN0aW9uIGh0bWxFc2NhcGUoc3RyKSB7XHJcbiAgICByZXR1cm4gU3RyaW5nKHN0cilcclxuICAgICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxyXG4gICAgICAgIC5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7JylcclxuICAgICAgICAucmVwbGFjZSgvJy9nLCAnJiMzOTsnKVxyXG4gICAgICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JylcclxuICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpO1xyXG59XHJcblxyXG5ubS5odG1sRXNjYXBlID0gaHRtbEVzY2FwZTtcclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVzcmlSZXNwb25zZXtcclxuICAgIGRyYXdpbmdJbmZvOiB7XHJcbiAgICAgICAgcmVuZGVyZXI6IEVzcmlSZW5kZXJlclxyXG4gICAgfSxcclxuICAgIGdlb21ldHJ5VHlwZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXNyaVJlbmRlcmVye1xyXG4gICAgdHlwZTogc3RyaW5nO1xyXG4gICAgc3ltYm9sOiBFc3JpU3ltYm9sO1xyXG4gICAgdW5pcXVlVmFsdWVJbmZvczogQXJyYXk8e2xhYmVsOiBzdHJpbmcsIHZhbHVlOiBhbnksIHN5bWJvbDogRXNyaVN5bWJvbH0+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVzcmlTeW1ib2x7XHJcbiAgICBzaXplOiBudW1iZXI7XHJcbiAgICB0eXBlOiBzdHJpbmc7XHJcbiAgICBvdXRsaW5lOntcclxuICAgICAgICBjb2xvcjogc3RyaW5nO1xyXG4gICAgICAgIHdpZHRoOiBudW1iZXI7XHJcbiAgICB9LFxyXG4gICAgY29sb3I6IHN0cmluZztcclxuICAgIHdpZHRoOiBudW1iZXI7XHJcbn1cclxuXHJcblxyXG5jbGFzcyBDb21tb25TeW1ib2wge1xyXG4gICAgbGVnZW5kSHRtbDogc3RyaW5nO1xyXG4gICAgb3BhY2l0eTogbnVtYmVyO1xyXG4gICAgc3ltYm9sT2JqOiBFc3JpU3ltYm9sO1xyXG4gICAgb2xTdHlsZTogb2wuc3R5bGUuU3R5bGV8QXJyYXk8b2wuc3R5bGUuU3R5bGU+fG9sLlN0eWxlRnVuY3Rpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHN5bWJvbE9ialxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG9wYWNpdHlcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3Ioc3ltYm9sT2JqOiBFc3JpU3ltYm9sLCBvcGFjaXR5OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnN5bWJvbE9iaiA9IHN5bWJvbE9iajtcclxuICAgICAgICB0aGlzLm9wYWNpdHkgPSBvcGFjaXR5O1xyXG4gICAgICAgIHRoaXMub2xTdHlsZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgPSAnJztcclxuICAgIH1cclxufVxyXG5cclxuaW50ZXJmYWNlIElDb21tb25TeW1ib2x7XHJcbiAgICBuZXcgKHN5bWJvbE9iajogRXNyaVN5bWJvbCwgb3BhY2l0eTogbnVtYmVyKTogQ29tbW9uU3ltYm9sXHJcbn1cclxuXHJcblxyXG5jbGFzcyBQb2ludFN5bWJvbCBleHRlbmRzIENvbW1vblN5bWJvbCB7XHJcbiAgICBjb25zdHJ1Y3RvcihzeW1ib2xPYmo6IEVzcmlTeW1ib2wsIG9wYWNpdHk6IG51bWJlcikge1xyXG4gICAgICAgIHN1cGVyKHN5bWJvbE9iaiwgb3BhY2l0eSk7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnN5bWJvbE9iai50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2VzcmlTTVMnOlxyXG4gICAgICAgICAgICAgICAgbGV0IGlubmVyQ29sb3IgPSBfY29sb3JBcnJheVRvUmdiYSh0aGlzLnN5bWJvbE9iai5jb2xvciwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgICAgIGxldCBvdXRlckNvbG9yID0gX2NvbG9yQXJyYXlUb1JnYmEodGhpcy5zeW1ib2xPYmoub3V0bGluZS5jb2xvciwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgICAgIGxldCBvdXRsaW5lV2lkdGggPSB0aGlzLnN5bWJvbE9iai5vdXRsaW5lLndpZHRoO1xyXG4gICAgICAgICAgICAgICAgbGV0IHJhZGl1cyA9IHRoaXMuc3ltYm9sT2JqLnNpemU7XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMub2xTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5DaXJjbGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogbmV3IG9sLnN0eWxlLkZpbGwoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGlubmVyQ29sb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sLnN0eWxlLlN0cm9rZSh7Y29sb3I6IG91dGVyQ29sb3IsIHdpZHRoOiBvdXRsaW5lV2lkdGh9KVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgc3R5bGU9XCJjb2xvcjogJHtpbm5lckNvbG9yfVwiPiYjOTY3OTs8L3NwYW4+YDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdlc3JpUE1TJzpcclxuICAgICAgICAgICAgICAgIHRoaXMub2xTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5JY29uKHtzcmM6IGBkYXRhOmltYWdlL3BuZztiYXNlNjQsJHt0aGlzLnN5bWJvbE9ialsnaW1hZ2VEYXRhJ119YH0pXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IGA8aW1nIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBoZWlnaHQ9XCIxN1wiIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwke3RoaXMuc3ltYm9sT2JqWydpbWFnZURhdGEnXX1cIj5gO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnN5bWJvbE9iaik7XHJcbiAgICAgICAgICAgICAgICBhbGVydCgnUG9pbnQgc3ltYm9sIGRvZXMgbm90IGhhbmRsZSBzeW1ib2wgdHlwZTogJyArIHRoaXMuc3ltYm9sT2JqWyd0eXBlJ10pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgTGluZVN5bWJvbCBleHRlbmRzIENvbW1vblN5bWJvbCB7XHJcbiAgICBjb25zdHJ1Y3RvcihzeW1ib2xPYmo6IEVzcmlTeW1ib2wsIG9wYWNpdHk6IG51bWJlcikge1xyXG4gICAgICAgIHN1cGVyKHN5bWJvbE9iaiwgb3BhY2l0eSk7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnN5bWJvbE9iai50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2VzcmlTTFMnOlxyXG4gICAgICAgICAgICAgICAgbGV0IGlubmVyQ29sb3IgPSBfY29sb3JBcnJheVRvUmdiYSh0aGlzLnN5bWJvbE9iai5jb2xvciwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgICAgIGxldCBsaW5lV2lkdGggPSB0aGlzLnN5bWJvbE9iai53aWR0aDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9sU3R5bGUgPSBuZXcgb2wuc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sLnN0eWxlLlN0cm9rZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbm5lckNvbG9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2xpbmVEYXNoOiBbNF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBsaW5lV2lkdGhcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sID0gYDxzcGFuIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGBzdHlsZT1cImA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGJhY2tncm91bmQtY29sb3I6ICR7aW5uZXJDb2xvcn07YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgd2lkdGg6IDQwcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgaGVpZ2h0OiA0cHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgcG9zaXRpb246IHJlbGF0aXZlO2A7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGRpc3BsYXk6IGlubGluZS1ibG9jaztgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGB0b3A6IC0xcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgXCI+PC9zcGFuPmA7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc3ltYm9sT2JqKTtcclxuICAgICAgICAgICAgICAgIGFsZXJ0KCdMaW5lIHN5bWJvbCBkb2VzIG5vdCBoYW5kbGUgc3ltYm9sIHR5cGU6ICcgKyB0aGlzLnN5bWJvbE9ialsndHlwZSddKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFBvbHlnb25TeW1ib2wgZXh0ZW5kcyBDb21tb25TeW1ib2wge1xyXG4gICAgY29uc3RydWN0b3Ioc3ltYm9sT2JqOiBFc3JpU3ltYm9sLCBvcGFjaXR5OiBudW1iZXIpIHtcclxuICAgICAgICBzdXBlcihzeW1ib2xPYmosIG9wYWNpdHkpO1xyXG4gICAgICAgIHN3aXRjaCAodGhpcy5zeW1ib2xPYmpbJ3R5cGUnXSkge1xyXG4gICAgICAgICAgICBjYXNlICdlc3JpU0ZTJzpcclxuICAgICAgICAgICAgICAgIGxldCBpbm5lckNvbG9yID0gX2NvbG9yQXJyYXlUb1JnYmEodGhpcy5zeW1ib2xPYmouY29sb3IsIHRoaXMub3BhY2l0eSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgb3V0ZXJDb2xvciA9IF9jb2xvckFycmF5VG9SZ2JhKHRoaXMuc3ltYm9sT2JqLm91dGxpbmUuY29sb3IsIHRoaXMub3BhY2l0eSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgb3V0bGluZVdpZHRoID0gdGhpcy5zeW1ib2xPYmoub3V0bGluZS53aWR0aDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9sU3R5bGUgPSBuZXcgb2wuc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sLnN0eWxlLlN0cm9rZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBvdXRlckNvbG9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2xpbmVEYXNoOiBbNF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBvdXRsaW5lV2lkdGhcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICBmaWxsOiBuZXcgb2wuc3R5bGUuRmlsbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbm5lckNvbG9yXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgYDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgc3R5bGU9XCJgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGBiYWNrZ3JvdW5kLWNvbG9yOiAke2lubmVyQ29sb3J9O2A7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGJvcmRlcjogc29saWQgJHtvdXRlckNvbG9yfSAxcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgd2lkdGg6IDQwcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgaGVpZ2h0OiA5cHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgcG9zaXRpb246IHJlbGF0aXZlO2A7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGRpc3BsYXk6IGlubGluZS1ibG9jaztgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGB0b3A6IDJweDtgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGBcIj48L3NwYW4+YDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc3ltYm9sT2JqKTtcclxuICAgICAgICAgICAgICAgIGFsZXJ0KCdQb2x5Z29uIHN5bWJvbCBkb2VzIGhhbmRsZSBzeW1ib2wgdHlwZTogJyArIHRoaXMuc3ltYm9sT2JqWyd0eXBlJ10pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgU3ltYm9sR2VuZXJhdG9yIHtcclxuICAgIG9wYWNpdHk6IG51bWJlcjtcclxuICAgIHJlbmRlcmVyOiBFc3JpUmVuZGVyZXI7XHJcbiAgICBsZWdlbmRIdG1sOiBzdHJpbmc7XHJcbiAgICBvbFN0eWxlOiBvbC5zdHlsZS5TdHlsZXxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuU3R5bGVGdW5jdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihlc3JpUmVzcG9uc2U6IEVzcmlSZXNwb25zZSkge1xyXG4gICAgICAgIHRoaXMub3BhY2l0eSA9ICgxMDAgLSAoZXNyaVJlc3BvbnNlWydkcmF3aW5nSW5mbyddWyd0cmFuc3BhcmVuY3knXSB8fCAwKSkgLyAxMDA7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IGVzcmlSZXNwb25zZS5kcmF3aW5nSW5mby5yZW5kZXJlcjtcclxuICAgICAgICB0aGlzLm9sU3R5bGUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5sZWdlbmRIdG1sID0gJyc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFNpbmdsZVN5bWJvbCBleHRlbmRzIFN5bWJvbEdlbmVyYXRvciB7XHJcbiAgICBzeW1ib2w6IEVzcmlTeW1ib2w7XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZXNyaVJlc3BvbnNlIC0gbGF5ZXIgaW5mb1xyXG4gICAgICogQHBhcmFtIFN5bWJvbENsYXNzIC0gdGhlIHN5bWJvbCBjbGFzcyB0byB1c2VcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoZXNyaVJlc3BvbnNlLCBTeW1ib2xDbGFzczogSUNvbW1vblN5bWJvbCkge1xyXG4gICAgICAgIHN1cGVyKGVzcmlSZXNwb25zZSk7XHJcbiAgICAgICAgdGhpcy5zeW1ib2wgPSB0aGlzLnJlbmRlcmVyLnN5bWJvbDtcclxuICAgICAgICBsZXQgc3ltYm9sT2JqID0gbmV3IFN5bWJvbENsYXNzKHRoaXMuc3ltYm9sLCB0aGlzLm9wYWNpdHkpO1xyXG4gICAgICAgIHRoaXMub2xTdHlsZSA9IHN5bWJvbE9iai5vbFN0eWxlO1xyXG4gICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IHN5bWJvbE9iai5sZWdlbmRIdG1sO1xyXG4gICAgfVxyXG59XHJcblxyXG5jbGFzcyBVbmlxdWVWYWx1ZVN5bWJvbCBleHRlbmRzIFN5bWJvbEdlbmVyYXRvciB7XHJcblxyXG4gICAgcHJvcGVydHlOYW1lOiBzdHJpbmc7XHJcbiAgICBkZWZhdWx0U3ltYm9sOiBFc3JpU3ltYm9sO1xyXG4gICAgZGVmYXVsdFN0eWxlOiBvbC5zdHlsZS5TdHlsZXxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuU3R5bGVGdW5jdGlvbjtcclxuICAgIGRlZmF1bHRMYWJlbEh0bWw6IHN0cmluZztcclxuICAgIGxhYmVsQXJyYXk6IEFycmF5PHN0cmluZz47XHJcbiAgICBsZWdlbmRBcnJheTogQXJyYXk8c3RyaW5nPjtcclxuICAgIHByb3BlcnR5U3R5bGVMb29rdXA6IE9iamVjdDtcclxuICAgIHZhbHVlQXJyYXk6IEFycmF5PGFueT47XHJcbiAgICB1bmlxdWVWYWx1ZUluZm9zOiBBcnJheTx7bGFiZWw6IHN0cmluZywgdmFsdWU6IGFueSwgc3ltYm9sOiBFc3JpU3ltYm9sfT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGVzcmlSZXNwb25zZSAtIGxheWVyIGluZm9cclxuICAgICAqIEBwYXJhbSBTeW1ib2xDbGFzcyAtIHRoZSBTeW1ib2wgY2xhc3MgZGVmaW5pdGlvblxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcihlc3JpUmVzcG9uc2U6IEVzcmlSZXNwb25zZSwgU3ltYm9sQ2xhc3M6IElDb21tb25TeW1ib2wpIHtcclxuICAgICAgICBzdXBlcihlc3JpUmVzcG9uc2UpO1xyXG4gICAgICAgIHRoaXMudW5pcXVlVmFsdWVJbmZvcyA9IHRoaXMucmVuZGVyZXJbJ3VuaXF1ZVZhbHVlSW5mb3MnXTtcclxuICAgICAgICB0aGlzLnByb3BlcnR5TmFtZSA9IHRoaXMucmVuZGVyZXJbJ2ZpZWxkMSddO1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdFN5bWJvbCA9IHRoaXMucmVuZGVyZXJbJ2RlZmF1bHRTeW1ib2wnXTtcclxuXHJcblxyXG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRTeW1ib2wpIHtcclxuICAgICAgICAgICAgbGV0IHN5bWJvbE9iaiA9IG5ldyBTeW1ib2xDbGFzcyh0aGlzLmRlZmF1bHRTeW1ib2wsIHRoaXMub3BhY2l0eSk7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFN0eWxlID0gc3ltYm9sT2JqLm9sU3R5bGU7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdExhYmVsSHRtbCA9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtodG1sRXNjYXBlKHRoaXMucmVuZGVyZXJbJ2RlZmF1bHRMYWJlbCddKX08L3NwYW4+YCArIHN5bWJvbE9iai5sZWdlbmRIdG1sO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFN0eWxlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRMYWJlbEh0bWwgPSAnb3RoZXInO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy52YWx1ZUFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sYWJlbEFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sZWdlbmRBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMucHJvcGVydHlTdHlsZUxvb2t1cCA9IHt9O1xyXG5cclxuICAgICAgICBmb3IgKGxldCB1bmlxdWVWYWwgb2YgdGhpcy51bmlxdWVWYWx1ZUluZm9zKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGFiZWxBcnJheS5wdXNoKHVuaXF1ZVZhbFsnbGFiZWwnXSk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVBcnJheS5wdXNoKHVuaXF1ZVZhbFsndmFsdWUnXSk7XHJcbiAgICAgICAgICAgIGxldCB1bmlxdWVTeW0gPSBuZXcgU3ltYm9sQ2xhc3ModW5pcXVlVmFsLnN5bWJvbCwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgdGhpcy5sZWdlbmRBcnJheS5wdXNoKGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtodG1sRXNjYXBlKHVuaXF1ZVZhbFsnbGFiZWwnXSl9PC9zcGFuPmAgKyB1bmlxdWVTeW0ubGVnZW5kSHRtbCk7XHJcbiAgICAgICAgICAgIHRoaXMucHJvcGVydHlTdHlsZUxvb2t1cFt1bmlxdWVWYWxbJ3ZhbHVlJ11dID0gdW5pcXVlU3ltLm9sU3R5bGU7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgdGhpcy5vbFN0eWxlID0gKGZlYXR1cmU6IG9sLkZlYXR1cmUpID0+IHtcclxuICAgICAgICAgICAgbGV0IGNoZWNrUHJvcGVydGllcyA9IGZlYXR1cmUuZ2V0UHJvcGVydGllcygpO1xyXG4gICAgICAgICAgICBsZXQgY2hlY2tQcm9wZXJ0eSA9IGNoZWNrUHJvcGVydGllc1t0aGlzLnByb3BlcnR5TmFtZV07XHJcblxyXG4gICAgICAgICAgICBsZXQgcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BlcnR5U3R5bGVMb29rdXBbY2hlY2tQcm9wZXJ0eV0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBbdGhpcy5wcm9wZXJ0eVN0eWxlTG9va3VwW2NoZWNrUHJvcGVydHldXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBbdGhpcy5kZWZhdWx0U3R5bGVdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdExhYmVsSHRtbCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmxlZ2VuZEFycmF5LnB1c2godGhpcy5kZWZhdWx0TGFiZWxIdG1sKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubGVnZW5kSHRtbCA9ICc8dWw+JztcclxuICAgICAgICBmb3IgKGxldCBoIG9mIHRoaXMubGVnZW5kQXJyYXkpIHtcclxuICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGA8bGk+JHtofTwvbGk+YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9ICc8L3VsPic7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4vKipcclxuICogc3R5bGUgYW5kIGxlZ2VuZCBvYmplY3RcclxuICogQHR5cGVkZWYge29iamVjdH0gc3R5bGVBbmRMZWdlbmRcclxuICogQHByb3BlcnR5IHtzdHlsZUZ1bmN9IHN0eWxlIC0gc3R5bGUgZnVuY3Rpb25cclxuICogQHByb3BlcnR5IHtzdHJpbmd9IGxlZ2VuZCAtIGxlZ2VuZCBjb250ZW50XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBlc3JpUmVzcG9uc2UgLSBsYXllciBpbmZvXHJcbiAqIEByZXR1cm5zIHtzdHlsZUFuZExlZ2VuZH0gc3R5bGUgYW5kIGxlZ2VuZCBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBtYWtlRmVhdHVyZVNlcnZpY2VMZWdlbmRBbmRTeW1ib2woZXNyaVJlc3BvbnNlOiBFc3JpUmVzcG9uc2UpIHtcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG4gICAgbGV0IHJlbmRlcmVyID0gZXNyaVJlc3BvbnNlLmRyYXdpbmdJbmZvLnJlbmRlcmVyO1xyXG4gICAgbGV0IHN5bWJvbExlZ2VuZE91dDogU3ltYm9sR2VuZXJhdG9yID0gbnVsbDtcclxuXHJcbiAgICBzd2l0Y2ggKHJlbmRlcmVyLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdzaW1wbGUnOlxyXG4gICAgICAgICAgICBzd2l0Y2ggKGVzcmlSZXNwb25zZS5nZW9tZXRyeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2VzcmlHZW9tZXRyeVBvaW50JzpcclxuICAgICAgICAgICAgICAgICAgICBzeW1ib2xMZWdlbmRPdXQgPSBuZXcgU2luZ2xlU3ltYm9sKGVzcmlSZXNwb25zZSwgUG9pbnRTeW1ib2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZXNyaUdlb21ldHJ5UG9seWxpbmUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbExlZ2VuZE91dCA9IG5ldyBTaW5nbGVTeW1ib2woZXNyaVJlc3BvbnNlLCBMaW5lU3ltYm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2VzcmlHZW9tZXRyeVBvbHlnb24nOlxyXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbExlZ2VuZE91dCA9IG5ldyBTaW5nbGVTeW1ib2woZXNyaVJlc3BvbnNlLCBQb2x5Z29uU3ltYm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXNyaVJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICBhbGVydChlc3JpUmVzcG9uc2UuZ2VvbWV0cnlUeXBlICsgJyBub3QgaGFuZGxlZCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3VuaXF1ZVZhbHVlJzpcclxuICAgICAgICAgICAgc3dpdGNoIChlc3JpUmVzcG9uc2UuZ2VvbWV0cnlUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdlc3JpR2VvbWV0cnlQb2ludCc6XHJcbiAgICAgICAgICAgICAgICAgICAgc3ltYm9sTGVnZW5kT3V0ID0gbmV3IFVuaXF1ZVZhbHVlU3ltYm9sKGVzcmlSZXNwb25zZSwgUG9pbnRTeW1ib2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZXNyaUdlb21ldHJ5UG9seWxpbmUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbExlZ2VuZE91dCA9IG5ldyBVbmlxdWVWYWx1ZVN5bWJvbChlc3JpUmVzcG9uc2UsIExpbmVTeW1ib2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZXNyaUdlb21ldHJ5UG9seWdvbic6XHJcbiAgICAgICAgICAgICAgICAgICAgc3ltYm9sTGVnZW5kT3V0ID0gbmV3IFVuaXF1ZVZhbHVlU3ltYm9sKGVzcmlSZXNwb25zZSwgUG9seWdvblN5bWJvbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVzcmlSZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxlcnQoZXNyaVJlc3BvbnNlWydnZW9tZXRyeVR5cGUnXSArICcgbm90IGhhbmRsZWQnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBhbGVydCgnbm90IGhhbmRsZWQgcmVuZGVyZXIgdHlwZTogJyArIHJlbmRlcmVyWyd0eXBlJ10pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzeW1ib2xMZWdlbmRPdXQgPT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiB7c3R5bGU6IHVuZGVmaW5lZCwgbGVnZW5kOiAnJ307XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB7c3R5bGU6IHN5bWJvbExlZ2VuZE91dC5vbFN0eWxlLCBsZWdlbmQ6IHN5bWJvbExlZ2VuZE91dC5sZWdlbmRIdG1sfTtcclxuICAgIH1cclxufVxyXG5cclxubm0ubWFrZUZlYXR1cmVTZXJ2aWNlTGVnZW5kQW5kU3ltYm9sID0gbWFrZUZlYXR1cmVTZXJ2aWNlTGVnZW5kQW5kU3ltYm9sO1xyXG5cclxuXHJcbi8qKlxyXG4gKlxyXG4gKiBAcGFyYW0ge29iamVjdH0gbHlyT2JqZWN0IC0gdGhlIGxheWVyIGFzIGRlZmluZWQgaW4gdGhlIHJlc3BvbnNlXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3NraXBMYXllck5hbWVBbmRFeHBhbmRlcj1mYWxzZV0gdXNlIG9ubHkgaWNvbnNcclxuICogQHJldHVybnMge3N0cmluZ30gbGVnZW5kIGh0bWxcclxuICovXHJcbmZ1bmN0aW9uIG1hcFNlcnZpY2VMZWdlbmRJdGVtKGx5ck9iamVjdCwgc2tpcExheWVyTmFtZUFuZEV4cGFuZGVyOiBib29sZWFuID0gZmFsc2UpIHtcclxuXHJcblxyXG4gICAgc2tpcExheWVyTmFtZUFuZEV4cGFuZGVyID0gdHlwZW9mIHNraXBMYXllck5hbWVBbmRFeHBhbmRlciA9PSAnYm9vbGVhbicgPyBza2lwTGF5ZXJOYW1lQW5kRXhwYW5kZXIgOiBmYWxzZTtcclxuICAgIGxldCBsYXllck5hbWUgPSBseXJPYmplY3RbJ2xheWVyTmFtZSddO1xyXG4gICAgbGV0IGxlZ2VuZEl0ZW1zID0gbHlyT2JqZWN0WydsZWdlbmQnXTtcclxuICAgIGxldCBsZWdlbmRIdG1sID0gJyc7XHJcblxyXG4gICAgaWYgKCFza2lwTGF5ZXJOYW1lQW5kRXhwYW5kZXIpIHtcclxuICAgICAgICBsZWdlbmRIdG1sICs9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtsYXllck5hbWV9PC9zcGFuPmA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGxlZ2VuZEl0ZW1zLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgbGVnZW5kSHRtbCA9IGA8aW1nIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBoZWlnaHQ9XCIxN1wiIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwke2xlZ2VuZEl0ZW1zWzBdWydpbWFnZURhdGEnXX1cIj5gO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoIXNraXBMYXllck5hbWVBbmRFeHBhbmRlcikge1xyXG4gICAgICAgICAgICBsZWdlbmRIdG1sICs9ICc8c3BhbiBjbGFzcz1cImxlZ2VuZC1pdGVtcy1leHBhbmRlclwiIHRpdGxlPVwiRXhwYW5kL0NvbGxhcHNlXCI+JiM5NjYwOzwvc3Bhbj4nO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZWdlbmRIdG1sICs9ICc8dWw+JztcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlZ2VuZEl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxlZ2VuZEh0bWwgKz0gYDxsaT5gO1xyXG4gICAgICAgICAgICBsZWdlbmRIdG1sICs9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtodG1sRXNjYXBlKGxlZ2VuZEl0ZW1zW2ldWydsYWJlbCddKX08L3NwYW4+YDtcclxuICAgICAgICAgICAgbGVnZW5kSHRtbCArPSBgPGltZyBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgaGVpZ2h0PVwiMTdcIiBzcmM9XCJkYXRhOmltYWdlL3BuZztiYXNlNjQsJHtsZWdlbmRJdGVtc1tpXVsnaW1hZ2VEYXRhJ119XCI+YDtcclxuICAgICAgICAgICAgbGVnZW5kSHRtbCArPSBgPC9saT5gO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZWdlbmRIdG1sICs9ICc8L3VsPic7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFza2lwTGF5ZXJOYW1lQW5kRXhwYW5kZXIpIHtcclxuICAgICAgICBsZWdlbmRIdG1sID0gYDxzcGFuIGNsYXNzPVwibGVnZW5kLWxheWVyLXN1Yml0ZW1cIj4ke2xheWVyTmFtZX08L3NwYW4+YCArIGxlZ2VuZEh0bWw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGxlZ2VuZEh0bWw7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBtYWtlIG1hcCBzZXJ2aWNlIGxlZ2VudFxyXG4gKiBAcGFyYW0ge29iamVjdH0gZXNyaVJlc3BvbnNlIC0gbGF5ZXIgaW5mb1xyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBsZWdlbmQgY29udGVudFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VNYXBTZXJ2aWNlTGVnZW5kKGVzcmlSZXNwb25zZSkge1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG4gICAgbGV0IG5ld0xlZ2VuZEh0bWwgPSAnJztcclxuXHJcbiAgICBsZXQgbGF5ZXJzID0gZXNyaVJlc3BvbnNlWydsYXllcnMnXTtcclxuXHJcbiAgICBpZiAobGF5ZXJzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgbmV3TGVnZW5kSHRtbCArPSBtYXBTZXJ2aWNlTGVnZW5kSXRlbShsYXllcnNbMF0sIHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdMZWdlbmRIdG1sICs9ICc8dWw+JztcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxheWVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBuZXdMZWdlbmRIdG1sICs9ICc8bGk+JyArIG1hcFNlcnZpY2VMZWdlbmRJdGVtKGxheWVyc1tpXSkgKyAnPC9saT4nO1xyXG4gICAgICAgIH1cclxuICAgICAgICBuZXdMZWdlbmRIdG1sICs9ICc8L3VsPic7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5ld0xlZ2VuZEh0bWw7XHJcbn1cclxuXHJcbm5tLm1ha2VNYXBTZXJ2aWNlTGVnZW5kID0gbWFrZU1hcFNlcnZpY2VMZWdlbmQ7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/esriToOlStyle.ts\n// module id = 15\n// module chunks = 0 2 3","/**\r\n * Created by gavorhes on 11/2/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"../util/provide\");\r\nvar range_change_1 = require(\"./range-change\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('domUtil');\r\n/**\r\n * @callback mediaCallback\r\n * @param {number} tm\r\n */\r\nfunction timeToLocalDateString(tm) {\r\n \"use strict\";\r\n var d = new Date(tm);\r\n var p1 = d.toLocaleTimeString().split(' ');\r\n var p2 = p1[0].split(':');\r\n p2 = p2.slice(0, 2);\r\n return d.toLocaleDateString() + '<br>' + p2.join(':') + ' ' + p1[1];\r\n}\r\nvar MediaControl = (function () {\r\n /**\r\n *\r\n * @param element\r\n * @param changeFunc\r\n * @param mediaConfig\r\n */\r\n function MediaControl(element, changeFunc, mediaConfig) {\r\n if (changeFunc === void 0) { changeFunc = function () { return; }; }\r\n if (mediaConfig === void 0) { mediaConfig = {}; }\r\n var _this = this;\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 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 }\r\n else {\r\n this._container = element;\r\n }\r\n this._container.addClass('media-control-container');\r\n this._playInterval = mediaConfig.playInterval;\r\n this._changeFunc = changeFunc;\r\n this._showAsDate = mediaConfig.showAsDate;\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 var htmlStr = '<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 this._container.append(htmlStr);\r\n // let btnPause = this._container.find('.media-pause');\r\n var btnPlay = this._container.find('.media-play');\r\n this._$btnStop = this._container.find('.media-stop');\r\n var btnAhead = this._container.find('.media-ahead');\r\n var btnBack = this._container.find('.media-back');\r\n this._$slider = this._container.find('input[type=range]');\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 this.setMinMaxValueStep(mediaConfig.min, mediaConfig.max, mediaConfig.val, mediaConfig.step);\r\n range_change_1.rangeChange(this._$slider, function (newVal) { _this.currentValue = newVal; }, 100);\r\n var ___this = this;\r\n btnPlay.click(function () {\r\n var $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 ___this._interval = setInterval(function () {\r\n ___this.currentValue += ___this._step;\r\n }, ___this._playInterval);\r\n });\r\n this._$btnStop.click(function () {\r\n clearInterval(___this._interval);\r\n var $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 btnAhead.click(function () {\r\n ___this.currentValue = ___this.currentValue + ___this._step;\r\n });\r\n btnBack.click(function () {\r\n ___this.currentValue = ___this.currentValue - ___this._step;\r\n });\r\n }\r\n MediaControl.prototype.stopPlaying = function () {\r\n if (this._playing) {\r\n this._$btnStop.trigger('click');\r\n }\r\n };\r\n Object.defineProperty(MediaControl.prototype, \"playing\", {\r\n get: function () {\r\n return this._playing;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(MediaControl.prototype, \"min\", {\r\n get: function () {\r\n return this._min;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(MediaControl.prototype, \"max\", {\r\n get: function () {\r\n return this._max;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(MediaControl.prototype, \"step\", {\r\n get: function () {\r\n return this._step;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(MediaControl.prototype, \"currentValue\", {\r\n get: function () {\r\n return this._currentValue;\r\n },\r\n set: function (newValue) {\r\n if (newValue > this._max) {\r\n newValue = this._min;\r\n }\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 if (this._showAsDate) {\r\n this._$valLabelVal.html(timeToLocalDateString(this.currentValue));\r\n }\r\n else {\r\n this._$valLabelVal.html(this.currentValue.toString());\r\n }\r\n this._changeFunc(newValue);\r\n },\r\n enumerable: true,\r\n configurable: true\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 MediaControl.prototype.setMinMaxValueStep = function (newMin, newMax, newValue, newStep) {\r\n this._min = newMin;\r\n this._max = newMax;\r\n newValue = typeof newValue == 'number' ? newValue : newMin;\r\n newStep = typeof newStep == 'number' ? newStep : (newMax - newMin) / 20;\r\n this._currentValue = newValue;\r\n this._step = newStep;\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 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 }\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 Object.defineProperty(MediaControl.prototype, \"changeFunction\", {\r\n /**\r\n *\r\n * @param {mediaCallback} newFunc the callback on change\r\n */\r\n set: function (newFunc) {\r\n this._changeFunc = newFunc;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return MediaControl;\r\n}());\r\nexports.MediaControl = MediaControl;\r\nnm.MediaControl = MediaControl;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1lZGlhLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUVILDJDQUFzQztBQUN0QywrQ0FBMkM7QUFDM0MsMEJBQTZCO0FBRTdCLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFNUI7OztHQUdHO0FBRUgsK0JBQStCLEVBQUU7SUFDN0IsWUFBWSxDQUFDO0lBQ2IsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXBCLE1BQU0sQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxNQUFNLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUM7QUFpQkQ7SUFvQkk7Ozs7O09BS0c7SUFDSCxzQkFDSSxPQUFrQyxFQUNsQyxVQUFrRCxFQUNsRCxXQUFrQztRQURsQywyQkFBQSxFQUFBLDJCQUEwQyxNQUFNLENBQUMsQ0FBQSxDQUFDO1FBQ2xELDRCQUFBLEVBQUEsZ0JBQWtDO1FBSHRDLGlCQWlHQztRQTVGRyxXQUFXLENBQUMsR0FBRyxHQUFHLE9BQU8sV0FBVyxDQUFDLEdBQUcsSUFBSSxRQUFRLEdBQUcsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDM0UsV0FBVyxDQUFDLEdBQUcsR0FB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Q0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDTCxDQUFDO0lBTUQsc0JBQUksd0NBQWM7UUFKbEI7OztXQUdHO2FBQ0gsVUFBbUIsT0FBdUI7WUFDdEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUM7UUFDL0IsQ0FBQzs7O09BQUE7SUFDTCxtQkFBQztBQUFELENBQUMsQUFqTkQsSUFpTkM7QUFqTlksb0NBQVk7QUFtTnpCLEVBQUUsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMi8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCB7cmFuZ2VDaGFuZ2V9IGZyb20gJy4vcmFuZ2UtY2hhbmdlJztcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmxldCBubSA9IHByb3ZpZGUoJ2RvbVV0aWwnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2FsbGJhY2sgbWVkaWFDYWxsYmFja1xyXG4gKiBAcGFyYW0ge251bWJlcn0gdG1cclxuICovXHJcblxyXG5mdW5jdGlvbiB0aW1lVG9Mb2NhbERhdGVTdHJpbmcodG0pIHtcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG4gICAgbGV0IGQgPSBuZXcgRGF0ZSh0bSk7XHJcbiAgICBsZXQgcDEgPSBkLnRvTG9jYWxlVGltZVN0cmluZygpLnNwbGl0KCcgJyk7XHJcbiAgICBsZXQgcDIgPSBwMVswXS5zcGxpdCgnOicpO1xyXG4gICAgcDIgPSBwMi5zbGljZSgwLCAyKTtcclxuXHJcbiAgICByZXR1cm4gZC50b0xvY2FsZURhdGVTdHJpbmcoKSArICc8YnI+JyArIHAyLmpvaW4oJzonKSArICcgJyArIHAxWzFdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIGNoYW5nZUZ1bmN0aW9ue1xyXG4gICAgKG5ld1ZhbD86IG51bWJlcik6IHZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgbWVkaWFSYW5nZUNvbmZpZ3tcclxuICAgIG1pbj86IG51bWJlcjtcclxuICAgIG1heD86IG51bWJlcjtcclxuICAgIHZhbD86IG51bWJlcjtcclxuICAgIHN0ZXA/OiBudW1iZXI7XHJcbiAgICBwbGF5SW50ZXJ2YWw/OiBudW1iZXI7XHJcbiAgICBzaG93QXNEYXRlPzogYm9vbGVhbjtcclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgTWVkaWFDb250cm9sIHtcclxuICAgIF9jb250YWluZXI6IEpRdWVyeTtcclxuICAgIF9taW46IG51bWJlcjtcclxuICAgIF9tYXg6IG51bWJlcjtcclxuICAgIF9wbGF5SW50ZXJ2YWw6IG51bWJlcjtcclxuICAgIF9zdGVwOiBudW1iZXI7XHJcbiAgICBfY3VycmVudFZhbHVlOiBudW1iZXI7XHJcblxyXG4gICAgX3BsYXlpbmc6IGJvb2xlYW47XHJcblxyXG4gICAgXyRidG5TdG9wOiBKUXVlcnk7XHJcbiAgICBfJHNsaWRlcjogSlF1ZXJ5O1xyXG4gICAgXyR2YWxMYWJlbFZhbDogSlF1ZXJ5O1xyXG4gICAgXyR2YWxMYWJlbE1pbjogSlF1ZXJ5O1xyXG4gICAgXyR2YWxMYWJlbE1heDogSlF1ZXJ5O1xyXG4gICAgX2ludGVydmFsOiBudW1iZXI7XHJcbiAgICBfc2hvd0FzRGF0ZTogYm9vbGVhbjtcclxuXHJcbiAgICBfY2hhbmdlRnVuYzogY2hhbmdlRnVuY3Rpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGVsZW1lbnRcclxuICAgICAqIEBwYXJhbSBjaGFuZ2VGdW5jXHJcbiAgICAgKiBAcGFyYW0gbWVkaWFDb25maWdcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgZWxlbWVudDogSlF1ZXJ5fEhUTUxFbGVtZW50fHN0cmluZyxcclxuICAgICAgICBjaGFuZ2VGdW5jOiBjaGFuZ2VGdW5jdGlvbiA9ICgpOiB2b2lkID0+IHtyZXR1cm47fSxcclxuICAgICAgICBtZWRpYUNvbmZpZzogbWVkaWFSYW5nZUNvbmZpZyA9IHt9KSB7XHJcblxyXG4gICAgICAgIG1lZGlhQ29uZmlnLm1pbiA9IHR5cGVvZiBtZWRpYUNvbmZpZy5taW4gPT0gJ251bWJlcicgPyBtZWRpYUNvbmZpZy5taW4gOiAwO1xyXG4gICAgICAgIG1lZGlhQ29uZmlnLm1heCA9IHR5cGVvZiBtZWRpYUNvbmZpZy5tYXggPT0gJ251bWJlcicgPyBtZWRpYUNvbmZpZy5tYXggOiAxMDA7XHJcbiAgICAgICAgbWVkaWFDb25maWcudmFsID0gdHlwZW9mIG1lZGlhQ29uZmlnLnZhbCA9PSAnbnVtYmVyJyA/IG1lZGlhQ29uZmlnLnZhbCA6IDA7XHJcbiAgICAgICAgbWVkaWFDb25maWcuc3RlcCA9IHR5cGVvZiBtZWRpYUNvbmZpZy5zdGVwID09ICdudW1iZXInID8gbWVkaWFDb25maWcuc3RlcCA6IDU7XHJcbiAgICAgICAgbWVkaWFDb25maWcucGxheUludGVydmFsID0gdHlwZW9mIG1lZGlhQ29uZmlnLnBsYXlJbnRlcnZhbCA9PSAnbnVtYmVyJyA/IG1lZGlhQ29uZmlnLnBsYXlJbnRlcnZhbCA6IDUwMDtcclxuICAgICAgICBtZWRpYUNvbmZpZy5zaG93QXNEYXRlID0gdHlwZW9mIG1lZGlhQ29uZmlnLnNob3dBc0RhdGUgPT0gJ2Jvb2xlYW4nID8gbWVkaWFDb25maWcuc2hvd0FzRGF0ZSA6IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mICBlbGVtZW50ID09ICdzdHJpbmcnKXtcclxuICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyID0gJCgnIycgKyBlbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGVsZW1lbnRbJ3N0eWxlJ10gIT09ICd1bmRlZmluZWQnKXtcclxuICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyID0gJChlbGVtZW50KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9jb250YWluZXIgPSBlbGVtZW50IGFzIEpRdWVyeTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2NvbnRhaW5lci5hZGRDbGFzcygnbWVkaWEtY29udHJvbC1jb250YWluZXInKTtcclxuICAgICAgICB0aGlzLl9wbGF5SW50ZXJ2YWwgPSBtZWRpYUNvbmZpZy5wbGF5SW50ZXJ2YWw7XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRnVuYyA9IGNoYW5nZUZ1bmM7XHJcblxyXG4gICAgICAgIHRoaXMuX3Nob3dBc0RhdGUgPSBtZWRpYUNvbmZpZy5zaG93QXNEYXRlO1xyXG5cclxuICAgICAgICB0aGlzLl9jdXJyZW50VmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbWluID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX21heCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl9zdGVwID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX3BsYXlpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgbGV0IGh0bWxTdHIgPVxyXG4gICAgICAgICAgICAnPHNwYW4gY2xhc3M9XCJtZWRpYS1wbGF5ZXItYnV0dG9uIG1lZGlhLWJhY2tcIj48L3NwYW4+JyArXHJcbiAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cIm1lZGlhLXBsYXllci1idXR0b24gbWVkaWEtcGxheVwiPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwibWVkaWEtcGxheWVyLWJ1dHRvbiBtZWRpYS1wYXVzZSBtZWRpYS1kaXNhYmxlZFwiPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwibWVkaWEtcGxheWVyLWJ1dHRvbiBtZWRpYS1zdG9wIG1lZGlhLWRpc2FibGVkXCIgPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwibWVkaWEtcGxheWVyLWJ1dHRvbiBtZWRpYS1haGVhZFwiPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgYDxpbnB1dCB0eXBlPVwicmFuZ2VcIj5gICtcclxuICAgICAgICAgICAgYDxkaXYgY2xhc3M9XCJtZWRpYS1jb250cm9sLXZhbHVlLWxhYmVsLWNvbnRhaW5lclwiPmAgK1xyXG4gICAgICAgICAgICBgPHNwYW4gY2xhc3M9XCJtZWRpYS1jb250cm9sLXZhbHVlLWxhYmVsLW1pblwiPjwvc3Bhbj5gICtcclxuICAgICAgICAgICAgYDxzcGFuIGNsYXNzPVwibWVkaWEtY29udHJvbC12YWx1ZS1sYWJlbC12YWxcIj48L3NwYW4+YCArXHJcbiAgICAgICAgICAgIGA8c3BhbiBjbGFzcz1cIm1lZGlhLWNvbnRyb2wtdmFsdWUtbGFiZWwtbWF4XCI+PC9zcGFuPmAgK1xyXG4gICAgICAgICAgICBgPC9kaXY+YDtcclxuXHJcbiAgICAgICAgdGhpcy5fY29udGFpbmVyLmFwcGVuZChodG1sU3RyKTtcclxuXHJcbiAgICAgICAgLy8gbGV0IGJ0blBhdXNlID0gdGhpcy5fY29udGFpbmVyLmZpbmQoJy5tZWRpYS1wYXVzZScpO1xyXG4gICAgICAgIGxldCBidG5QbGF5ID0gdGhpcy5fY29udGFpbmVyLmZpbmQoJy5tZWRpYS1wbGF5Jyk7XHJcbiAgICAgICAgdGhpcy5fJGJ0blN0b3AgPSB0aGlzLl9jb250YWluZXIuZmluZCgnLm1lZGlhLXN0b3AnKTtcclxuICAgICAgICBsZXQgYnRuQWhlYWQgPSB0aGlzLl9jb250YWluZXIuZmluZCgnLm1lZGlhLWFoZWFkJyk7XHJcbiAgICAgICAgbGV0IGJ0bkJhY2sgPSB0aGlzLl9jb250YWluZXIuZmluZCgnLm1lZGlhLWJhY2snKTtcclxuICAgICAgICB0aGlzLl8kc2xpZGVyID0gdGhpcy5fY29udGFpbmVyLmZpbmQoJ2lucHV0W3R5cGU9cmFuZ2VdJyk7XHJcblxyXG4gICAgICAgIHRoaXMuXyR2YWxMYWJlbE1pbiA9IHRoaXMuX2NvbnRhaW5lci5maW5kKCcubWVkaWEtY29udHJvbC12YWx1ZS1sYWJlbC1taW4nKTtcclxuICAgICAgICB0aGlzLl8kdmFsTGFiZWxWYWwgPSB0aGlzLl9jb250YWluZXIuZmluZCgnLm1lZGlhLWNvbnRyb2wtdmFsdWUtbGFiZWwtdmFsJyk7XHJcbiAgICAgICAgdGhpcy5fJHZhbExhYmVsTWF4ID0gdGhpcy5fY29udGFpbmVyLmZpbmQoJy5tZWRpYS1jb250cm9sLXZhbHVlLWxhYmVsLW1heCcpO1xyXG5cclxuICAgICAgICB0aGlzLnNldE1pbk1heFZhbHVlU3RlcChtZWRpYUNvbmZpZy5taW4sIG1lZGlhQ29uZmlnLm1heCwgbWVkaWFDb25maWcudmFsLCBtZWRpYUNvbmZpZy5zdGVwKTtcclxuXHJcbiAgICAgICAgcmFuZ2VDaGFuZ2UodGhpcy5fJHNsaWRlciwobmV3VmFsKSA9PiB7IHRoaXMuY3VycmVudFZhbHVlID0gbmV3VmFsO30sIDEwMCk7XHJcblxyXG4gICAgICAgIGxldCBfX190aGlzID0gdGhpcztcclxuXHJcbiAgICAgICAgYnRuUGxheS5jbGljayhmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGxldCAkdGhpcyA9ICQodGhpcyk7XHJcbiAgICAgICAgICAgICR0aGlzLmFkZENsYXNzKCdtZWRpYS1kaXNhYmxlZCcpO1xyXG4gICAgICAgICAgICBfX190aGlzLl8kYnRuU3RvcC5yZW1vdmVDbGFzcygnbWVkaWEtZGlzYWJsZWQnKTtcclxuICAgICAgICAgICAgYnRuQWhlYWQuYWRkQ2xhc3MoJ21lZGlhLWxvY2tlZCcpO1xyXG4gICAgICAgICAgICBidG5CYWNrLmFkZENsYXNzKCdtZWRpYS1sb2NrZWQnKTtcclxuICAgICAgICAgICAgX19fdGhpcy5fJHNsaWRlci5wcm9wKCdkaXNhYmxlZCcsIHRydWUpO1xyXG4gICAgICAgICAgICBfX190aGlzLl9wbGF5aW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIF9fX3RoaXMuX2ludGVydmFsID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgX19fdGhpcy5jdXJyZW50VmFsdWUgKz0gX19fdGhpcy5fc3RlcDtcclxuICAgICAgICAgICAgfSwgX19fdGhpcy5fcGxheUludGVydmFsKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fJGJ0blN0b3AuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBjbGVhckludGVydmFsKF9fX3RoaXMuX2ludGVydmFsKTtcclxuICAgICAgICAgICAgbGV0ICR0aGlzID0gJCh0aGlzKTtcclxuICAgICAgICAgICAgJHRoaXMuYWRkQ2xhc3MoJ21lZGlhLWRpc2FibGVkJyk7XHJcbiAgICAgICAgICAgIGJ0blBsYXkucmVtb3ZlQ2xhc3MoJ21lZGlhLWRpc2FibGVkJyk7XHJcbiAgICAgICAgICAgIGJ0bkFoZWFkLnJlbW92ZUNsYXNzKCdtZWRpYS1sb2NrZWQnKTtcclxuICAgICAgICAgICAgYnRuQmFjay5yZW1vdmVDbGFzcygnbWVkaWEtbG9ja2VkJyk7XHJcbiAgICAgICAgICAgIF9fX3RoaXMuXyRzbGlkZXIucHJvcCgnZGlzYWJsZWQnLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIF9fX3RoaXMuX3BsYXlpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgYnRuQWhlYWQuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBfX190aGlzLmN1cnJlbnRWYWx1ZSA9IF9fX3RoaXMuY3VycmVudFZhbHVlICsgX19fdGhpcy5fc3RlcDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgYnRuQmFjay5jbGljayhmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIF9fX3RoaXMuY3VycmVudFZhbHVlID0gX19fdGhpcy5jdXJyZW50VmFsdWUgLSBfX190aGlzLl9zdGVwO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHN0b3BQbGF5aW5nKCl7XHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXlpbmcpe1xyXG4gICAgICAgICAgICB0aGlzLl8kYnRuU3RvcC50cmlnZ2VyKCdjbGljaycpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQgcGxheWluZygpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wbGF5aW5nO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBtaW4oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbWF4KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXg7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHN0ZXAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0ZXA7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGN1cnJlbnRWYWx1ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudFZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBjdXJyZW50VmFsdWUobmV3VmFsdWUpIHtcclxuICAgICAgICBpZiAobmV3VmFsdWUgPiB0aGlzLl9tYXgpIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSB0aGlzLl9taW47XHJcbiAgICAgICAgfSBlbHNlIGlmIChuZXdWYWx1ZSA8IHRoaXMuX21pbikge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9IHRoaXMuX21heDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fY3VycmVudFZhbHVlID0gbmV3VmFsdWU7XHJcbiAgICAgICAgdGhpcy5fJHNsaWRlci52YWwodGhpcy5fY3VycmVudFZhbHVlLnRvRml4ZWQoMikpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fc2hvd0FzRGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl8kdmFsTGFiZWxWYWwuaHRtbCh0aW1lVG9Mb2NhbERhdGVTdHJpbmcodGhpcy5jdXJyZW50VmFsdWUpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl8kdmFsTGFiZWxWYWwuaHRtbCh0aGlzLmN1cnJlbnRWYWx1ZS50b1N0cmluZygpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2NoYW5nZUZ1bmMobmV3VmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IG1pbiBhbmQgbWF4IHZhbHVlIHdpdGggc3RlcFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG5ld01pbiB0aGUgbmV3IG1pblxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG5ld01heCB0aGUgbmV3IG1hc1xyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuZXdWYWx1ZT1uZXdNaW5dIHRoZSB2YWx1ZSB0byBzZXRcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbmV3U3RlcD0obmV3TWF4LW5ld01pbikvMjBdIHN0ZXAgdmFsdWVcclxuICAgICAqL1xyXG4gICAgc2V0TWluTWF4VmFsdWVTdGVwKG5ld01pbiwgbmV3TWF4LCBuZXdWYWx1ZSwgbmV3U3RlcCkge1xyXG4gICAgICAgIHRoaXMuX21pbiA9IG5ld01pbjtcclxuICAgICAgICB0aGlzLl9tYXggPSBuZXdNYXg7XHJcblxyXG4gICAgICAgIG5ld1ZhbHVlID0gdHlwZW9mIG5ld1ZhbHVlID09ICdudW1iZXInID8gbmV3VmFsdWUgOiBuZXdNaW47XHJcbiAgICAgICAgbmV3U3RlcCA9IHR5cGVvZiBuZXdTdGVwID09ICdudW1iZXInID8gbmV3U3RlcCA6IChuZXdNYXgtbmV3TWluKS8yMDtcclxuXHJcbiAgICAgICAgdGhpcy5fY3VycmVudFZhbHVlID0gbmV3VmFsdWU7XHJcbiAgICAgICAgdGhpcy5fc3RlcCA9IG5ld1N0ZXA7XHJcblxyXG4gICAgICAgIHRoaXMuXyRzbGlkZXIucHJvcCgnbWluJywgdGhpcy5taW4udG9TdHJpbmcoKSk7XHJcbiAgICAgICAgdGhpcy5fJHNsaWRlci5wcm9wKCdtYXgnLCB0aGlzLm1heC50b1N0cmluZygpKTtcclxuICAgICAgICB0aGlzLl8kc2xpZGVyLnByb3AoJ3N0ZXAnLCB0aGlzLnN0ZXAudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgdGhpcy5fJHNsaWRlci52YWwodGhpcy5jdXJyZW50VmFsdWUudG9TdHJpbmcoKSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9zaG93QXNEYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyR2YWxMYWJlbE1pbi5odG1sKHRpbWVUb0xvY2FsRGF0ZVN0cmluZyh0aGlzLl9taW4pKTtcclxuICAgICAgICAgICAgdGhpcy5fJHZhbExhYmVsVmFsLmh0bWwodGltZVRvTG9jYWxEYXRlU3RyaW5nKHRoaXMuY3VycmVudFZhbHVlKSk7XHJcbiAgICAgICAgICAgIHRoaXMuXyR2YWxMYWJlbE1heC5odG1sKHRpbWVUb0xvY2FsRGF0ZVN0cmluZyh0aGlzLl9tYXgpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl8kdmFsTGFiZWxNaW4uaHRtbCh0aGlzLl9taW4udG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgIHRoaXMuXyR2YWxMYWJlbFZhbC5odG1sKHRoaXMuY3VycmVudFZhbHVlLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgICAgICB0aGlzLl8kdmFsTGFiZWxNYXguaHRtbCh0aGlzLl9tYXgudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bWVkaWFDYWxsYmFja30gbmV3RnVuYyB0aGUgY2FsbGJhY2sgb24gY2hhbmdlXHJcbiAgICAgKi9cclxuICAgIHNldCBjaGFuZ2VGdW5jdGlvbihuZXdGdW5jOiBjaGFuZ2VGdW5jdGlvbikge1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZUZ1bmMgPSBuZXdGdW5jO1xyXG4gICAgfVxyXG59XHJcblxyXG5ubS5NZWRpYUNvbnRyb2wgPSBNZWRpYUNvbnRyb2w7XHJcblxyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/domUtil/media-control.ts\n// module id = 17\n// module chunks = 0 4","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"../util/provide\");\r\nvar nm = provide_1.default('domUtil');\r\nvar mouseIn = false;\r\nvar mouseDown = false;\r\nvar timeout = null;\r\nvar dragged = false;\r\nvar lastVal;\r\n/**\r\n * Created by gavorhes on 11/2/2015.\r\n */\r\nfunction triggerCallback(callback, evt) {\r\n \"use strict\";\r\n var val = parseFloat(this.value);\r\n var min = parseFloat(this.min);\r\n var max = parseFloat(this.max);\r\n var step = parseFloat(this.step);\r\n if (max - val < step) {\r\n val = max;\r\n }\r\n var percent = (val - min) / (max - min);\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 * 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\nfunction rangeChange($slider, callback, changeTimeout) {\r\n changeTimeout = typeof changeTimeout == 'number' ? changeTimeout : 75;\r\n $slider.mouseenter(function () {\r\n mouseIn = true;\r\n });\r\n $slider.mouseleave(function () {\r\n mouseIn = false;\r\n mouseDown = false;\r\n });\r\n $slider.mousedown(function () {\r\n mouseDown = true;\r\n });\r\n $slider.mouseup(function () {\r\n mouseDown = false;\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 dragged = true;\r\n if (lastVal == this['value']) {\r\n return;\r\n }\r\n lastVal = this['value'];\r\n if (timeout != null) {\r\n clearTimeout(timeout);\r\n }\r\n var _this = this;\r\n timeout = setTimeout(function () {\r\n triggerCallback.call(_this, callback, evt);\r\n timeout = null;\r\n }, changeTimeout);\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 $slider.change(function (evt) {\r\n if (dragged) {\r\n dragged = false;\r\n return;\r\n }\r\n triggerCallback.call(this, callback, evt);\r\n });\r\n return this;\r\n}\r\nexports.rangeChange = rangeChange;\r\nnm.rangeChange = rangeChange;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtY2hhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmFuZ2UtY2hhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkNBQXNDO0FBR3RDLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFOUIsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO0FBQ3BCLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztBQUN0QixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFDbkIsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO0FBQ3BCLElBQUksT0FBTyxDQUFDO0FBeUJaOztHQUVHO0FBRUgseUJBQXlCLFFBQThCLEVBQUUsR0FBRztJQUN4RCxZQUFZLENBQUM7SUFFYixJQUFJLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLElBQUksR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsSUFBSSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixJQUFJLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUEsQ0FBQztRQUNsQixHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksT0FBTyxHQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBRXpDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sT0FBTyxJQUFJLFFBQVEsSUFBSSxHQUFHLElBQUssT0FBTyxDQUFDLENBQUEsQ0FBQztRQUMvQyxNQUFNLENBQUM7SUFDWCxDQUFDO0lBQ0QsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUNkLFFBQVEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFJRDs7Ozs7OztHQU9HO0FBQ0gscUJBQTZCLE9BQWUsRUFBRSxRQUE4QixFQUFFLGFBQXFCO0lBRS9GLGFBQWEsR0FBRyxPQUFRLGFBQWEsSUFBSSxRQUFRLEdBQUcsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUV2RSxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ2YsT0FBTyxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDZixPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ2QsU0FBUyxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDWixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLFNBQVM7SUFDYjs7OztPQUlHO0lBQ0gsVUFBVSxHQUFHO1FBQ2IsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxDQUFDO1FBQ1gsQ0FBQztRQUVELE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFZixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixNQUFNLENBQUM7UUFDWCxDQUFDO1FBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4QixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNsQixZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUVELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztRQUVqQixPQUFPLEdBQUcsVUFBVSxDQUFDO1lBQ2pCLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMzQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRW5CLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxLQUFLO0lBQ1Q7OztPQUdHO0lBQ0gsVUFBVSxHQUFHO1FBQ2IsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRztRQUN4QixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ1YsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUVoQixNQUFNLENBQUM7UUFDWCxDQUFDO1FBQ0QsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLElBQUksQ0FBQztBQUNoQixDQUFDO0FBekVELGtDQXlFQztBQUVELEVBQUUsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnZG9tVXRpbCcpO1xyXG5cclxubGV0IG1vdXNlSW4gPSBmYWxzZTtcclxubGV0IG1vdXNlRG93biA9IGZhbHNlO1xyXG5sZXQgdGltZW91dCA9IG51bGw7XHJcbmxldCBkcmFnZ2VkID0gZmFsc2U7XHJcbmxldCBsYXN0VmFsO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBjYWxsYmFjayBvbiByYW5nZSBjaGFuZ2UgaW50ZXJhY3Rpb24sIGNvbnRleHQgb2YgdGhpcyBpcyB0aGUgZmlyaW5nIGRvbSBlbGVtZW50XHJcbiAqIEBjYWxsYmFjayByYW5nZUNoYW5nZUNhbGxiYWNrXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBuZXdWYWx1ZVxyXG4gKiBAcGFyYW0ge251bWJlcn0gcmF0aW8gdmFsdWUgZnJvbSAwIHRvIDEgcmVsYXRpdmUgb2YgdGhlIHZhbHVlIHRvIHRoZSBtaW4gYW5kIG1heFxyXG4gKiBAcGFyYW0ge29iamVjdH0gZXZ0XHJcbiAqL1xyXG5cclxuLyoqKlxyXG4gKiBjYWxsYmFjayBmdW5jaW9uIGFmdGVyIHRoZSBzbGlkZXIgaGFzIGJlZW4gbW92ZWRcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgcmFuZ2VDaGFuZ2VkQ2FsbGJhY2t7XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gbmV3VmFsdWUgbmV3IHZhbHVlIG9mIHRoZSBzbGlkZXJcclxuICAgICAqIEBwYXJhbSByYXRpbyByYXRpbyBmcm9tIGxvdyB0byBoaWdoLCAwIHRvIDFcclxuICAgICAqIEBwYXJhbSBldnQgdGhlIG9yaWdpbmFsIGV2ZW50XHJcbiAgICAgKi9cclxuICAgIChuZXdWYWx1ZTogbnVtYmVyLCByYXRpbzogbnVtYmVyLCBldnQ6IEV2ZW50KTogYW55XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8yLzIwMTUuXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gdHJpZ2dlckNhbGxiYWNrKGNhbGxiYWNrOiByYW5nZUNoYW5nZWRDYWxsYmFjaywgZXZ0KSB7XHJcbiAgICBcInVzZSBzdHJpY3RcIjtcclxuXHJcbiAgICBsZXQgdmFsID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlKTtcclxuICAgIGxldCBtaW4gPSBwYXJzZUZsb2F0KHRoaXMubWluKTtcclxuICAgIGxldCBtYXggPSBwYXJzZUZsb2F0KHRoaXMubWF4KTtcclxuICAgIGxldCBzdGVwID0gcGFyc2VGbG9hdCh0aGlzLnN0ZXApO1xyXG5cclxuICAgIGlmIChtYXggLSB2YWwgPCBzdGVwKXtcclxuICAgICAgICB2YWwgPSBtYXg7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBlcmNlbnQgPSAgKHZhbCAtIG1pbikgLyAobWF4IC0gbWluKTtcclxuXHJcbiAgICBpZiAodHlwZW9mIGxhc3RWYWwgPT0gJ251bWJlcicgJiYgdmFsID09ICBsYXN0VmFsKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsYXN0VmFsID0gdmFsO1xyXG4gICAgY2FsbGJhY2sodmFsLCBwZXJjZW50LCBldnQpO1xyXG59XHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiBBZGQgYSB2YXJpZXR5IG9mIGxpc3RlbmVycyBmb3IgcmFuZ2UgaW5wdXRzIGFwcGxpZWQgdG8gYSBjb21tb24gY2FsbGJhY2tcclxuICogQHBhcmFtICAkc2xpZGVyIC0ganF1ZXJ5IHJlZmVyZW5jZSB0byB0aGUgc2xpZGVyXHJcbiAqIEBwYXJhbSB7cmFuZ2VDaGFuZ2VDYWxsYmFja30gY2FsbGJhY2sgLSB0aGUgY2FsbGJhY2tcclxuICogQHBhcmFtIHtudW1iZXJ9IFtjaGFuZ2VUaW1lb3V0PTc1XSBiZWZvcmUgdGhlIGNhbGxiYWNrIGlzIGNhbGxlZFxyXG4gKiBAdGhpcyB7alF1ZXJ5fVxyXG4gKiBAcmV0dXJucyB7alF1ZXJ5fSB0aGUgalF1ZXJ5IG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJhbmdlQ2hhbmdlICgkc2xpZGVyOiBKUXVlcnksIGNhbGxiYWNrOiByYW5nZUNoYW5nZWRDYWxsYmFjaywgY2hhbmdlVGltZW91dDogbnVtYmVyKSB7XHJcblxyXG4gICAgY2hhbmdlVGltZW91dCA9IHR5cGVvZiAgY2hhbmdlVGltZW91dCA9PSAnbnVtYmVyJyA/IGNoYW5nZVRpbWVvdXQgOiA3NTtcclxuXHJcbiAgICAkc2xpZGVyLm1vdXNlZW50ZXIoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIG1vdXNlSW4gPSB0cnVlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgJHNsaWRlci5tb3VzZWxlYXZlKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBtb3VzZUluID0gZmFsc2U7XHJcbiAgICAgICAgbW91c2VEb3duID0gZmFsc2U7XHJcbiAgICB9KTtcclxuXHJcbiAgICAkc2xpZGVyLm1vdXNlZG93bihmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgbW91c2VEb3duID0gdHJ1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgICRzbGlkZXIubW91c2V1cChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgbW91c2VEb3duID0gZmFsc2U7XHJcbiAgICB9KTtcclxuXHJcbiAgICAkc2xpZGVyLm1vdXNlbW92ZShcclxuICAgICAgICAvKipcclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBldnQgLSBldmVudCBwcm9wZXJ0aWVzXHJcbiAgICAgICAgICogQHRoaXMge0hUTUxFbGVtZW50fVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGZ1bmN0aW9uIChldnQpIHtcclxuICAgICAgICBpZiAoIShtb3VzZUluICYmIG1vdXNlRG93bikpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZHJhZ2dlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIGlmIChsYXN0VmFsID09IHRoaXNbJ3ZhbHVlJ10pIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsYXN0VmFsID0gdGhpc1sndmFsdWUnXTtcclxuXHJcbiAgICAgICAgaWYgKHRpbWVvdXQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHRyaWdnZXJDYWxsYmFjay5jYWxsKF90aGlzLCBjYWxsYmFjaywgZXZ0KTtcclxuICAgICAgICAgICAgdGltZW91dCA9IG51bGw7XHJcblxyXG4gICAgICAgIH0sIGNoYW5nZVRpbWVvdXQpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgJHNsaWRlci5rZXl1cChcclxuICAgICAgICAvKipcclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBldnQgLSBldmVudCBwcm9wZXJ0aWVzXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgZnVuY3Rpb24gKGV2dCkge1xyXG4gICAgICAgIGlmIChldnQua2V5Q29kZSA9PSAzNyB8fCBldnQua2V5Q29kZSA9PSAzOSkge1xyXG4gICAgICAgICAgICB0cmlnZ2VyQ2FsbGJhY2suY2FsbCh0aGlzLCBjYWxsYmFjaywgZXZ0KTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAkc2xpZGVyLmNoYW5nZShmdW5jdGlvbiAoZXZ0KSB7XHJcbiAgICAgICAgaWYgKGRyYWdnZWQpIHtcclxuICAgICAgICAgICAgZHJhZ2dlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0cmlnZ2VyQ2FsbGJhY2suY2FsbCh0aGlzLCBjYWxsYmFjaywgZXZ0KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG59XHJcblxyXG5ubS5yYW5nZUNoYW5nZSA9IHJhbmdlQ2hhbmdlO1xyXG5cclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/domUtil/range-change.ts\n// module id = 18\n// module chunks = 0 4","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar LayerBase_1 = require(\"./LayerBase\");\r\nvar mapMove_1 = require(\"../olHelpers/mapMove\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('layers');\r\n/**\r\n * The Vector layer base\r\n * @augments LayerBase\r\n * @abstract\r\n */\r\nvar LayerBaseVector = (function (_super) {\r\n __extends(LayerBaseVector, _super);\r\n /**\r\n * The base vector layer\r\n * @param {string} url - pass an empty string to prevent default load and add from a json 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 *\r\n * @param {boolean} [options.autoLoad=false] if the layer should auto load if not visible\r\n * @param {object} [options.style=undefined] the layer style, use openlayers default style if not defined\r\n * @param {boolean} [options.onDemand=false] if the layer should be loaded by extent on map move\r\n * @param {number} [options.onDemandDelay=300] delay before the map move callback should be called\r\n * @param {mapMoveMakeGetParams} [options.mapMoveMakeGetParams=function(lyr, extent, zoomLevel){}] function to create additional map move params\r\n * @param {MapMoveCls} [options.mapMoveObj=mapMove] alternate map move object for use with multi map pages\r\n *\r\n */\r\n function LayerBaseVector(url, options) {\r\n if (options === void 0) { options = {}; }\r\n var _this = _super.call(this, url, options) || this;\r\n options = options;\r\n //prevent regular load if no url has been provided\r\n if (_this.url.trim() == '') {\r\n _this._loaded = true;\r\n }\r\n _this._style = typeof options.style == 'undefined' ? undefined : options.style;\r\n if (_this.visible) {\r\n _this._autoLoad = true;\r\n }\r\n else {\r\n _this._autoLoad = (typeof options['autoLoad'] == 'boolean' ? options['autoLoad'] : false);\r\n }\r\n _this._onDemand = typeof options.onDemand == 'boolean' ? options.onDemand : false;\r\n _this._onDemandDelay = typeof options.onDemandDelay == 'number' ? options.onDemandDelay : 300;\r\n if (options.mapMoveObj) {\r\n _this._mapMove = options.mapMoveObj;\r\n }\r\n else {\r\n _this._mapMove = _this._onDemand ? mapMove_1.default : undefined;\r\n }\r\n _this._mapMoveMakeGetParams = typeof options.mapMoveMakeGetParams == 'function' ? options.mapMoveMakeGetParams :\r\n function () { return {}; };\r\n if (_this._onDemand) {\r\n _this._loaded = true;\r\n _this._mapMoveParams = {};\r\n _this._mapMove.checkInit();\r\n _this._mapMove.addVectorLayer(_this);\r\n }\r\n _this._source = new ol.source.Vector();\r\n _this._olLayer = new ol.layer.Vector({\r\n source: _this._source,\r\n visible: _this.visible,\r\n style: _this.style,\r\n minResolution: _this._minResolution,\r\n maxResolution: _this._maxResolution,\r\n renderOrder: options.renderOrder\r\n });\r\n _this.olLayer.setZIndex(_this._zIndex);\r\n _this._projectionMap = null;\r\n _this._projection4326 = new ol.proj.Projection({ code: \"EPSG:4326\" });\r\n return _this;\r\n }\r\n /**\r\n * dummy to be overridden\r\n * @param {object} featureCollection - geojson or esrijson object\r\n */\r\n LayerBaseVector.prototype.addFeatures = function (featureCollection) {\r\n console.log('Layer vector base addFeatures is a placeholder and does nothing');\r\n };\r\n /**\r\n * Before call to map move callback, can prevent call by returning false\r\n * @param {number} zoom - zoom level\r\n * @param {string} [evtType=undefined] undefined for initial load, otherwise one of 'change:center', 'change:resolution'\r\n * @returns {boolean} if the call should proceed\r\n */\r\n LayerBaseVector.prototype.mapMoveBefore = function (zoom, evtType) {\r\n if (this.minZoom !== undefined) {\r\n if (zoom < this.minZoom) {\r\n return false;\r\n }\r\n }\r\n if (this.maxZoom !== undefined) {\r\n if (zoom > this.maxZoom) {\r\n return false;\r\n }\r\n }\r\n return this.visible;\r\n };\r\n /**\r\n * callback to generate the parameters passed in the get request\r\n * @param {object} extent - extent object\r\n * @param {number} extent.minX - minX\r\n * @param {number} extent.minY - minY\r\n * @param {number} extent.maxX - maxX\r\n * @param {number} extent.maxY - maxY\r\n * @param {number} zoomLevel - zoom level\r\n */\r\n LayerBaseVector.prototype.mapMoveMakeGetParams = function (extent, zoomLevel) {\r\n this._mapMoveParams = {};\r\n $.extend(this._mapMoveParams, this.params);\r\n $.extend(this._mapMoveParams, this._mapMoveMakeGetParams(this, extent, zoomLevel));\r\n };\r\n /**\r\n * callback function on map move\r\n * @param {object} d - the json response\r\n */\r\n LayerBaseVector.prototype.mapMoveCallback = function (d) {\r\n if (this.source) {\r\n this._source.clear();\r\n }\r\n };\r\n /**\r\n * clear features in the layer\r\n */\r\n LayerBaseVector.prototype.clear = function () {\r\n if (this._source) {\r\n this._source.clear();\r\n }\r\n };\r\n Object.defineProperty(LayerBaseVector.prototype, \"onDemandDelay\", {\r\n /**\r\n * get on demand delay in miliseconds\r\n */\r\n get: function () {\r\n return this._onDemandDelay;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"autoLoad\", {\r\n /**\r\n * get if the layer is autoloaded\r\n */\r\n get: function () {\r\n return this._autoLoad;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"style\", {\r\n /**\r\n * get the style definition\r\n */\r\n get: function () {\r\n return this._style;\r\n },\r\n /**\r\n * set the style\r\n * @param style - the style or function\r\n */\r\n set: function (style) {\r\n this._style = style;\r\n this.olLayer.setStyle(this._style);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"mapCrs\", {\r\n /**\r\n * get the map CRS if it is defined by the map move object\r\n */\r\n get: function () {\r\n return this.mapProj == null ? null : this.mapProj.getCode();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"mapProj\", {\r\n get: function () {\r\n if (this._projectionMap != null) {\r\n return this._projectionMap;\r\n }\r\n if (this._mapMove) {\r\n this._projectionMap = this._mapMove.map.getView().getProjection();\r\n return this._projectionMap;\r\n }\r\n else {\r\n return null;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"mapMove\", {\r\n /**\r\n * get the map move object\r\n * @type {MapMoveCls|*}\r\n */\r\n get: function () {\r\n return this._mapMove;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"mapMoveParams\", {\r\n /**\r\n * map move params\r\n * @type {object}\r\n */\r\n get: function () {\r\n return this._mapMoveParams;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"visible\", {\r\n get: function () {\r\n return this._visible;\r\n },\r\n /**\r\n * Set the layer visibility\r\n * @type {boolean}\r\n * @override\r\n */\r\n set: function (visibility) {\r\n _super.prototype.setVisible.call(this, visibility);\r\n if (this._onDemand) {\r\n this.mapMove.triggerLyrLoad(this);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"source\", {\r\n /**\r\n * get the layer vector source\r\n * @override\r\n */\r\n get: function () {\r\n return this.getSource();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"features\", {\r\n /**\r\n * array of ol features\r\n */\r\n get: function () {\r\n return this.source.getFeatures();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"olLayer\", {\r\n /**\r\n *\r\n */\r\n get: function () {\r\n return _super.prototype.getOlLayer.call(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LayerBaseVector.prototype.setZIndex = function (newZ) {\r\n this.olLayer.setZIndex(newZ);\r\n };\r\n return LayerBaseVector;\r\n}(LayerBase_1.LayerBase));\r\nexports.LayerBaseVector = LayerBaseVector;\r\nnm.LayerBaseVector = LayerBaseVector;\r\nexports.default = LayerBaseVector;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJCYXNlVmVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJCYXNlVmVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHlDQUF3RDtBQUN4RCxnREFBMkM7QUFFM0MsMkNBQXNDO0FBQ3RDLDhCQUFpQztBQUNqQywwQkFBNkI7QUFFN0IsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQTRCN0I7Ozs7R0FJRztBQUNIO0lBQXFDLG1DQUFTO0lBZTFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F3Qkc7SUFDSCx5QkFBWSxHQUFXLEVBQUUsT0FBb0M7UUFBcEMsd0JBQUEsRUFBQSxZQUFvQztRQUE3RCxZQUNJLGtCQUFNLEdBQUcsRUFBRSxPQUFPLENBQUMsU0F3RHRCO1FBdERHLE9BQU8sR0FBRyxPQUFpQyxDQUFDO1FBRTVDLGtEQUFrRDtRQUNsRCxFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEIsS0FBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQztRQUVELEtBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxPQUFPLENBQUMsS0FBSyxJQUFJLFdBQVcsR0FBRyxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUU5RSxFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNmLEtBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzFCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLEtBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQzdGLENBQUM7UUFFRCxLQUFJLENB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QUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QyxDQUFDO1FBQ0wsQ0FBQzs7O09BYkE7SUFtQkQsc0JBQUksbUNBQU07UUFKVjs7O1dBR0c7YUFDSDtZQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFzQixDQUFDO1FBQ2hELENBQUM7OztPQUFBO0lBS0Qsc0JBQUkscUNBQVE7UUFIWjs7V0FFRzthQUNIO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckMsQ0FBQzs7O09BQUE7SUFLRCxzQkFBSSxvQ0FBTztRQUhYOztXQUVHO2FBQ0g7WUFDSSxNQUFNLENBQUMsaUJBQU0sVUFBVSxXQUFxQixDQUFDO1FBQ2pELENBQUM7OztPQUFBO0lBRVMsbUNBQVMsR0FBbkIsVUFBb0IsSUFBWTtRQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0wsc0JBQUM7QUFBRCxDQUFDLEFBaFJELENBQXFDLHFCQUFTLEdBZ1I3QztBQWhSWSwwQ0FBZTtBQWtSNUIsRUFBRSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7QUFDckMsa0JBQWUsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMYXllckJhc2UsIExheWVyQmFzZU9wdGlvbnN9IGZyb20gJy4vTGF5ZXJCYXNlJztcclxuaW1wb3J0IG1hcE1vdmUgZnJvbSAnLi4vb2xIZWxwZXJzL21hcE1vdmUnO1xyXG5pbXBvcnQgTWFwTW92ZUNscyBmcm9tICcuLi9vbEhlbHBlcnMvbWFwTW92ZUNscydcclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcblxyXG5jb25zdCBubSA9IHByb3ZpZGUoJ2xheWVycycpO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBtYWtlTWFwTW92ZVBhcmFtcyB7XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gbHlyXHJcbiAgICAgKiBAcGFyYW0gZXh0ZW50XHJcbiAgICAgKiBAcGFyYW0gem9vbUxldmVsXHJcbiAgICAgKi9cclxuICAgIChseXI6IExheWVyQmFzZVZlY3RvciwgZXh0ZW50OiBBcnJheTxudW1iZXI+LCB6b29tTGV2ZWw/OiBudW1iZXIpOiBhbnlcclxufVxyXG5cclxuXHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckJhc2VWZWN0b3JPcHRpb25zIGV4dGVuZHMgTGF5ZXJCYXNlT3B0aW9uc3tcclxuICAgIGF1dG9Mb2FkPzogYm9vbGVhbjtcclxuICAgIHN0eWxlPzogb2wuc3R5bGUuU3R5bGV8QXJyYXk8b2wuc3R5bGUuU3R5bGU+fG9sLlN0eWxlRnVuY3Rpb247XHJcbiAgICBvbkRlbWFuZD86IGJvb2xlYW47XHJcbiAgICBvbkRlbWFuZERlbGF5PzogbnVtYmVyO1xyXG4gICAgbWFwTW92ZU1ha2VHZXRQYXJhbXM/OiBtYWtlTWFwTW92ZVBhcmFtcztcclxuICAgIG1hcE1vdmVPYmo/OiBNYXBNb3ZlQ2xzO1xyXG4gICAgcmVuZGVyT3JkZXI/OiAoYTogb2wuRmVhdHVyZSwgYjogb2wuRmVhdHVyZSkgPT4gbnVtYmVyO1xyXG5cclxufVxyXG5cclxuXHJcblxyXG4vKipcclxuICogVGhlIFZlY3RvciBsYXllciBiYXNlXHJcbiAqIEBhdWdtZW50cyBMYXllckJhc2VcclxuICogQGFic3RyYWN0XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTGF5ZXJCYXNlVmVjdG9yIGV4dGVuZHMgTGF5ZXJCYXNlIHtcclxuICAgIF9vbExheWVyOiBvbC5sYXllci5WZWN0b3I7XHJcbiAgICBfc291cmNlOiBvbC5zb3VyY2UuVmVjdG9yO1xyXG4gICAgX3N0eWxlOiBvbC5zdHlsZS5TdHlsZXxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuU3R5bGVGdW5jdGlvbjtcclxuICAgIF9hdXRvTG9hZDogYm9vbGVhbjtcclxuICAgIF9vbkRlbWFuZDogYm9vbGVhbjtcclxuICAgIF9vbkRlbWFuZERlbGF5OiBudW1iZXI7XHJcbiAgICBfbWFwTW92ZU1ha2VHZXRQYXJhbXM6IG1ha2VNYXBNb3ZlUGFyYW1zO1xyXG4gICAgX21hcE1vdmVQYXJhbXM6IGFueTtcclxuICAgIF9tYXBNb3ZlOiBNYXBNb3ZlQ2xzO1xyXG4gICAgX3Byb2plY3Rpb25NYXA6IG9sLnByb2ouUHJvamVjdGlvbjtcclxuICAgIF9wcm9qZWN0aW9uNDMyNjogb2wucHJvai5Qcm9qZWN0aW9uO1xyXG5cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYmFzZSB2ZWN0b3IgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgLSBwYXNzIGFuIGVtcHR5IHN0cmluZyB0byBwcmV2ZW50IGRlZmF1bHQgbG9hZCBhbmQgYWRkIGZyb20gYSBqc29uIHNvdXJjZVxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgLSBjb25maWdcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5pZF0gLSBsYXllciBpZFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLm5hbWU9VW5uYW1lZCBMYXllcl0gLSBsYXllciBuYW1lXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMub3BhY2l0eT0xXSAtIG9wYWNpdHlcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMudmlzaWJsZT10cnVlXSAtIGRlZmF1bHQgdmlzaWJsZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSAtIG1pbiB6b29tIGxldmVsLCAwIC0gMjhcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5tYXhab29tPXVuZGVmaW5lZF0gLSBtYXggem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMucGFyYW1zPXt9XSB0aGUgZ2V0IHBhcmFtZXRlcnMgdG8gaW5jbHVkZSB0byByZXRyaWV2ZSB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56SW5kZXg9MF0gdGhlIHogaW5kZXggZm9yIHRoZSBsYXllclxyXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbn0gW29wdGlvbnMubG9hZENhbGxiYWNrXSBmdW5jdGlvbiB0byBjYWxsIG9uIGxvYWQsIGNvbnRleHQgdGhpcyBpcyB0aGUgbGF5ZXIgb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENvbGxhcHNlPWZhbHNlXSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGJlIGluaXRpYWxseSBjb2xsYXBzZWRcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ2hlY2tib3g9dHJ1ZV0gaWYgdGhlIGxlZ2VuZCBpdGVtIHNob3VsZCBoYXZlIGEgY2hlY2tib3ggZm9yIHZpc2liaWxpdHlcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ29udGVudF0gYWRkaXRpb25hbCBjb250ZW50IHRvIGFkZCB0byB0aGUgbGVnZW5kXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5hdXRvTG9hZD1mYWxzZV0gaWYgdGhlIGxheWVyIHNob3VsZCBhdXRvIGxvYWQgaWYgbm90IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucy5zdHlsZT11bmRlZmluZWRdIHRoZSBsYXllciBzdHlsZSwgdXNlIG9wZW5sYXllcnMgZGVmYXVsdCBzdHlsZSBpZiBub3QgZGVmaW5lZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5vbkRlbWFuZD1mYWxzZV0gaWYgdGhlIGxheWVyIHNob3VsZCBiZSBsb2FkZWQgYnkgZXh0ZW50IG9uIG1hcCBtb3ZlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMub25EZW1hbmREZWxheT0zMDBdIGRlbGF5IGJlZm9yZSB0aGUgbWFwIG1vdmUgY2FsbGJhY2sgc2hvdWxkIGJlIGNhbGxlZFxyXG4gICAgICogQHBhcmFtIHttYXBNb3ZlTWFrZUdldFBhcmFtc30gW29wdGlvbnMubWFwTW92ZU1ha2VHZXRQYXJhbXM9ZnVuY3Rpb24obHlyLCBleHRlbnQsIHpvb21MZXZlbCl7fV0gZnVuY3Rpb24gdG8gY3JlYXRlIGFkZGl0aW9uYWwgbWFwIG1vdmUgcGFyYW1zXHJcbiAgICAgKiBAcGFyYW0ge01hcE1vdmVDbHN9IFtvcHRpb25zLm1hcE1vdmVPYmo9bWFwTW92ZV0gYWx0ZXJuYXRlIG1hcCBtb3ZlIG9iamVjdCBmb3IgdXNlIHdpdGggbXVsdGkgbWFwIHBhZ2VzXHJcbiAgICAgKlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcih1cmw6IHN0cmluZywgb3B0aW9uczogTGF5ZXJCYXNlVmVjdG9yT3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIodXJsLCBvcHRpb25zKTtcclxuXHJcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgYXMgTGF5ZXJCYXNlVmVjdG9yT3B0aW9ucztcclxuXHJcbiAgICAgICAgLy9wcmV2ZW50IHJlZ3VsYXIgbG9hZCBpZiBubyB1cmwgaGFzIGJlZW4gcHJvdmlkZWRcclxuICAgICAgICBpZiAodGhpcy51cmwudHJpbSgpID09ICcnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zdHlsZSA9IHR5cGVvZiBvcHRpb25zLnN0eWxlID09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogb3B0aW9ucy5zdHlsZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9hdXRvTG9hZCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fYXV0b0xvYWQgPSAodHlwZW9mIG9wdGlvbnNbJ2F1dG9Mb2FkJ10gPT0gJ2Jvb2xlYW4nID8gb3B0aW9uc1snYXV0b0xvYWQnXSA6IGZhbHNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX29uRGVtYW5kID0gdHlwZW9mIG9wdGlvbnMub25EZW1hbmQgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5vbkRlbWFuZCA6IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX29uRGVtYW5kRGVsYXkgPSB0eXBlb2Ygb3B0aW9ucy5vbkRlbWFuZERlbGF5ID09ICdudW1iZXInID8gb3B0aW9ucy5vbkRlbWFuZERlbGF5IDogMzAwO1xyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5tYXBNb3ZlT2JqKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX21hcE1vdmUgPSBvcHRpb25zLm1hcE1vdmVPYmo7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fbWFwTW92ZSA9IHRoaXMuX29uRGVtYW5kID8gbWFwTW92ZSA6IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9tYXBNb3ZlTWFrZUdldFBhcmFtcyA9IHR5cGVvZiBvcHRpb25zLm1hcE1vdmVNYWtlR2V0UGFyYW1zID09ICdmdW5jdGlvbicgPyBvcHRpb25zLm1hcE1vdmVNYWtlR2V0UGFyYW1zIDpcclxuICAgICAgICAgICAgZnVuY3Rpb24gKCkge3JldHVybiB7fTt9O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fb25EZW1hbmQpIHtcclxuICAgICAgICAgICAgdGhpcy5fbG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5fbWFwTW92ZVBhcmFtcyA9IHt9O1xyXG4gICAgICAgICAgICB0aGlzLl9tYXBNb3ZlLmNoZWNrSW5pdCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9tYXBNb3ZlLmFkZFZlY3RvckxheWVyKHRoaXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fc291cmNlID0gbmV3IG9sLnNvdXJjZS5WZWN0b3IoKTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIgPSBuZXcgb2wubGF5ZXIuVmVjdG9yKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IHRoaXMuX3NvdXJjZSxcclxuICAgICAgICAgICAgICAgIHZpc2libGU6IHRoaXMudmlzaWJsZSxcclxuICAgICAgICAgICAgICAgIHN0eWxlOiB0aGlzLnN0eWxlLFxyXG4gICAgICAgICAgICAgICAgbWluUmVzb2x1dGlvbjogdGhpcy5fbWluUmVzb2x1dGlvbixcclxuICAgICAgICAgICAgICAgIG1heFJlc29sdXRpb246IHRoaXMuX21heFJlc29sdXRpb24sXHJcbiAgICAgICAgICAgICAgICByZW5kZXJPcmRlcjogb3B0aW9ucy5yZW5kZXJPcmRlclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5vbExheWVyLnNldFpJbmRleCh0aGlzLl96SW5kZXgpO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5fcHJvamVjdGlvbk1hcCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fcHJvamVjdGlvbjQzMjYgPSBuZXcgb2wucHJvai5Qcm9qZWN0aW9uKHtjb2RlOiBcIkVQU0c6NDMyNlwifSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBkdW1teSB0byBiZSBvdmVycmlkZGVuXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZmVhdHVyZUNvbGxlY3Rpb24gLSBnZW9qc29uIG9yIGVzcmlqc29uIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBhZGRGZWF0dXJlcyhmZWF0dXJlQ29sbGVjdGlvbikge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdMYXllciB2ZWN0b3IgYmFzZSBhZGRGZWF0dXJlcyBpcyBhIHBsYWNlaG9sZGVyIGFuZCBkb2VzIG5vdGhpbmcnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEJlZm9yZSBjYWxsIHRvIG1hcCBtb3ZlIGNhbGxiYWNrLCBjYW4gcHJldmVudCBjYWxsIGJ5IHJldHVybmluZyBmYWxzZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHpvb20gLSB6b29tIGxldmVsXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2V2dFR5cGU9dW5kZWZpbmVkXSB1bmRlZmluZWQgZm9yIGluaXRpYWwgbG9hZCwgb3RoZXJ3aXNlIG9uZSBvZiAnY2hhbmdlOmNlbnRlcicsICdjaGFuZ2U6cmVzb2x1dGlvbidcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBpZiB0aGUgY2FsbCBzaG91bGQgcHJvY2VlZFxyXG4gICAgICovXHJcbiAgICBtYXBNb3ZlQmVmb3JlKHpvb20sIGV2dFR5cGUpIHtcclxuICAgICAgICBpZiAodGhpcy5taW5ab29tICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgaWYgKHpvb20gPCB0aGlzLm1pblpvb20pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMubWF4Wm9vbSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGlmICh6b29tID4gdGhpcy5tYXhab29tKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnZpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBjYWxsYmFjayB0byBnZW5lcmF0ZSB0aGUgcGFyYW1ldGVycyBwYXNzZWQgaW4gdGhlIGdldCByZXF1ZXN0XHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZXh0ZW50IC0gZXh0ZW50IG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5taW5YIC0gbWluWFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5taW5ZIC0gbWluWVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5tYXhYIC0gbWF4WFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5tYXhZIC0gbWF4WVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHpvb21MZXZlbCAtIHpvb20gbGV2ZWxcclxuICAgICAqL1xyXG4gICAgbWFwTW92ZU1ha2VHZXRQYXJhbXMoZXh0ZW50LCB6b29tTGV2ZWwpIHtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlUGFyYW1zID0ge307XHJcbiAgICAgICAgJC5leHRlbmQodGhpcy5fbWFwTW92ZVBhcmFtcywgdGhpcy5wYXJhbXMpO1xyXG4gICAgICAgICQuZXh0ZW5kKHRoaXMuX21hcE1vdmVQYXJhbXMsIHRoaXMuX21hcE1vdmVNYWtlR2V0UGFyYW1zKHRoaXMsIGV4dGVudCwgem9vbUxldmVsKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBjYWxsYmFjayBmdW5jdGlvbiBvbiBtYXAgbW92ZVxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGQgLSB0aGUganNvbiByZXNwb25zZVxyXG4gICAgICovXHJcbiAgICBtYXBNb3ZlQ2FsbGJhY2soZCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNvdXJjZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9zb3VyY2UuY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBjbGVhciBmZWF0dXJlcyBpbiB0aGUgbGF5ZXJcclxuICAgICAqL1xyXG4gICAgY2xlYXIoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3NvdXJjZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9zb3VyY2UuY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgb24gZGVtYW5kIGRlbGF5IGluIG1pbGlzZWNvbmRzXHJcbiAgICAgKi9cclxuICAgIGdldCBvbkRlbWFuZERlbGF5KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29uRGVtYW5kRGVsYXk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgaWYgdGhlIGxheWVyIGlzIGF1dG9sb2FkZWRcclxuICAgICAqL1xyXG4gICAgZ2V0IGF1dG9Mb2FkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRvTG9hZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgc3R5bGUgZGVmaW5pdGlvblxyXG4gICAgICovXHJcbiAgICBnZXQgc3R5bGUoKTogb2wuU3R5bGVGdW5jdGlvbnxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuc3R5bGUuU3R5bGUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdHlsZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgc3R5bGVcclxuICAgICAqIEBwYXJhbSBzdHlsZSAtIHRoZSBzdHlsZSBvciBmdW5jdGlvblxyXG4gICAgICovXHJcbiAgICBzZXQgc3R5bGUoc3R5bGU6IG9sLlN0eWxlRnVuY3Rpb258QXJyYXk8b2wuc3R5bGUuU3R5bGU+fG9sLnN0eWxlLlN0eWxlKSB7XHJcbiAgICAgICAgdGhpcy5fc3R5bGUgPSBzdHlsZTtcclxuICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0U3R5bGUodGhpcy5fc3R5bGUgYXMgb2wuc3R5bGUuU3R5bGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtYXAgQ1JTIGlmIGl0IGlzIGRlZmluZWQgYnkgdGhlIG1hcCBtb3ZlIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBnZXQgbWFwQ3JzKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwUHJvaiA9PSBudWxsID8gbnVsbCA6IHRoaXMubWFwUHJvai5nZXRDb2RlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG1hcFByb2ooKTogb2wucHJvai5Qcm9qZWN0aW9ue1xyXG4gICAgICAgIGlmICh0aGlzLl9wcm9qZWN0aW9uTWFwICE9IG51bGwpe1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcHJvamVjdGlvbk1hcDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9tYXBNb3ZlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3Byb2plY3Rpb25NYXAgPSB0aGlzLl9tYXBNb3ZlLm1hcC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcHJvamVjdGlvbk1hcDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtYXAgbW92ZSBvYmplY3RcclxuICAgICAqIEB0eXBlIHtNYXBNb3ZlQ2xzfCp9XHJcbiAgICAgKi9cclxuICAgIGdldCBtYXBNb3ZlKCk6IE1hcE1vdmVDbHMge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXBNb3ZlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIG1vdmUgcGFyYW1zXHJcbiAgICAgKiBAdHlwZSB7b2JqZWN0fVxyXG4gICAgICovXHJcbiAgICBnZXQgbWFwTW92ZVBhcmFtcygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWFwTW92ZVBhcmFtcztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdmlzaWJsZSgpOiBib29sZWFue1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSBsYXllciB2aXNpYmlsaXR5XHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqIEBvdmVycmlkZVxyXG4gICAgICovXHJcbiAgICBzZXQgdmlzaWJsZSh2aXNpYmlsaXR5KSB7XHJcbiAgICAgICAgc3VwZXIuc2V0VmlzaWJsZSh2aXNpYmlsaXR5KTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX29uRGVtYW5kKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWFwTW92ZS50cmlnZ2VyTHlyTG9hZCh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIGxheWVyIHZlY3RvciBzb3VyY2VcclxuICAgICAqIEBvdmVycmlkZVxyXG4gICAgICovXHJcbiAgICBnZXQgc291cmNlKCk6IG9sLnNvdXJjZS5WZWN0b3Ige1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNvdXJjZSgpIGFzIG9sLnNvdXJjZS5WZWN0b3I7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhcnJheSBvZiBvbCBmZWF0dXJlc1xyXG4gICAgICovXHJcbiAgICBnZXQgZmVhdHVyZXMoKTogQXJyYXk8b2wuRmVhdHVyZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNvdXJjZS5nZXRGZWF0dXJlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqL1xyXG4gICAgZ2V0IG9sTGF5ZXIoKTogb2wubGF5ZXIuVmVjdG9yIHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0T2xMYXllcigpIGFzIG9sLmxheWVyLlZlY3RvcjtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0WkluZGV4KG5ld1o6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMub2xMYXllci5zZXRaSW5kZXgobmV3Wik7XHJcbiAgICB9XHJcbn1cclxuXHJcbm5tLkxheWVyQmFzZVZlY3RvciA9IExheWVyQmFzZVZlY3RvcjtcclxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJCYXNlVmVjdG9yO1xyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/layers/LayerBaseVector.ts\n// module id = 19\n// module chunks = 0 1","/**\r\n * Created by gavorhes on 11/2/2015.\r\n */\r\n\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar LayerBaseVector_1 = require(\"./LayerBaseVector\");\r\nvar esriToOl = require(\"../olHelpers/esriToOlStyle\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('layers');\r\n/**\r\n * Base layer for esri vector layers\r\n * @augments LayerBaseVector\r\n */\r\nvar LayerBaseVectorEsri = (function (_super) {\r\n __extends(LayerBaseVectorEsri, _super);\r\n /**\r\n * The base vector 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 *\r\n * @param {boolean} [options.autoLoad=false] if the layer should auto load if not visible\r\n * @param {object} [options.style=undefined] the layer style, use openlayers default style if not defined\r\n * @param {boolean} [options.onDemand=false] if the layer should be loaded by extent on map move\r\n * @param {number} [options.onDemandDelay=300] delay before the map move callback should be called\r\n * @param {MapMoveCls} [options.mapMoveObj=mapMove] alternate map move object for use with multi map pages\r\n *\r\n * @param {string} [options.where=1=1] the layer filter clause\r\n * @param {string} [options.outFields=*] comma separated list of output fields, defaults to all\r\n * @param {string} [options.format=pjson] the format the retrieve the data\r\n * @param {number} [options.outSR=3857] the output spatial reference, defaults to web mercator\r\n * @param {boolean} [options.useEsriStyle=false] if the map service style should be used\r\n * @param {boolean} [options.collapseLegend=false] if the legend should be initially collapsed\r\n * @param {number} [options.mapMoveMakeGetParams=function(extent, zoomLevel){}] function to create additional map move params\r\n */\r\n function LayerBaseVectorEsri(url, options) {\r\n var _this = this;\r\n if (typeof options.params != 'object') {\r\n options.params = {};\r\n }\r\n options.params['where'] = options.where || '1=1';\r\n options.params['outFields'] = options.outFields || '*';\r\n options.params['f'] = options.format || 'pjson';\r\n options.params['outSR'] = options.outSR || 3857;\r\n _this = _super.call(this, url, options) || this;\r\n _this._outSR = _this.params['outSR'];\r\n _this._esriFormat = new ol.format.EsriJSON();\r\n if (_this._url[_this._url.length - 1] !== '/') {\r\n _this._url += '/';\r\n }\r\n _this._urlCopy = _this.url;\r\n _this._url += 'query?callback=?';\r\n if (_this.autoLoad || _this.visible) {\r\n _this._load();\r\n }\r\n _this._useEsriStyle = typeof options.useEsriStyle == 'boolean' ? options.useEsriStyle : false;\r\n if (_this._useEsriStyle) {\r\n _this.addLegendContent();\r\n }\r\n return _this;\r\n }\r\n /**\r\n * add additional content to the legend\r\n * @param {string} [additionalContent=''] additional content to add to legend\r\n */\r\n LayerBaseVectorEsri.prototype.addLegendContent = function (additionalContent) {\r\n var _this = this;\r\n if (!this._useEsriStyle) {\r\n _super.prototype.addLegendContent.call(this, additionalContent);\r\n }\r\n else {\r\n $.get(this._urlCopy + '?f=pjson&callback=?', {}, function (d) {\r\n if (d['subLayers'].length > 0) {\r\n alert('should only use single feature layers, not groups');\r\n return;\r\n }\r\n var newStyleAndLegend = esriToOl.makeFeatureServiceLegendAndSymbol(d);\r\n _this.style = newStyleAndLegend.style;\r\n _super.prototype.addLegendContent.call(_this, newStyleAndLegend.legend);\r\n }, 'json');\r\n }\r\n };\r\n /**\r\n * add feature collection\r\n * @param {object} featureCollection - features as esrijson\r\n */\r\n LayerBaseVectorEsri.prototype.addFeatures = function (featureCollection) {\r\n var feats = this._esriFormat.readFeatures(featureCollection);\r\n this.source.addFeatures(feats);\r\n };\r\n /**\r\n * trigger load features\r\n * @protected\r\n * @returns {boolean} if already loaded\r\n */\r\n LayerBaseVectorEsri.prototype._load = function () {\r\n var _this = this;\r\n if (_super.prototype._load.call(this)) {\r\n return true;\r\n }\r\n $.get(this._url, this.params, function (d) {\r\n _this.addFeatures(d);\r\n _this.loadCallback(_this);\r\n }, 'json').fail(function () {\r\n _this._loaded = false;\r\n });\r\n return false;\r\n };\r\n /**\r\n * callback to generate the parameters passed in the get request\r\n * @param {object} extent - extent object\r\n * @param {number} extent.minX - minX\r\n * @param {number} extent.minY - minY\r\n * @param {number} extent.maxX - maxX\r\n * @param {number} extent.maxY - maxY\r\n * @param {number} zoomLevel - zoom level\r\n */\r\n LayerBaseVectorEsri.prototype.mapMoveMakeGetParams = function (extent, zoomLevel) {\r\n _super.prototype.mapMoveMakeGetParams.call(this, extent, zoomLevel);\r\n this.mapMoveParams['geometry'] = extent.minX + \",\" + extent.minY + \",\" + extent.maxX + \",\" + extent.maxY;\r\n this.mapMoveParams['geometryType'] = 'esriGeometryEnvelope';\r\n this.mapMoveParams['spatialRel'] = 'esriSpatialRelIntersects';\r\n this.mapMoveParams['spatialRel'] = 'esriSpatialRelIntersects';\r\n this.mapMoveParams['inSR'] = 3857;\r\n if (this._outSR == 3857) {\r\n this.mapMoveParams['geometryPrecision'] = 1;\r\n }\r\n };\r\n /**\r\n * Before call to map move callback, can prevent call by returning false\r\n * @param {number} zoom - zoom level\r\n * @param {string} [evtType=undefined] undefined for initial load, otherwise one of 'change:center', 'change:resolution'\r\n * @returns {boolean} if the call should proceed\r\n */\r\n LayerBaseVectorEsri.prototype.mapMoveBefore = function (zoom, evtType) {\r\n return _super.prototype.mapMoveBefore.call(this, zoom, evtType);\r\n //if (super.mapMoveBefore(zoom, evtType)){\r\n // //place holder for additional processing\r\n // return true;\r\n //} else {\r\n // return false;\r\n //}\r\n };\r\n /**\r\n * callback function on map move\r\n * @param {object} d - the json response\r\n */\r\n LayerBaseVectorEsri.prototype.mapMoveCallback = function (d) {\r\n _super.prototype.mapMoveCallback.call(this, d);\r\n this.source.addFeatures(this._esriFormat.readFeatures(d));\r\n };\r\n return LayerBaseVectorEsri;\r\n}(LayerBaseVector_1.LayerBaseVector));\r\nexports.LayerBaseVectorEsri = LayerBaseVectorEsri;\r\nnm.LayerBaseVectorEsri = LayerBaseVectorEsri;\r\nexports.default = LayerBaseVectorEsri;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJCYXNlVmVjdG9yRXNyaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkxheWVyQmFzZVZlY3RvckVzcmkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7Ozs7Ozs7Ozs7Ozs7QUFFSCxxREFBMEU7QUFDMUUscURBQXVEO0FBQ3ZELDJDQUFzQztBQUN0Qyw4QkFBaUM7QUFDakMsMEJBQTZCO0FBQzdCLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFVM0I7OztHQUdHO0FBQ0g7SUFBeUMsdUNBQWU7SUFNcEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQThCRztJQUNILDZCQUFZLEdBQVcsRUFBRSxPQUFtQztRQUE1RCxpQkE4QkM7UUE1QkcsRUFBRSxDQUFDLENBQUMsT0FBTyxPQUFPLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDcEMsT0FBTyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDeEIsQ0FBQztRQUNELE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUM7UUFDakQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQztRQUN2RCxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUM7UUFFaEQsUUFBQSxrQkFBTSxHQUFHLEVBQUUsT0FBTyxDQUFDLFNBQUM7UUFDcEIsS0FBSSxDQUFDLE1BQU0sR0FBRyxLQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLEtBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFF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OUQsQ0FBQztJQUNMLDBCQUFDO0FBQUQsQ0FBQyxBQXJLRCxDQUF5QyxpQ0FBZSxHQXFLdkQ7QUFyS1ksa0RBQW1CO0FBdUtoQyxFQUFFLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7QUFDN0Msa0JBQWUsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8yLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtMYXllckJhc2VWZWN0b3IsIExheWVyQmFzZVZlY3Rvck9wdGlvbnN9IGZyb20gJy4vTGF5ZXJCYXNlVmVjdG9yJztcclxuaW1wb3J0ICogYXMgZXNyaVRvT2wgZnJvbSAnLi4vb2xIZWxwZXJzL2VzcmlUb09sU3R5bGUnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgb2wgPSByZXF1aXJlKCdjdXN0b20tb2wnKTtcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxubGV0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExheWVyQmFzZVZlY3RvckVzcmlPcHRpb25zICBleHRlbmRzIExheWVyQmFzZVZlY3Rvck9wdGlvbnN7XHJcbiAgICBmb3JtYXQ/OiBzdHJpbmc7XHJcbiAgICBvdXRTUj86IG51bWJlcjtcclxuICAgIHdoZXJlPzogc3RyaW5nO1xyXG4gICAgb3V0RmllbGRzPzogc3RyaW5nO1xyXG4gICAgdXNlRXNyaVN0eWxlPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEJhc2UgbGF5ZXIgZm9yIGVzcmkgdmVjdG9yIGxheWVyc1xyXG4gKiBAYXVnbWVudHMgTGF5ZXJCYXNlVmVjdG9yXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTGF5ZXJCYXNlVmVjdG9yRXNyaSBleHRlbmRzIExheWVyQmFzZVZlY3RvciB7XHJcbiAgICBfb3V0U1I6IG51bWJlcjtcclxuICAgIF9lc3JpRm9ybWF0OiBvbC5mb3JtYXQuRXNyaUpTT047XHJcbiAgICBfdXJsQ29weTogc3RyaW5nO1xyXG4gICAgX3VzZUVzcmlTdHlsZTogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBiYXNlIHZlY3RvciBsYXllclxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIHVybCBmb3Igc291cmNlXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmlkXSAtIGxheWVyIGlkXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubmFtZT1Vbm5hbWVkIExheWVyXSAtIGxheWVyIG5hbWVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5vcGFjaXR5PTFdIC0gb3BhY2l0eVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy52aXNpYmxlPXRydWVdIC0gZGVmYXVsdCB2aXNpYmxlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWluWm9vbT11bmRlZmluZWRdIC0gbWluIHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1heFpvb209dW5kZWZpbmVkXSAtIG1heCB6b29tIGxldmVsLCAwIC0gMjhcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucy5wYXJhbXM9e31dIHRoZSBnZXQgcGFyYW1ldGVycyB0byBpbmNsdWRlIHRvIHJldHJpZXZlIHRoZSBsYXllclxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLnpJbmRleD0wXSB0aGUgeiBpbmRleCBmb3IgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy5sb2FkQ2FsbGJhY2tdIGZ1bmN0aW9uIHRvIGNhbGwgb24gbG9hZCwgY29udGV4dCB0aGlzIGlzIHRoZSBsYXllciBvYmplY3RcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ29sbGFwc2U9ZmFsc2VdIGlmIHRoZSBsZWdlbmQgaXRlbSBzaG91bGQgYmUgaW5pdGlhbGx5IGNvbGxhcHNlZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDaGVja2JveD10cnVlXSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGhhdmUgYSBjaGVja2JveCBmb3IgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb250ZW50XSBhZGRpdGlvbmFsIGNvbnRlbnQgdG8gYWRkIHRvIHRoZSBsZWdlbmRcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmF1dG9Mb2FkPWZhbHNlXSBpZiB0aGUgbGF5ZXIgc2hvdWxkIGF1dG8gbG9hZCBpZiBub3QgdmlzaWJsZVxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnN0eWxlPXVuZGVmaW5lZF0gdGhlIGxheWVyIHN0eWxlLCB1c2Ugb3BlbmxheWVycyBkZWZhdWx0IHN0eWxlIGlmIG5vdCBkZWZpbmVkXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLm9uRGVtYW5kPWZhbHNlXSBpZiB0aGUgbGF5ZXIgc2hvdWxkIGJlIGxvYWRlZCBieSBleHRlbnQgb24gbWFwIG1vdmVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5vbkRlbWFuZERlbGF5PTMwMF0gZGVsYXkgYmVmb3JlIHRoZSBtYXAgbW92ZSBjYWxsYmFjayBzaG91bGQgYmUgY2FsbGVkXHJcbiAgICAgKiBAcGFyYW0ge01hcE1vdmVDbHN9IFtvcHRpb25zLm1hcE1vdmVPYmo9bWFwTW92ZV0gYWx0ZXJuYXRlIG1hcCBtb3ZlIG9iamVjdCBmb3IgdXNlIHdpdGggbXVsdGkgbWFwIHBhZ2VzXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLndoZXJlPTE9MV0gdGhlIGxheWVyIGZpbHRlciBjbGF1c2VcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5vdXRGaWVsZHM9Kl0gY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygb3V0cHV0IGZpZWxkcywgZGVmYXVsdHMgdG8gYWxsXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuZm9ybWF0PXBqc29uXSB0aGUgZm9ybWF0IHRoZSByZXRyaWV2ZSB0aGUgZGF0YVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm91dFNSPTM4NTddIHRoZSBvdXRwdXQgc3BhdGlhbCByZWZlcmVuY2UsIGRlZmF1bHRzIHRvIHdlYiBtZXJjYXRvclxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy51c2VFc3JpU3R5bGU9ZmFsc2VdIGlmIHRoZSBtYXAgc2VydmljZSBzdHlsZSBzaG91bGQgYmUgdXNlZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5jb2xsYXBzZUxlZ2VuZD1mYWxzZV0gaWYgdGhlIGxlZ2VuZCBzaG91bGQgYmUgaW5pdGlhbGx5IGNvbGxhcHNlZFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1hcE1vdmVNYWtlR2V0UGFyYW1zPWZ1bmN0aW9uKGV4dGVudCwgem9vbUxldmVsKXt9XSBmdW5jdGlvbiB0byBjcmVhdGUgYWRkaXRpb25hbCBtYXAgbW92ZSBwYXJhbXNcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IodXJsOiBzdHJpbmcsIG9wdGlvbnM6IExheWVyQmFzZVZlY3RvckVzcmlPcHRpb25zKSB7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5wYXJhbXMgIT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgb3B0aW9ucy5wYXJhbXMgPSB7fTtcclxuICAgICAgICB9XHJcbiAgICAgICAgb3B0aW9ucy5wYXJhbXNbJ3doZXJlJ10gPSBvcHRpb25zLndoZXJlIHx8ICcxPTEnO1xyXG4gICAgICAgIG9wdGlvbnMucGFyYW1zWydvdXRGaWVsZHMnXSA9IG9wdGlvbnMub3V0RmllbGRzIHx8ICcqJztcclxuICAgICAgICBvcHRpb25zLnBhcmFtc1snZiddID0gb3B0aW9ucy5mb3JtYXQgfHwgJ3Bqc29uJztcclxuICAgICAgICBvcHRpb25zLnBhcmFtc1snb3V0U1InXSA9IG9wdGlvbnMub3V0U1IgfHwgMzg1NztcclxuXHJcbiAgICAgICAgc3VwZXIodXJsLCBvcHRpb25zKTtcclxuICAgICAgICB0aGlzLl9vdXRTUiA9IHRoaXMucGFyYW1zWydvdXRTUiddO1xyXG4gICAgICAgIHRoaXMuX2VzcmlGb3JtYXQgPSBuZXcgb2wuZm9ybWF0LkVzcmlKU09OKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl91cmxbdGhpcy5fdXJsLmxlbmd0aCAtIDFdICE9PSAnLycpIHtcclxuICAgICAgICAgICAgdGhpcy5fdXJsICs9ICcvJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3VybENvcHkgPSB0aGlzLnVybDtcclxuICAgICAgICB0aGlzLl91cmwgKz0gJ3F1ZXJ5P2NhbGxiYWNrPT8nO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5hdXRvTG9hZCB8fCB0aGlzLnZpc2libGUpIHtcclxuICAgICAgICAgICAgdGhpcy5fbG9hZCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fdXNlRXNyaVN0eWxlID0gdHlwZW9mIG9wdGlvbnMudXNlRXNyaVN0eWxlID09ICdib29sZWFuJyA/IG9wdGlvbnMudXNlRXNyaVN0eWxlIDogZmFsc2U7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl91c2VFc3JpU3R5bGUpIHtcclxuICAgICAgICAgICAgdGhpcy5hZGRMZWdlbmRDb250ZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogYWRkIGFkZGl0aW9uYWwgY29udGVudCB0byB0aGUgbGVnZW5kXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2FkZGl0aW9uYWxDb250ZW50PScnXSBhZGRpdGlvbmFsIGNvbnRlbnQgdG8gYWRkIHRvIGxlZ2VuZFxyXG4gICAgICovXHJcbiAgICBhZGRMZWdlbmRDb250ZW50KGFkZGl0aW9uYWxDb250ZW50Pzogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl91c2VFc3JpU3R5bGUpIHtcclxuICAgICAgICAgICAgc3VwZXIuYWRkTGVnZW5kQ29udGVudChhZGRpdGlvbmFsQ29udGVudCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgJC5nZXQodGhpcy5fdXJsQ29weSArICc/Zj1wanNvbiZjYWxsYmFjaz0/Jywge30sIChkKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZFsnc3ViTGF5ZXJzJ10ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0KCdzaG91bGQgb25seSB1c2Ugc2luZ2xlIGZlYXR1cmUgbGF5ZXJzLCBub3QgZ3JvdXBzJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgbmV3U3R5bGVBbmRMZWdlbmQgPSBlc3JpVG9PbC5tYWtlRmVhdHVyZVNlcnZpY2VMZWdlbmRBbmRTeW1ib2woZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0eWxlID0gbmV3U3R5bGVBbmRMZWdlbmQuc3R5bGU7XHJcbiAgICAgICAgICAgICAgICBzdXBlci5hZGRMZWdlbmRDb250ZW50KG5ld1N0eWxlQW5kTGVnZW5kLmxlZ2VuZCk7XHJcbiAgICAgICAgICAgIH0sICdqc29uJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIGFkZCBmZWF0dXJlIGNvbGxlY3Rpb25cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBmZWF0dXJlQ29sbGVjdGlvbiAtIGZlYXR1cmVzIGFzIGVzcmlqc29uXHJcbiAgICAgKi9cclxuICAgIGFkZEZlYXR1cmVzKGZlYXR1cmVDb2xsZWN0aW9uKSB7XHJcbiAgICAgICAgbGV0IGZlYXRzID0gdGhpcy5fZXNyaUZvcm1hdC5yZWFkRmVhdHVyZXMoZmVhdHVyZUNvbGxlY3Rpb24pO1xyXG4gICAgICAgIHRoaXMuc291cmNlLmFkZEZlYXR1cmVzKGZlYXRzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyaWdnZXIgbG9hZCBmZWF0dXJlc1xyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IGlmIGFscmVhZHkgbG9hZGVkXHJcbiAgICAgKi9cclxuICAgIF9sb2FkKCkge1xyXG4gICAgICAgIGlmIChzdXBlci5fbG9hZCgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAkLmdldCh0aGlzLl91cmwsIHRoaXMucGFyYW1zLCAoZCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFkZEZlYXR1cmVzKGQpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRDYWxsYmFjayh0aGlzKTtcclxuICAgICAgICB9LCAnanNvbicpLmZhaWwoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBjYWxsYmFjayB0byBnZW5lcmF0ZSB0aGUgcGFyYW1ldGVycyBwYXNzZWQgaW4gdGhlIGdldCByZXF1ZXN0XHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZXh0ZW50IC0gZXh0ZW50IG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5taW5YIC0gbWluWFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5taW5ZIC0gbWluWVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5tYXhYIC0gbWF4WFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5tYXhZIC0gbWF4WVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHpvb21MZXZlbCAtIHpvb20gbGV2ZWxcclxuICAgICAqL1xyXG4gICAgbWFwTW92ZU1ha2VHZXRQYXJhbXMoZXh0ZW50LCB6b29tTGV2ZWwpIHtcclxuICAgICAgICBzdXBlci5tYXBNb3ZlTWFrZUdldFBhcmFtcyhleHRlbnQsIHpvb21MZXZlbCk7XHJcbiAgICAgICAgdGhpcy5tYXBNb3ZlUGFyYW1zWydnZW9tZXRyeSddID0gYCR7ZXh0ZW50Lm1pblh9LCR7ZXh0ZW50Lm1pbll9LCR7ZXh0ZW50Lm1heFh9LCR7ZXh0ZW50Lm1heFl9YDtcclxuICAgICAgICB0aGlzLm1hcE1vdmVQYXJhbXNbJ2dlb21ldHJ5VHlwZSddID0gJ2VzcmlHZW9tZXRyeUVudmVsb3BlJztcclxuICAgICAgICB0aGlzLm1hcE1vdmVQYXJhbXNbJ3NwYXRpYWxSZWwnXSA9ICdlc3JpU3BhdGlhbFJlbEludGVyc2VjdHMnO1xyXG4gICAgICAgIHRoaXMubWFwTW92ZVBhcmFtc1snc3BhdGlhbFJlbCddID0gJ2VzcmlTcGF0aWFsUmVsSW50ZXJzZWN0cyc7XHJcbiAgICAgICAgdGhpcy5tYXBNb3ZlUGFyYW1zWydpblNSJ10gPSAzODU3O1xyXG4gICAgICAgIGlmICh0aGlzLl9vdXRTUiA9PSAzODU3KSB7XHJcbiAgICAgICAgICAgIHRoaXMubWFwTW92ZVBhcmFtc1snZ2VvbWV0cnlQcmVjaXNpb24nXSA9IDE7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQmVmb3JlIGNhbGwgdG8gbWFwIG1vdmUgY2FsbGJhY2ssIGNhbiBwcmV2ZW50IGNhbGwgYnkgcmV0dXJuaW5nIGZhbHNlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gem9vbSAtIHpvb20gbGV2ZWxcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbZXZ0VHlwZT11bmRlZmluZWRdIHVuZGVmaW5lZCBmb3IgaW5pdGlhbCBsb2FkLCBvdGhlcndpc2Ugb25lIG9mICdjaGFuZ2U6Y2VudGVyJywgJ2NoYW5nZTpyZXNvbHV0aW9uJ1xyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IGlmIHRoZSBjYWxsIHNob3VsZCBwcm9jZWVkXHJcbiAgICAgKi9cclxuICAgIG1hcE1vdmVCZWZvcmUoem9vbSwgZXZ0VHlwZSkge1xyXG4gICAgICAgIHJldHVybiBzdXBlci5tYXBNb3ZlQmVmb3JlKHpvb20sIGV2dFR5cGUpO1xyXG4gICAgICAgIC8vaWYgKHN1cGVyLm1hcE1vdmVCZWZvcmUoem9vbSwgZXZ0VHlwZSkpe1xyXG4gICAgICAgIC8vICAgIC8vcGxhY2UgaG9sZGVyIGZvciBhZGRpdGlvbmFsIHByb2Nlc3NpbmdcclxuICAgICAgICAvLyAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAvL30gZWxzZSB7XHJcbiAgICAgICAgLy8gICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIC8vfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogY2FsbGJhY2sgZnVuY3Rpb24gb24gbWFwIG1vdmVcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBkIC0gdGhlIGpzb24gcmVzcG9uc2VcclxuICAgICAqL1xyXG4gICAgbWFwTW92ZUNhbGxiYWNrKGQpIHtcclxuICAgICAgICBzdXBlci5tYXBNb3ZlQ2FsbGJhY2soZCk7XHJcbiAgICAgICAgdGhpcy5zb3VyY2UuYWRkRmVhdHVyZXModGhpcy5fZXNyaUZvcm1hdC5yZWFkRmVhdHVyZXMoZCkpO1xyXG4gICAgfVxyXG59XHJcblxyXG5ubS5MYXllckJhc2VWZWN0b3JFc3JpID0gTGF5ZXJCYXNlVmVjdG9yRXNyaTtcclxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJCYXNlVmVjdG9yRXNyaTtcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/layers/LayerBaseVectorEsri.ts\n// module id = 24\n// module chunks = 0","/**\r\n * Created by gavorhes on 11/4/2015.\r\n */\r\n\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar LayerBaseXyzTile_1 = require(\"./LayerBaseXyzTile\");\r\nvar RealEarthAnimateTile_1 = require(\"../mixin/RealEarthAnimateTile\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar nm = provide_1.default('layers');\r\n/**\r\n * Real earth tile\r\n * @augments LayerBaseXyzTile\r\n */\r\nvar LayerRealEarthTile = (function (_super) {\r\n __extends(LayerRealEarthTile, _super);\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 function LayerRealEarthTile(options) {\r\n var _this = this;\r\n options.animate = typeof options.animate == 'boolean' ? options.animate : false;\r\n if (options.animate) {\r\n _this = _super.call(this, '', options) || this;\r\n _this._products = options.products;\r\n _this.animator = new RealEarthAnimateTile_1.default(_this, options.timeLoadCallback);\r\n _this.animator.timeInit();\r\n }\r\n else {\r\n _this = _super.call(this, \"http://realearth.ssec.wisc.edu/api/image?products=\" + options.products + \"&x={x}&y={y}&z={z}\", options) || this;\r\n _this._products = options.products;\r\n }\r\n return _this;\r\n }\r\n LayerRealEarthTile.prototype.setLayerTime = function (theTime) {\r\n if (this.animator) {\r\n return this.animator.setLayerTime(theTime);\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n LayerRealEarthTile.prototype._load = function () {\r\n if (this.animator) {\r\n return false;\r\n }\r\n return _super.prototype._load.call(this);\r\n };\r\n return LayerRealEarthTile;\r\n}(LayerBaseXyzTile_1.LayerBaseXyzTile));\r\nexports.LayerRealEarthTile = LayerRealEarthTile;\r\nnm.LayerRealEarthTile = LayerRealEarthTile;\r\nexports.default = LayerRealEarthTile;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJSZWFsRWFydGhUaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJSZWFsRWFydGhUaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7O0FBRUgsdURBQW9EO0FBRXBELHNFQUFpRTtBQUNqRSwyQ0FBc0M7QUFFdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQVM3Qjs7O0dBR0c7QUFDSDtJQUF3QyxzQ0FBZ0I7SUFJcEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FtQkc7SUFDSCw0QkFBWSxPQUFrQztRQUE5QyxpQkFXQztRQVZHLE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxPQUFPLENBQUMsT0FBTyxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNoRixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNsQixRQUFBLGtCQUFNLEVBQUUsRUFBRSxPQUFPLENBQUMsU0FBQztZQUNuQixLQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDbEMsS0FBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLDhCQUFvQixDQUFDLEtBQUksRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN6RSxLQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLFFBQUEsa0JBQU0sdURBQXFELE9BQU8sQ0FBQyxRQUFRLHVCQUFvQixFQUFFLE9BQU8sQ0FBQyxTQUFDO1lBQzFHLEtBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUN0QyxDQUFDOztJQUNMLENBQUM7SUFFRCx5Q0FBWSxHQUFaLFVBQWEsT0FBZTtRQUN4QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNqQixDQUFDO0lBQ0wsQ0FBQztJQUVELGtDQUFLLEdBQUw7UUFDSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNoQixNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxNQUFNLENBQUMsaUJBQU0sS0FBSyxXQUFFLENBQUM7SUFDekIsQ0FBQztJQUNMLHlCQUFDO0FBQUQsQ0FBQyxBQW5ERCxDQUF3QyxtQ0FBZ0IsR0FtRHZEO0FBbkRZLGdEQUFrQjtBQXFEL0IsRUFBRSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0FBQzNDLGtCQUFlLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvNC8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCB7TGF5ZXJCYXNlWHl6VGlsZX0gZnJvbSAnLi9MYXllckJhc2VYeXpUaWxlJztcclxuaW1wb3J0IHtMYXllckJhc2VPcHRpb25zfSBmcm9tICcuL0xheWVyQmFzZSc7XHJcbmltcG9ydCBSZWFsRWFydGhBbmltYXRlVGlsZSBmcm9tICcuLi9taXhpbi9SZWFsRWFydGhBbmltYXRlVGlsZSc7XHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCB7SVJlYWxFYXJ0aEFuaW1hdGUsIHRpbWVzTG9hZGVkQ2FsbGJhY2t9IGZyb20gXCIuLi9taXhpbi9SZWFsRWFydGhBbmltYXRlXCI7XHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExheWVyUmVhbEVhcnRoVGlsZU9wdGlvbnMgZXh0ZW5kcyBMYXllckJhc2VPcHRpb25zIHtcclxuICAgIHByb2R1Y3RzOiBzdHJpbmc7XHJcbiAgICBhbmltYXRlPzogYm9vbGVhbjtcclxuICAgIHRpbWVMb2FkQ2FsbGJhY2s/OiB0aW1lc0xvYWRlZENhbGxiYWNrO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFJlYWwgZWFydGggdGlsZVxyXG4gKiBAYXVnbWVudHMgTGF5ZXJCYXNlWHl6VGlsZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIExheWVyUmVhbEVhcnRoVGlsZSBleHRlbmRzIExheWVyQmFzZVh5elRpbGUgaW1wbGVtZW50cyBJUmVhbEVhcnRoQW5pbWF0ZSB7XHJcbiAgICBfcHJvZHVjdHM6IHN0cmluZztcclxuICAgIGFuaW1hdG9yOiBSZWFsRWFydGhBbmltYXRlVGlsZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBiYXNlIGxheWVyIGZvciBhbGwgb3RoZXJzXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmlkXSAtIGxheWVyIGlkXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubmFtZT1Vbm5hbWVkIExheWVyXSAtIGxheWVyIG5hbWVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5vcGFjaXR5PTFdIC0gb3BhY2l0eVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy52aXNpYmxlPXRydWVdIC0gZGVmYXVsdCB2aXNpYmxlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWluWm9vbT11bmRlZmluZWRdIC0gbWluIHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1heFpvb209dW5kZWZpbmVkXSAtIG1heCB6b29tIGxldmVsLCAwIC0gMjhcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucy5wYXJhbXM9e31dIHRoZSBnZXQgcGFyYW1ldGVycyB0byBpbmNsdWRlIHRvIHJldHJpZXZlIHRoZSBsYXllclxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLnpJbmRleD0wXSB0aGUgeiBpbmRleCBmb3IgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy5sb2FkQ2FsbGJhY2tdIGZ1bmN0aW9uIHRvIGNhbGwgb24gbG9hZCwgY29udGV4dCB0aGlzIGlzIHRoZSBsYXllciBvYmplY3RcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ29sbGFwc2U9ZmFsc2VdIGlmIHRoZSBsZWdlbmQgaXRlbSBzaG91bGQgYmUgaW5pdGlhbGx5IGNvbGxhcHNlZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDaGVja2JveD10cnVlXSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGhhdmUgYSBjaGVja2JveCBmb3IgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb250ZW50XSBhZGRpdGlvbmFsIGNvbnRlbnQgdG8gYWRkIHRvIHRoZSBsZWdlbmRcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5wcm9kdWN0cyAtIHRoZSBwcm9kdWN0cyB0byByZXF1ZXN0XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmhhc1RpbWVzPWZhbHNlXSBJZiB0aGUgbGF5ZXIgaXMgdGltZSBkZXBlbmRlbnQsIGZpeGVkIHNldCBvZiBkYXRlc1xyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5hbmltYXRlPWZhbHNlXSBpZiB0aGUgbGF5ZXIgc2hvdWxkIGJlIGFuaW1hdGVkXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IExheWVyUmVhbEVhcnRoVGlsZU9wdGlvbnMpIHtcclxuICAgICAgICBvcHRpb25zLmFuaW1hdGUgPSB0eXBlb2Ygb3B0aW9ucy5hbmltYXRlID09ICdib29sZWFuJyA/IG9wdGlvbnMuYW5pbWF0ZSA6IGZhbHNlO1xyXG4gICAgICAgIGlmIChvcHRpb25zLmFuaW1hdGUpIHtcclxuICAgICAgICAgICAgc3VwZXIoJycsIG9wdGlvbnMpO1xyXG4gICAgICAgICAgICB0aGlzLl9wcm9kdWN0cyA9IG9wdGlvbnMucHJvZHVjdHM7XHJcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0b3IgPSBuZXcgUmVhbEVhcnRoQW5pbWF0ZVRpbGUodGhpcywgb3B0aW9ucy50aW1lTG9hZENhbGxiYWNrKTtcclxuICAgICAgICAgICAgdGhpcy5hbmltYXRvci50aW1lSW5pdCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHN1cGVyKGBodHRwOi8vcmVhbGVhcnRoLnNzZWMud2lzYy5lZHUvYXBpL2ltYWdlP3Byb2R1Y3RzPSR7b3B0aW9ucy5wcm9kdWN0c30meD17eH0meT17eX0mej17en1gLCBvcHRpb25zKTtcclxuICAgICAgICAgICAgdGhpcy5fcHJvZHVjdHMgPSBvcHRpb25zLnByb2R1Y3RzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRMYXllclRpbWUodGhlVGltZTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHRoaXMuYW5pbWF0b3IpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0b3Iuc2V0TGF5ZXJUaW1lKHRoZVRpbWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgX2xvYWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHRoaXMuYW5pbWF0b3IpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc3VwZXIuX2xvYWQoKTtcclxuICAgIH1cclxufVxyXG5cclxubm0uTGF5ZXJSZWFsRWFydGhUaWxlID0gTGF5ZXJSZWFsRWFydGhUaWxlO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllclJlYWxFYXJ0aFRpbGU7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/layers/LayerRealEarthTile.ts\n// module id = 25\n// module chunks = 0","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Created by gavorhes on 12/4/2015.\r\n */\r\nvar LayerBase_1 = require(\"./LayerBase\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar nm = provide_1.default('layers');\r\n/**\r\n * XYZ tile\r\n * @augments LayerBase\r\n */\r\nvar LayerBaseXyzTile = (function (_super) {\r\n __extends(LayerBaseXyzTile, _super);\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 function LayerBaseXyzTile(url, options) {\r\n if (options === void 0) { options = {}; }\r\n var _this = _super.call(this, url, options) || this;\r\n _this._source = new ol.source.XYZ({ url: _this.url == '' ? undefined : _this.url });\r\n _this._olLayer = new ol.layer.Tile({\r\n source: _this._source,\r\n visible: _this.visible,\r\n opacity: _this.opacity,\r\n minResolution: _this._minResolution,\r\n maxResolution: _this._maxResolution\r\n });\r\n _this._olLayer.setZIndex(_this._zIndex);\r\n return _this;\r\n }\r\n Object.defineProperty(LayerBaseXyzTile.prototype, \"source\", {\r\n /**\r\n *\r\n * @returns {ol.source.XYZ} the vector source\r\n */\r\n get: function () {\r\n return this._source;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseXyzTile.prototype, \"olLayer\", {\r\n /**\r\n *\r\n * @returns {ol.layer.Tile|ol.layer.Base|undefined} the ol layer\r\n */\r\n get: function () {\r\n return this._olLayer;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return LayerBaseXyzTile;\r\n}(LayerBase_1.LayerBase));\r\nexports.LayerBaseXyzTile = LayerBaseXyzTile;\r\nnm.LayerBaseXyzTile = LayerBaseXyzTile;\r\nexports.default = LayerBaseXyzTile;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJCYXNlWHl6VGlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkxheWVyQmFzZVh5elRpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0dBRUc7QUFDSCx5Q0FBd0Q7QUFDeEQsMkNBQXNDO0FBQ3RDLDhCQUFpQztBQUNqQyxJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRzdCOzs7R0FHRztBQUNIO0lBQXNDLG9DQUFTO0lBRzNDOzs7Ozs7Ozs7Ozs7Ozs7OztPQWlCRztJQUNILDBCQUFZLEdBQVcsRUFBRSxPQUE4QjtRQUE5Qix3QkFBQSxFQUFBLFlBQThCO1FBQXZELFlBQ0ksa0JBQU0sR0FBRyxFQUFFLE9BQU8sQ0FBQyxTQVl0QjtRQVhHLEtBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFDLEdBQUcsRUFBRSxLQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxTQUFTLEdBQUcsS0FBSSxDQUFDLEdBQUcsRUFBQyxDQUFDLENBQUM7UUFFL0UsS0FBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQzlCLE1BQU0sRUFBRSxLQUFJLENBQUMsT0FBd0I7WUFDckMsT0FBTyxFQUFFLEtBQUksQ0FBQyxPQUFPO1lBQ3JCLE9BQU8sRUFBRSxLQUFJLENBQUMsT0FBTztZQUNyQixhQUFhLEVBQUUsS0FBSSxDQUFDLGNBQWM7WUFDbEMsYUFBYSxFQUFFLEtBQUksQ0FBQyxjQUFjO1NBQ3JDLENBQUUsQ0FBQztRQUVKLEtBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzs7SUFDMUMsQ0FBQztJQU1ELHNCQUFJLG9DQUFNO1FBSlY7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQXdCLENBQUM7UUFDekMsQ0FBQzs7O09BQUE7SUFNRCxzQkFBSSxxQ0FBTztRQUpYOzs7V0FHRzthQUNIO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUF5QixDQUFDO1FBQzFDLENBQUM7OztPQUFBO0lBQ0wsdUJBQUM7QUFBRCxDQUFDLEFBbkRELENBQXNDLHFCQUFTLEdBbUQ5QztBQW5EWSw0Q0FBZ0I7QUFxRDdCLEVBQUUsQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUN2QyxrQkFBZSxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzQvMjAxNS5cclxuICovXHJcbmltcG9ydCB7TGF5ZXJCYXNlLCBMYXllckJhc2VPcHRpb25zfSBmcm9tICcuL0xheWVyQmFzZSc7XHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ2xheWVycycpO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBYWVogdGlsZVxyXG4gKiBAYXVnbWVudHMgTGF5ZXJCYXNlXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTGF5ZXJCYXNlWHl6VGlsZSBleHRlbmRzIExheWVyQmFzZSB7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIFhZWiB0aWxlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gdXJsIGZvciBzb3VyY2VcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIC0gY29uZmlnXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuaWRdIC0gbGF5ZXIgaWRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5uYW1lPVVubmFtZWQgTGF5ZXJdIC0gbGF5ZXIgbmFtZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm9wYWNpdHk9MV0gLSBvcGFjaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnZpc2libGU9dHJ1ZV0gLSBkZWZhdWx0IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5ab29tPXVuZGVmaW5lZF0gLSBtaW4gem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIC0gbWF4IHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnBhcmFtcz17fV0gdGhlIGdldCBwYXJhbWV0ZXJzIHRvIGluY2x1ZGUgdG8gcmV0cmlldmUgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuekluZGV4PTBdIHRoZSB6IGluZGV4IGZvciB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtvcHRpb25zLmxvYWRDYWxsYmFja10gZnVuY3Rpb24gdG8gY2FsbCBvbiBsb2FkLCBjb250ZXh0IHRoaXMgaXMgdGhlIGxheWVyIG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb2xsYXBzZT1mYWxzZV0gaWYgdGhlIGxlZ2VuZCBpdGVtIHNob3VsZCBiZSBpbml0aWFsbHkgY29sbGFwc2VkXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENoZWNrYm94PXRydWVdIGlmIHRoZSBsZWdlbmQgaXRlbSBzaG91bGQgaGF2ZSBhIGNoZWNrYm94IGZvciB2aXNpYmlsaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENvbnRlbnRdIGFkZGl0aW9uYWwgY29udGVudCB0byBhZGQgdG8gdGhlIGxlZ2VuZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy51c2VFc3JpU3R5bGU9ZmFsc2VdIGlmIHRoZSBtYXAgc2VydmljZSBzdHlsZSBzaG91bGQgYmUgdXNlZFxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcih1cmw6IHN0cmluZywgb3B0aW9uczogTGF5ZXJCYXNlT3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIodXJsLCBvcHRpb25zKTtcclxuICAgICAgICB0aGlzLl9zb3VyY2UgPSBuZXcgb2wuc291cmNlLlhZWih7dXJsOiB0aGlzLnVybCA9PSAnJyA/IHVuZGVmaW5lZCA6IHRoaXMudXJsfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIgPSBuZXcgb2wubGF5ZXIuVGlsZSh7XHJcbiAgICAgICAgICAgIHNvdXJjZTogdGhpcy5fc291cmNlIGFzIG9sLnNvdXJjZS5YWVosXHJcbiAgICAgICAgICAgIHZpc2libGU6IHRoaXMudmlzaWJsZSxcclxuICAgICAgICAgICAgb3BhY2l0eTogdGhpcy5vcGFjaXR5LFxyXG4gICAgICAgICAgICBtaW5SZXNvbHV0aW9uOiB0aGlzLl9taW5SZXNvbHV0aW9uLFxyXG4gICAgICAgICAgICBtYXhSZXNvbHV0aW9uOiB0aGlzLl9tYXhSZXNvbHV0aW9uXHJcbiAgICAgICAgfSApO1xyXG5cclxuICAgICAgICB0aGlzLl9vbExheWVyLnNldFpJbmRleCh0aGlzLl96SW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtvbC5zb3VyY2UuWFlafSB0aGUgdmVjdG9yIHNvdXJjZVxyXG4gICAgICovXHJcbiAgICBnZXQgc291cmNlKCk6IG9sLnNvdXJjZS5YWVoge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zb3VyY2UgYXMgb2wuc291cmNlLlhZWjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7b2wubGF5ZXIuVGlsZXxvbC5sYXllci5CYXNlfHVuZGVmaW5lZH0gdGhlIG9sIGxheWVyXHJcbiAgICAgKi9cclxuICAgIGdldCBvbExheWVyKCkgOiBvbC5sYXllci5UaWxlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fb2xMYXllciBhcyBvbC5sYXllci5UaWxlO1xyXG4gICAgfVxyXG59XHJcblxyXG5ubS5MYXllckJhc2VYeXpUaWxlID0gTGF5ZXJCYXNlWHl6VGlsZTtcclxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJCYXNlWHl6VGlsZTtcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/layers/LayerBaseXyzTile.ts\n// module id = 28\n// module chunks = 0","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Created by gavorhes on 12/4/2015.\r\n */\r\nvar provide_1 = require(\"../util/provide\");\r\nvar mapPopup_1 = require(\"../olHelpers/mapPopup\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('mixin');\r\n/**\r\n * The GMT offset time in minutes\r\n * @type {number}\r\n */\r\nvar offsetMinutes = (new Date()).getTimezoneOffset();\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\nvar RealEarthAnimate = (function () {\r\n function RealEarthAnimate(lyr, loadCallback) {\r\n this.lyr = lyr;\r\n this._products = lyr._products;\r\n if (loadCallback) {\r\n this.loadCallback = loadCallback;\r\n }\r\n else {\r\n this.loadCallback = function () { return; };\r\n }\r\n }\r\n /**\r\n * Call this after the mixin has been applied\r\n */\r\n RealEarthAnimate.prototype.timeInit = function () {\r\n var _this = this;\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 $.get('http://realearth.ssec.wisc.edu/api/products', { products: this._products }, function (d) {\r\n if (d.length == 0) {\r\n console.log(_this._products + \" layer not available or does not have times\");\r\n return;\r\n }\r\n d = d[0];\r\n for (var 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, _this.lyr);\r\n _this._loadLatest.call(_this);\r\n }, 'json');\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 RealEarthAnimate.prototype._loadDates = function (inString) {\r\n var yr = inString.slice(0, 4);\r\n var month = inString.slice(4, 6);\r\n var d = inString.slice(6, 8);\r\n var hr = inString.slice(9, 11);\r\n var mn = inString.slice(11, 13);\r\n var sec = inString.slice(13, 15);\r\n var rawDateStr = inString.replace('.', '_');\r\n this._rawDateStrings.push(rawDateStr);\r\n var dteStr = month + \"/\" + d + \"/\" + yr + \" \" + hr + \":\" + mn + \":\" + sec;\r\n var 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 return rawDateStr;\r\n };\r\n /**\r\n *\r\n * @protected\r\n * @returns {boolean} if should continue\r\n */\r\n RealEarthAnimate.prototype._loadLatest = function () {\r\n mapPopup_1.default.closePopup();\r\n if (this.localTimes.length > 0) {\r\n this._currentIndex = this.localTimes.length - 1;\r\n return true;\r\n }\r\n else {\r\n return false;\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 RealEarthAnimate.prototype.setLayerTime = function (theTime) {\r\n this._currentTime = theTime;\r\n var newIndex;\r\n if (theTime < this.localTimes[0]) {\r\n return false;\r\n }\r\n else if (theTime > this.localTimes[this.localTimes.length - 1]) {\r\n newIndex = this.localTimes.length - 1;\r\n }\r\n for (var 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 if (newIndex == this._currentIndex) {\r\n return false;\r\n }\r\n else {\r\n this._currentIndex = newIndex;\r\n mapPopup_1.default.closePopup();\r\n return true;\r\n }\r\n };\r\n return RealEarthAnimate;\r\n}());\r\nexports.RealEarthAnimate = RealEarthAnimate;\r\nnm.RealEarthAnimate = RealEarthAnimate;\r\nexports.default = RealEarthAnimate;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVhbEVhcnRoQW5pbWF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIlJlYWxFYXJ0aEFuaW1hdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7R0FFRztBQUNILDJDQUFzQztBQUN0QyxrREFBNkM7QUFHN0MsMEJBQTZCO0FBRTdCLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFHNUI7OztHQUdHO0FBQ0gsSUFBSSxhQUFhLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztBQVdyRDs7O0dBR0c7QUFDSDtJQVlJLDBCQUFZLEdBQTRDLEVBQUUsWUFBa0M7UUFDeEYsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDL0IsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUEsQ0FBQztZQUNkLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ3JDLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsY0FBa0IsTUFBTSxDQUFDLENBQUEsQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDTCxDQUFDO0lBR0Q7O09BRUc7SUFDSCxtQ0FBUSxHQUFSO1FBQUEsaUJBdUJDO1FBckJHLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztRQUUvQixDQUFDLENBQUMsR0FBRyxDQUFDLDZDQUE2QyxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUMsRUFBRSxVQUFDLENBQUM7WUFDL0UsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoQixPQUFPLENBQUMsR0FBRyxDQUFJLEtBQUksQ0FBQyxTQUFTLGdEQUE2QyxDQUFDLENBQUM7Z0JBRTVFLE1BQU0sQ0FBQztZQUNYLENBQUM7WUFDRCxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1QsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3pDLEtBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QyxDQUFDO1lBQ0QsS0FBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLEdBQUcsRUFBRSxLQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0MsS0FBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUdEOzs7OztPQUtHO0lBQ0gscUNBQVUsR0FBVixVQUFXLFFBQWdCO1FBQ3ZCLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdCLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLElBQUksR0FBRyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpDLElBQUksVUFBVSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXRDLElBQUksTUFBTSxHQUFNLEtBQUssU0FBSSxDQUFDLFNBQUksRUFBRSxTQUFJLEVBQUUsU0FBSSxFQUFFLFNBQUksR0FBSyxDQUFDO1FBQ3RELElBQUksTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRXZDLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxzQ0FBVyxHQUFYO1FBQ0ksa0JBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQSxDQUFDO1lBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUUsQ0FBQyxDQUFDO1lBRS9DLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNqQixDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCx1Q0FBWSxHQUFaLFVBQWEsT0FBZTtRQUV4QixJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUU1QixJQUFJLFFBQVEsQ0FBQztRQUViLEVBQUUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQztZQUM5QixNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDO1lBQzlELFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVELEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUMsQ0FBQztZQUM3QyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFBLENBQUM7Z0JBQy9CLFFBQVEsR0FBRyxDQUFDLENBQUM7Z0JBQ2IsS0FBSyxDQUFDO1lBQ1YsQ0FBQztRQUNMLENBQUM7UUFFRCxFQUFFLENBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBLENBQUM7WUFDaEMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQztZQUM5QixrQkFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBRXRCLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNMLENBQUM7SUFDTCx1QkFBQztBQUFELENBQUMsQUEvSEQsSUErSEM7QUEvSFksNENBQWdCO0FBaUk3QixFQUFFLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7QUFDdkMsa0JBQWUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMi80LzIwMTUuXHJcbiAqL1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFwUG9wdXAgZnJvbSAnLi4vb2xIZWxwZXJzL21hcFBvcHVwJztcclxuaW1wb3J0IExheWVyUmVhbEVhcnRoVGlsZSBmcm9tIFwiLi4vbGF5ZXJzL0xheWVyUmVhbEVhcnRoVGlsZVwiO1xyXG5pbXBvcnQge0xheWVyVmVjdG9yUmVhbEVhcnRofSBmcm9tICcuLi9sYXllcnMvTGF5ZXJSZWFsRWFydGhWZWN0b3InXHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcblxyXG5jb25zdCBubSA9IHByb3ZpZGUoJ21peGluJyk7XHJcblxyXG5cclxuLyoqXHJcbiAqIFRoZSBHTVQgb2Zmc2V0IHRpbWUgaW4gbWludXRlc1xyXG4gKiBAdHlwZSB7bnVtYmVyfVxyXG4gKi9cclxubGV0IG9mZnNldE1pbnV0ZXMgPSAobmV3IERhdGUoKSkuZ2V0VGltZXpvbmVPZmZzZXQoKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVJlYWxFYXJ0aEFuaW1hdGV7XHJcbiAgICBzZXRMYXllclRpbWUodGhlVGltZTogbnVtYmVyKTogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSB0aW1lc0xvYWRlZENhbGxiYWNre1xyXG4gICAgKGx5cj86IExheWVyUmVhbEVhcnRoVGlsZXxMYXllclZlY3RvclJlYWxFYXJ0aCk6IHZvaWQ7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogTWl4aW4gdG8gZ2V0IHRoZSBwcm9kdWN0IHRpbWVzXHJcbiAqIEJlIHN1cmUgdG8gY2FsbCBnZXRUaW1lSW5pdCBhZnRlciB0aGUgbWl4aW4gaGFzIGJlZW4gYXBwbGllZFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFJlYWxFYXJ0aEFuaW1hdGUge1xyXG4gICAgX2FuaW1hdGVFbmFibGVkOiBib29sZWFuO1xyXG4gICAgX2N1cnJlbnRJbmRleDogbnVtYmVyO1xyXG4gICAgX2xvY2FsRGF0ZXM6IERhdGVbXTtcclxuICAgIF9yYXdEYXRlU3RyaW5nczogc3RyaW5nW107XHJcbiAgICBfcHJvZHVjdHM6IHN0cmluZztcclxuICAgIGxvYWRDYWxsYmFjazogdGltZXNMb2FkZWRDYWxsYmFjaztcclxuICAgIGxvY2FsVGltZXM6IG51bWJlcltdO1xyXG4gICAgX2N1cnJlbnRUaW1lOiBudW1iZXI7XHJcblxyXG4gICAgbHlyOiBMYXllclJlYWxFYXJ0aFRpbGV8TGF5ZXJWZWN0b3JSZWFsRWFydGg7XHJcblxyXG4gICAgY29uc3RydWN0b3IobHlyOiBMYXllclJlYWxFYXJ0aFRpbGV8TGF5ZXJWZWN0b3JSZWFsRWFydGgsIGxvYWRDYWxsYmFjaz86IHRpbWVzTG9hZGVkQ2FsbGJhY2spe1xyXG4gICAgICAgIHRoaXMubHlyID0gbHlyO1xyXG4gICAgICAgIHRoaXMuX3Byb2R1Y3RzID0gbHlyLl9wcm9kdWN0cztcclxuICAgICAgICBpZiAobG9hZENhbGxiYWNrKXtcclxuICAgICAgICAgICAgdGhpcy5sb2FkQ2FsbGJhY2sgPSBsb2FkQ2FsbGJhY2s7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkQ2FsbGJhY2sgPSBmdW5jdGlvbigpOiB2b2lkIHtyZXR1cm47fTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbCB0aGlzIGFmdGVyIHRoZSBtaXhpbiBoYXMgYmVlbiBhcHBsaWVkXHJcbiAgICAgKi9cclxuICAgIHRpbWVJbml0KCkge1xyXG5cclxuICAgICAgICB0aGlzLl9yYXdEYXRlU3RyaW5ncyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX2xvY2FsRGF0ZXMgPSBbXTtcclxuICAgICAgICB0aGlzLmxvY2FsVGltZXMgPSBbXTtcclxuICAgICAgICB0aGlzLl9hbmltYXRlRW5hYmxlZCA9IHRydWU7XHJcbiAgICAgICAgLy8gdGhpcy5fbG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9jdXJyZW50VGltZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl9jdXJyZW50SW5kZXggPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgICQuZ2V0KCdodHRwOi8vcmVhbGVhcnRoLnNzZWMud2lzYy5lZHUvYXBpL3Byb2R1Y3RzJywge3Byb2R1Y3RzOiB0aGlzLl9wcm9kdWN0c30sIChkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChkLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgJHt0aGlzLl9wcm9kdWN0c30gbGF5ZXIgbm90IGF2YWlsYWJsZSBvciBkb2VzIG5vdCBoYXZlIHRpbWVzYCk7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGQgPSBkWzBdO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRbJ3RpbWVzJ10ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2xvYWREYXRlcy5jYWxsKHRoaXMsIGRbJ3RpbWVzJ11baV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMubG9hZENhbGxiYWNrLmNhbGwodGhpcy5seXIsIHRoaXMubHlyKTtcclxuICAgICAgICAgICAgdGhpcy5fbG9hZExhdGVzdC5jYWxsKHRoaXMpO1xyXG4gICAgICAgIH0sICdqc29uJyk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2l2ZW4gdGhlIHJhdyB0aW1lIHN0cmluZywgYWRkIHRvIHRoZSBhcnJheXMgdG8ga2VlcCB0cmFjayBvZiBkYXRlcyBhbmQgY2FjaGVcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBpblN0cmluZyAtIGlucHV0IHN0cmluZyB0byBwYXJzZVxyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gdGhlIGNvbnZlcnRlZCBzdHJpbmdcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqL1xyXG4gICAgX2xvYWREYXRlcyhpblN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgeXIgPSBpblN0cmluZy5zbGljZSgwLCA0KTtcclxuICAgICAgICBsZXQgbW9udGggPSBpblN0cmluZy5zbGljZSg0LCA2KTtcclxuICAgICAgICBsZXQgZCA9IGluU3RyaW5nLnNsaWNlKDYsIDgpO1xyXG4gICAgICAgIGxldCBociA9IGluU3RyaW5nLnNsaWNlKDksIDExKTtcclxuICAgICAgICBsZXQgbW4gPSBpblN0cmluZy5zbGljZSgxMSwgMTMpO1xyXG4gICAgICAgIGxldCBzZWMgPSBpblN0cmluZy5zbGljZSgxMywgMTUpO1xyXG5cclxuICAgICAgICBsZXQgcmF3RGF0ZVN0ciA9IGluU3RyaW5nLnJlcGxhY2UoJy4nLCAnXycpO1xyXG4gICAgICAgIHRoaXMuX3Jhd0RhdGVTdHJpbmdzLnB1c2gocmF3RGF0ZVN0cik7XHJcblxyXG4gICAgICAgIGxldCBkdGVTdHIgPSBgJHttb250aH0vJHtkfS8ke3lyfSAke2hyfToke21ufToke3NlY31gO1xyXG4gICAgICAgIGxldCBuZXdEdGUgPSBuZXcgRGF0ZShkdGVTdHIpO1xyXG4gICAgICAgIG5ld0R0ZS5zZXRNaW51dGVzKG5ld0R0ZS5nZXRNaW51dGVzKCkgLSBvZmZzZXRNaW51dGVzKTtcclxuICAgICAgICB0aGlzLl9sb2NhbERhdGVzLnB1c2gobmV3RHRlKTtcclxuICAgICAgICB0aGlzLmxvY2FsVGltZXMucHVzaChuZXdEdGUuZ2V0VGltZSgpKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJhd0RhdGVTdHI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IGlmIHNob3VsZCBjb250aW51ZVxyXG4gICAgICovXHJcbiAgICBfbG9hZExhdGVzdCgpe1xyXG4gICAgICAgIG1hcFBvcHVwLmNsb3NlUG9wdXAoKTtcclxuICAgICAgICBpZiAodGhpcy5sb2NhbFRpbWVzLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50SW5kZXggPSB0aGlzLmxvY2FsVGltZXMubGVuZ3RoIC0xO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdGhlVGltZSAtIHRoZSB0aW1lXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiBuZXcgaW5kZXgsIGZhbHNlIGlmIHRoZSBzYW1lIG9yIGJlbG93IGxvd2VzdCB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBzZXRMYXllclRpbWUodGhlVGltZTogbnVtYmVyKTogYm9vbGVhbntcclxuXHJcbiAgICAgICAgdGhpcy5fY3VycmVudFRpbWUgPSB0aGVUaW1lO1xyXG5cclxuICAgICAgICBsZXQgbmV3SW5kZXg7XHJcblxyXG4gICAgICAgIGlmICh0aGVUaW1lIDwgdGhpcy5sb2NhbFRpbWVzWzBdKXtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhlVGltZSA+IHRoaXMubG9jYWxUaW1lc1t0aGlzLmxvY2FsVGltZXMubGVuZ3RoIC0gMV0pe1xyXG4gICAgICAgICAgICBuZXdJbmRleCA9IHRoaXMubG9jYWxUaW1lcy5sZW5ndGggLSAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxvY2FsVGltZXMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBpZiAodGhpcy5sb2NhbFRpbWVzW2ldID49IHRoZVRpbWUpe1xyXG4gICAgICAgICAgICAgICAgbmV3SW5kZXggPSBpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChuZXdJbmRleCA9PSB0aGlzLl9jdXJyZW50SW5kZXgpe1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fY3VycmVudEluZGV4ID0gbmV3SW5kZXg7XHJcbiAgICAgICAgICAgIG1hcFBvcHVwLmNsb3NlUG9wdXAoKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxubm0uUmVhbEVhcnRoQW5pbWF0ZSA9IFJlYWxFYXJ0aEFuaW1hdGU7XHJcbmV4cG9ydCBkZWZhdWx0IFJlYWxFYXJ0aEFuaW1hdGU7XHJcblxyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/mixin/RealEarthAnimate.ts\n// module id = 30\n// module chunks = 0","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Created by gavorhes on 12/4/2015.\r\n */\r\nvar RealEarthAnimate_1 = require(\"./RealEarthAnimate\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar nm = provide_1.default('mixin');\r\n/**\r\n * Animate real earth tile\r\n * @augments RealEarthAnimate\r\n */\r\nvar RealEarthAnimateTile = (function (_super) {\r\n __extends(RealEarthAnimateTile, _super);\r\n function RealEarthAnimateTile(layer, loadCallback) {\r\n var _this = _super.call(this, layer, loadCallback) || this;\r\n _this._source = layer.source;\r\n _this._olLayer = layer.olLayer;\r\n return _this;\r\n }\r\n RealEarthAnimateTile.prototype.timeInit = function () {\r\n _super.prototype.timeInit.call(this);\r\n this._sourceUrls = [];\r\n };\r\n RealEarthAnimateTile.prototype._loadDates = function (inString) {\r\n var rawDte = _super.prototype._loadDates.call(this, inString);\r\n var dteProductUrl = \"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 * @protected\r\n */\r\n RealEarthAnimateTile.prototype._loadLatest = function () {\r\n if (_super.prototype._loadLatest.call(this)) {\r\n this._source.setUrl(this._sourceUrls[this._sourceUrls.length - 1]);\r\n }\r\n return true;\r\n };\r\n RealEarthAnimateTile.prototype.setLayerTime = function (theTime) {\r\n if (_super.prototype.setLayerTime.call(this, 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 }\r\n else {\r\n this._olLayer.setZIndex(-1);\r\n }\r\n return true;\r\n };\r\n return RealEarthAnimateTile;\r\n}(RealEarthAnimate_1.default));\r\nnm.RealEarthAnimateTile = RealEarthAnimateTile;\r\nexports.default = RealEarthAnimateTile;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVhbEVhcnRoQW5pbWF0ZVRpbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJSZWFsRWFydGhBbmltYXRlVGlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7R0FFRztBQUNILHVEQUFrRDtBQUNsRCwyQ0FBc0M7QUFHdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUU1Qjs7O0dBR0c7QUFDSDtJQUFtQyx3Q0FBZ0I7SUFLL0MsOEJBQVksS0FBeUIsRUFBRSxZQUFnRDtRQUF2RixZQUNJLGtCQUFNLEtBQUssRUFBRSxZQUFZLENBQUMsU0FHN0I7UUFGRyxLQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDNUIsS0FBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDOztJQUNsQyxDQUFDO0lBSUQsdUNBQVEsR0FBUjtRQUNJLGlCQUFNLFFBQVEsV0FBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCx5Q0FBVSxHQUFWLFVBQVcsUUFBZ0I7UUFDdkIsSUFBSSxNQUFNLEdBQUcsaUJBQU0sVUFBVSxZQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLElBQUksYUFBYSxHQUNiLHVEQUFxRCxJQUFJLENBQUMsU0FBUyxTQUFJLE1BQU0sdUJBQW9CLENBQUM7UUFDdEcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDckMsTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILDBDQUFXLEdBQVg7UUFDSSxFQUFFLENBQUMsQ0FBQyxpQkFBTSxXQUFXLFdBQUUsQ0FBQyxDQUFBLENBQUM7WUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCwyQ0FBWSxHQUFaLFVBQWEsT0FBZTtRQUN4QixFQUFFLENBQUMsQ0FBQyxpQkFBTSxZQUFZLFlBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUEsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0wsMkJBQUM7QUFBRCxDQUFDLEFBL0NELENBQW1DLDBCQUFnQixHQStDbEQ7QUFFRCxFQUFFLENBQUMsb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7QUFDL0Msa0JBQWUsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMi80LzIwMTUuXHJcbiAqL1xyXG5pbXBvcnQgUmVhbEVhcnRoQW5pbWF0ZSBmcm9tICcuL1JlYWxFYXJ0aEFuaW1hdGUnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgb2wgPSByZXF1aXJlKCdjdXN0b20tb2wnKTtcclxuaW1wb3J0IExheWVyUmVhbEVhcnRoVGlsZSBmcm9tIFwiLi4vbGF5ZXJzL0xheWVyUmVhbEVhcnRoVGlsZVwiO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ21peGluJyk7XHJcblxyXG4vKipcclxuICogQW5pbWF0ZSByZWFsIGVhcnRoIHRpbGVcclxuICogQGF1Z21lbnRzIFJlYWxFYXJ0aEFuaW1hdGVcclxuICovXHJcbmNsYXNzIFJlYWxFYXJ0aEFuaW1hdGVUaWxlIGV4dGVuZHMgUmVhbEVhcnRoQW5pbWF0ZSB7XHJcbiAgICBfc291cmNlVXJsczogc3RyaW5nW107XHJcbiAgICBfc291cmNlOiBvbC5zb3VyY2UuWFlaO1xyXG4gICAgX29sTGF5ZXI6IG9sLmxheWVyLlRpbGU7XHJcblxyXG4gICAgY29uc3RydWN0b3IobGF5ZXI6IExheWVyUmVhbEVhcnRoVGlsZSwgbG9hZENhbGxiYWNrPzogKGx5cjogTGF5ZXJSZWFsRWFydGhUaWxlKSA9PiB2b2lkKXtcclxuICAgICAgICBzdXBlcihsYXllciwgbG9hZENhbGxiYWNrKTtcclxuICAgICAgICB0aGlzLl9zb3VyY2UgPSBsYXllci5zb3VyY2U7XHJcbiAgICAgICAgdGhpcy5fb2xMYXllciA9IGxheWVyLm9sTGF5ZXI7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICB0aW1lSW5pdCgpIHtcclxuICAgICAgICBzdXBlci50aW1lSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuX3NvdXJjZVVybHMgPSBbXTtcclxuICAgIH1cclxuXHJcbiAgICBfbG9hZERhdGVzKGluU3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCByYXdEdGUgPSBzdXBlci5fbG9hZERhdGVzKGluU3RyaW5nKTtcclxuICAgICAgICBsZXQgZHRlUHJvZHVjdFVybCA9XHJcbiAgICAgICAgICAgIGBodHRwOi8vcmVhbGVhcnRoLnNzZWMud2lzYy5lZHUvYXBpL2ltYWdlP3Byb2R1Y3RzPSR7dGhpcy5fcHJvZHVjdHN9XyR7cmF3RHRlfSZ4PXt4fSZ5PXt5fSZ6PXt6fWA7XHJcbiAgICAgICAgdGhpcy5fc291cmNlVXJscy5wdXNoKGR0ZVByb2R1Y3RVcmwpO1xyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqL1xyXG4gICAgX2xvYWRMYXRlc3QoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHN1cGVyLl9sb2FkTGF0ZXN0KCkpe1xyXG4gICAgICAgICAgICB0aGlzLl9zb3VyY2Uuc2V0VXJsKHRoaXMuX3NvdXJjZVVybHNbdGhpcy5fc291cmNlVXJscy5sZW5ndGggLSAxXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldExheWVyVGltZSh0aGVUaW1lOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoc3VwZXIuc2V0TGF5ZXJUaW1lKHRoZVRpbWUpKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9vbExheWVyLmdldFpJbmRleCgpIDwgMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9vbExheWVyLnNldFpJbmRleCgwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLl9zb3VyY2Uuc2V0VXJsKHRoaXMuX3NvdXJjZVVybHNbdGhpcy5fY3VycmVudEluZGV4XSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fb2xMYXllci5zZXRaSW5kZXgoLTEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxufVxyXG5cclxubm0uUmVhbEVhcnRoQW5pbWF0ZVRpbGUgPSBSZWFsRWFydGhBbmltYXRlVGlsZTtcclxuZXhwb3J0IGRlZmF1bHQgUmVhbEVhcnRoQW5pbWF0ZVRpbGU7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/mixin/RealEarthAnimateTile.ts\n// module id = 31\n// module chunks = 0","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar quickMap_1 = require(\"../../src/olHelpers/quickMap\");\r\nvar LayerRealEarthTile_1 = require(\"../../src/layers/LayerRealEarthTile\");\r\nvar media_control_1 = require(\"../../src/domUtil/media-control\");\r\nvar $ = require(\"jquery\");\r\nvar LayerBaseVectorEsri_1 = require(\"../../src/layers/LayerBaseVectorEsri\");\r\nvar LayerEsriMapServer_1 = require(\"../../src/layers/LayerEsriMapServer\");\r\nvar nexrhresStatic = new LayerRealEarthTile_1.default({\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 timeLoadCallback: function (f) {\r\n console.log(f);\r\n }\r\n});\r\nvar d = new Date();\r\nvar endTime = d.getTime();\r\nd.setHours(d.getHours() - 4);\r\nvar startTime = d.getTime();\r\nvar rangeStep = Math.round((endTime - startTime) / 8);\r\nvar media = new media_control_1.MediaControl($('#control'), function (v) {\r\n nexrhresStatic.setLayerTime(v);\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\nvar map = quickMap_1.quickMap();\r\nmap.addLayer(nexrhresStatic.olLayer);\r\nvar coordinationLayer = new LayerBaseVectorEsri_1.LayerBaseVectorEsri('http://transportal.cee.wisc.edu/applications/arcgis2/rest/services/GLRTOC/GlrtocCoordination/MapServer/0', {\r\n visible: true,\r\n autoLoad: true,\r\n name: 'Coordination',\r\n useEsriStyle: true\r\n});\r\nmap.addLayer(coordinationLayer.olLayer);\r\nvar oakRidgeLayers = [\r\n ['Cameras', 'cameras33'],\r\n ['HAR', 'HAR33'],\r\n ['DMS', 'MessageSigns33'],\r\n //['State Summary', 'statesummary'],\r\n ['Traffic Control', 'TrafficControl33'],\r\n ['Traffic Detection', 'TrafficDetectionMulti'],\r\n ['Weather', 'Weather33']\r\n];\r\nfor (var i = 0; i < oakRidgeLayers.length; i++) {\r\n var oakRidgeLayer = new LayerEsriMapServer_1.LayerEsriMapServer(\"http://itsdpro.ornl.gov/arcgis/rest/services/ITSPublic/\" + oakRidgeLayers[i][1] + \"/MapServer\", {\r\n id: oakRidgeLayers[i][1],\r\n name: oakRidgeLayers[i][0],\r\n visible: true,\r\n minZoom: 7,\r\n zIndex: 20,\r\n addPopup: true,\r\n legendCollapse: true\r\n });\r\n map.addLayer(oakRidgeLayer.olLayer);\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFuaW1hdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5REFBc0Q7QUFDdEQsMEVBQXFFO0FBQ3JFLGlFQUE2RTtBQUM3RSwwQkFBNkI7QUFDN0IsNEVBQXlFO0FBQ3pFLDBFQUF1RTtBQUV2RSxJQUFJLGNBQWMsR0FBRyxJQUFJLDRCQUFrQixDQUFDO0lBQ3BDLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLEVBQUUsRUFBRSxpQkFBaUI7SUFDckIsT0FBTyxFQUFFLEdBQUc7SUFDWixPQUFPLEVBQUUsSUFBSTtJQUNiLElBQUksRUFBRSxxQkFBcUI7SUFDM0IsZUFBZTtJQUNmLGdCQUFnQixFQUFFLFVBQVUsQ0FBQztRQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25CLENBQUM7Q0FDSixDQUNKLENBQUM7QUFHRixJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0FBQ25CLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUMxQixDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM3QixJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDNUIsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUV0RCxJQUFJLEtBQUssR0FBRyxJQUFJLDRCQUFZLENBQ3hCLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFDYixVQUFDLENBQVM7SUFDTixjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25DLENBQUMsRUFDRDtJQUNJLEdBQUcsRUFBRSxTQUFTO0lBQ2QsR0FBRyxFQUFFLE9BQU87SUFDWixHQUFHLEVBQUUsT0FBTztJQUNaLElBQUksRUFBRSxTQUFTO0lBQ2YsWUFBWSxFQUFFLEdBQUc7SUFDakIsVUFBVSxFQUFFLElBQUk7Q0FDbkIsQ0FDSixDQUFDO0FBR0YsSUFBSSxHQUFHLEdBQUcsbUJBQVEsRUFBRSxDQUFDO0FBQ3JCLEdBQUcsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBR3JDLElBQUksaUJBQWlCLEdBQUcsSUFBSSx5Q0FBbUIsQ0FDM0MsMEdBQTBHLEVBQzFHO0lBQ0ksT0FBTyxFQUFFLElBQUk7SUFDYixRQUFRLEVBQUUsSUFBSTtJQUNkLElBQUksRUFBRSxjQUFjO0lBQ3BCLFlBQVksRUFBRSxJQUFJO0NBQ3JCLENBQ0osQ0FBQztBQUVGLEdBQUcsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFcEMsSUFBSSxjQUFjLEdBQUc7SUFDakIsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDO0lBQ3hCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztJQUNoQixDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQztJQUN6QixvQ0FBb0M7SUFDcEMsQ0FBQyxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQztJQUN2QyxDQUFDLG1CQUFtQixFQUFFLHVCQUF1QixDQUFDO0lBQzlDLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQztDQUMzQixDQUFDO0FBR0YsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDN0MsSUFBSSxhQUFhLEdBQUcsSUFBSSx1Q0FBa0IsQ0FDdEMsNERBQTBELGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBWSxFQUMxRjtRQUNJLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLE9BQU8sRUFBRSxJQUFJO1FBQ2IsT0FBTyxFQUFFLENBQUM7UUFDVixNQUFNLEVBQUUsRUFBRTtRQUNWLFFBQVEsRUFBRSxJQUFJO1FBQ2QsY0FBYyxFQUFFLElBQUk7S0FDdkIsQ0FDSixDQUFDO0lBQ0YsR0FBRyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7cXVpY2tNYXB9IGZyb20gJy4uLy4uL3NyYy9vbEhlbHBlcnMvcXVpY2tNYXAnO1xyXG5pbXBvcnQgTGF5ZXJSZWFsRWFydGhUaWxlIGZyb20gXCIuLi8uLi9zcmMvbGF5ZXJzL0xheWVyUmVhbEVhcnRoVGlsZVwiO1xyXG5pbXBvcnQge01lZGlhQ29udHJvbCwgY2hhbmdlRnVuY3Rpb259IGZyb20gXCIuLi8uLi9zcmMvZG9tVXRpbC9tZWRpYS1jb250cm9sXCI7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcbmltcG9ydCB7TGF5ZXJCYXNlVmVjdG9yRXNyaX0gZnJvbSBcIi4uLy4uL3NyYy9sYXllcnMvTGF5ZXJCYXNlVmVjdG9yRXNyaVwiO1xyXG5pbXBvcnQge0xheWVyRXNyaU1hcFNlcnZlcn0gZnJvbSBcIi4uLy4uL3NyYy9sYXllcnMvTGF5ZXJFc3JpTWFwU2VydmVyXCI7XHJcblxyXG5sZXQgbmV4cmhyZXNTdGF0aWMgPSBuZXcgTGF5ZXJSZWFsRWFydGhUaWxlKHtcclxuICAgICAgICBwcm9kdWN0czogJ25leHJocmVzJyxcclxuICAgICAgICBpZDogJ25leHJocmVzLXN0YXRpYycsXHJcbiAgICAgICAgb3BhY2l0eTogMC42LFxyXG4gICAgICAgIGFuaW1hdGU6IHRydWUsXHJcbiAgICAgICAgbmFtZTogJ0h5YnJpZCBSZWZsZWN0aXZpdHknLFxyXG4gICAgICAgIC8vIG1heFpvb206IDEwLFxyXG4gICAgICAgIHRpbWVMb2FkQ2FsbGJhY2s6IGZ1bmN0aW9uIChmKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuKTtcclxuXHJcblxyXG5sZXQgZCA9IG5ldyBEYXRlKCk7XHJcbmxldCBlbmRUaW1lID0gZC5nZXRUaW1lKCk7XHJcbmQuc2V0SG91cnMoZC5nZXRIb3VycygpIC0gNCk7XHJcbmxldCBzdGFydFRpbWUgPSBkLmdldFRpbWUoKTtcclxubGV0IHJhbmdlU3RlcCA9IE1hdGgucm91bmQoKGVuZFRpbWUgLSBzdGFydFRpbWUpIC8gOCk7XHJcblxyXG5sZXQgbWVkaWEgPSBuZXcgTWVkaWFDb250cm9sKFxyXG4gICAgJCgnI2NvbnRyb2wnKSxcclxuICAgICh2OiBudW1iZXIpID0+IHtcclxuICAgICAgICBuZXhyaHJlc1N0YXRpYy5zZXRMYXllclRpbWUodik7XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIG1pbjogc3RhcnRUaW1lLFxyXG4gICAgICAgIG1heDogZW5kVGltZSxcclxuICAgICAgICB2YWw6IGVuZFRpbWUsXHJcbiAgICAgICAgc3RlcDogcmFuZ2VTdGVwLFxyXG4gICAgICAgIHBsYXlJbnRlcnZhbDogNzUwLFxyXG4gICAgICAgIHNob3dBc0RhdGU6IHRydWVcclxuICAgIH1cclxuKTtcclxuXHJcblxyXG5sZXQgbWFwID0gcXVpY2tNYXAoKTtcclxubWFwLmFkZExheWVyKG5leHJocmVzU3RhdGljLm9sTGF5ZXIpO1xyXG5cclxuXHJcbmxldCBjb29yZGluYXRpb25MYXllciA9IG5ldyBMYXllckJhc2VWZWN0b3JFc3JpKFxyXG4gICAgJ2h0dHA6Ly90cmFuc3BvcnRhbC5jZWUud2lzYy5lZHUvYXBwbGljYXRpb25zL2FyY2dpczIvcmVzdC9zZXJ2aWNlcy9HTFJUT0MvR2xydG9jQ29vcmRpbmF0aW9uL01hcFNlcnZlci8wJyxcclxuICAgIHtcclxuICAgICAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgICAgIGF1dG9Mb2FkOiB0cnVlLFxyXG4gICAgICAgIG5hbWU6ICdDb29yZGluYXRpb24nLFxyXG4gICAgICAgIHVzZUVzcmlTdHlsZTogdHJ1ZVxyXG4gICAgfVxyXG4pO1xyXG5cclxubWFwLmFkZExheWVyKGNvb3JkaW5hdGlvbkxheWVyLm9sTGF5ZXIpO1xyXG5cclxuICAgIGxldCBvYWtSaWRnZUxheWVycyA9IFtcclxuICAgICAgICBbJ0NhbWVyYXMnLCAnY2FtZXJhczMzJ10sXHJcbiAgICAgICAgWydIQVInLCAnSEFSMzMnXSxcclxuICAgICAgICBbJ0RNUycsICdNZXNzYWdlU2lnbnMzMyddLFxyXG4gICAgICAgIC8vWydTdGF0ZSBTdW1tYXJ5JywgJ3N0YXRlc3VtbWFyeSddLFxyXG4gICAgICAgIFsnVHJhZmZpYyBDb250cm9sJywgJ1RyYWZmaWNDb250cm9sMzMnXSxcclxuICAgICAgICBbJ1RyYWZmaWMgRGV0ZWN0aW9uJywgJ1RyYWZmaWNEZXRlY3Rpb25NdWx0aSddLFxyXG4gICAgICAgIFsnV2VhdGhlcicsICdXZWF0aGVyMzMnXVxyXG4gICAgXTtcclxuXHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYWtSaWRnZUxheWVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCBvYWtSaWRnZUxheWVyID0gbmV3IExheWVyRXNyaU1hcFNlcnZlcihcclxuICAgICAgICAgICAgYGh0dHA6Ly9pdHNkcHJvLm9ybmwuZ292L2FyY2dpcy9yZXN0L3NlcnZpY2VzL0lUU1B1YmxpYy8ke29ha1JpZGdlTGF5ZXJzW2ldWzFdfS9NYXBTZXJ2ZXJgLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZDogb2FrUmlkZ2VMYXllcnNbaV1bMV0sXHJcbiAgICAgICAgICAgICAgICBuYW1lOiBvYWtSaWRnZUxheWVyc1tpXVswXSxcclxuICAgICAgICAgICAgICAgIHZpc2libGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBtaW5ab29tOiA3LFxyXG4gICAgICAgICAgICAgICAgekluZGV4OiAyMCxcclxuICAgICAgICAgICAgICAgIGFkZFBvcHVwOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgbGVnZW5kQ29sbGFwc2U6IHRydWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgbWFwLmFkZExheWVyKG9ha1JpZGdlTGF5ZXIub2xMYXllcik7XHJcbiAgICB9XHJcblxyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./test/demo/animate.ts\n// module id = 33\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/test/serve/js/another.js b/test/serve/js/another.js index 57531d1..10caf85 100644 --- a/test/serve/js/another.js +++ b/test/serve/js/another.js @@ -63,12 +63,12 @@ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 35); +/******/ return __webpack_require__(__webpack_require__.s = 34); /******/ }) /************************************************************************/ /******/ ({ -/***/ 35: +/***/ 34: /***/ (function(module, exports) { /** @@ -76,7 +76,7 @@ */ console.log('here is another'); console.log('here is another'); - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5vdGhlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFub3RoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gOS8yMi8yMDE2LlxyXG4gKi9cclxuXHJcbmNvbnNvbGUubG9nKCdoZXJlIGlzIGFub3RoZXInKTtcclxuY29uc29sZS5sb2coJ2hlcmUgaXMgYW5vdGhlcicpOyJdfQ== /***/ }) diff --git a/test/serve/js/another.js.map b/test/serve/js/another.js.map index 72d3f2e..18d9b43 100644 --- a/test/serve/js/another.js.map +++ b/test/serve/js/another.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap b4e25e5e5539f3f3f6dd?fe66******","webpack:///./test/demo/another.ts"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;AChEA;;GAEG;AAEH,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC/B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC","file":"another.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\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 35);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap b4e25e5e5539f3f3f6dd","/**\r\n * Created by gavorhes on 9/22/2016.\r\n */\r\n\r\nconsole.log('here is another');\r\nconsole.log('here is another');\n\n\n// WEBPACK FOOTER //\n// ./test/demo/another.ts"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 1b9d70c904b3cb6688ad?eabd*******","webpack:///./test/demo/another.ts"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA,2CAA2C,+c","file":"another.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\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 34);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1b9d70c904b3cb6688ad","/**\r\n * Created by gavorhes on 9/22/2016.\r\n */\r\nconsole.log('here is another');\r\nconsole.log('here is another');\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5vdGhlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFub3RoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gOS8yMi8yMDE2LlxyXG4gKi9cclxuXHJcbmNvbnNvbGUubG9nKCdoZXJlIGlzIGFub3RoZXInKTtcclxuY29uc29sZS5sb2coJ2hlcmUgaXMgYW5vdGhlcicpOyJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./test/demo/another.ts\n// module id = 34\n// module chunks = 8"],"sourceRoot":""} \ No newline at end of file diff --git a/test/serve/js/compare-test.js b/test/serve/js/compare-test.js index 2f3dce8..1258b7a 100644 --- a/test/serve/js/compare-test.js +++ b/test/serve/js/compare-test.js @@ -63,7 +63,7 @@ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 36); +/******/ return __webpack_require__(__webpack_require__.s = 35); /******/ }) /************************************************************************/ /******/ ([ @@ -100,7 +100,7 @@ function provide(namespace) { provide('util'); window['gv'].util.provide = provide; exports.default = provide; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3ZpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUdIOzs7O0dBSUc7QUFDSCxpQkFBaUIsU0FBUztJQUN0QixZQUFZLENBQUM7SUFDYixFQUFFLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDO1FBQ2hDLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwQyxFQUFFLENBQUMsQ0FBQyxPQUFPLFNBQVMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1lBQ2pDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUVELFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFFcEMsa0JBQWUsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTAvMjAxNS5cclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIGNyZWF0ZSBhIG5hbWVzcGFjZSBvbiB0aGUgZ3Ygb2JqZWN0XHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UgdG8gY3JlYXRlXHJcbiAqIEByZXR1cm5zIHtvYmplY3R9IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5hbWVzcGFjZVxyXG4gKi9cclxuZnVuY3Rpb24gcHJvdmlkZShuYW1lc3BhY2Upe1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvd1snZ3YnXSA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgd2luZG93WydndiddID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBhcnRzID0gbmFtZXNwYWNlLnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgbmFtZVNwYWNlID0gd2luZG93WydndiddO1xyXG5cclxuICAgIGZvciAobGV0IGk9MDsgaTwgcGFydHMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGxldCBuZXdPYmplY3QgPSBuYW1lU3BhY2VbcGFydHNbaV1dO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG5ld09iamVjdCA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgICAgIG5hbWVTcGFjZVtwYXJ0c1tpXV0gPSB7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5hbWVTcGFjZSA9IG5hbWVTcGFjZVtwYXJ0c1tpXV07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5hbWVTcGFjZTtcclxufVxyXG5cclxucHJvdmlkZSgndXRpbCcpO1xyXG53aW5kb3dbJ2d2J10udXRpbC5wcm92aWRlID0gcHJvdmlkZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHByb3ZpZGU7XHJcbiJdfQ== /***/ }), /* 1 */ @@ -139,7 +139,7 @@ function makeGuid() { } nm.makeGuid = makeGuid; exports.default = makeGuid; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUd1aWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYWtlR3VpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgscUNBQWdDO0FBQ2hDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFHekI7OztHQUdHO0FBQ0g7SUFDUSxNQUFNLENBQUMsc0NBQXNDO1NBQ3hDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUVqRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztBQUVmLENBQUM7QUFDRCxFQUFFLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUN2QixrQkFBZSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8zLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi9wcm92aWRlJztcclxubGV0IG5tID0gcHJvdmlkZSgndXRpbCcpO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBndWlkcyBhcmUgdXNlZCB0byB1bmlxdWVseSBpZGVudGlmeSBncm91cHMgYW5kIGZlYXR1cmVzXHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IGEgbmV3IGd1aWRcclxuICovXHJcbmZ1bmN0aW9uIG1ha2VHdWlkKCkge1xyXG4gICAgICAgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4J1xyXG4gICAgICAgICAgICAucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbiAoYykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHIgPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwLCB2ID0gYyA9PSAneCcgPyByIDogciAmIDB4MyB8IDB4ODtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxufVxyXG5ubS5tYWtlR3VpZCA9IG1ha2VHdWlkO1xyXG5leHBvcnQgZGVmYXVsdCBtYWtlR3VpZDtcclxuXHJcblxyXG4iXX0= /***/ }), /* 4 */ @@ -158,7 +158,7 @@ var mapPopupCls_1 = __webpack_require__(12); */ exports.mapPopup = new mapPopupCls_1.default(); exports.default = exports.mapPopup; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwUG9wdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBQb3B1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsNkNBQXdDO0FBRXhDOzs7R0FHRztBQUNVLFFBQUEsUUFBUSxHQUFHLElBQUkscUJBQVcsRUFBaUIsQ0FBQztBQUN6RCxrQkFBZSxnQkFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMy8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBNYXBQb3B1cENscyBmcm9tICcuL21hcFBvcHVwQ2xzJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2luZ2xlIHBvcHVwIG9iamVjdCBjYXRjaCBpcyB0aGF0IGl0IGlzIGNvbW1vbiB0byBtdWx0aW1hcCBwYWdlc1xyXG4gKiBAdHlwZSB7TWFwUG9wdXBDbHN9XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgbWFwUG9wdXAgPSBuZXcgTWFwUG9wdXBDbHMoKSBhcyBNYXBQb3B1cENscztcclxuZXhwb3J0IGRlZmF1bHQgbWFwUG9wdXA7XHJcbiJdfQ== /***/ }), /* 5 */ @@ -241,7 +241,7 @@ var MapInteractionBase = (function () { exports.MapInteractionBase = MapInteractionBase; nm.MapInteractionBase = MapInteractionBase; exports.default = MapInteractionBase; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwSW50ZXJhY3Rpb25CYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWFwSW50ZXJhY3Rpb25CYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7O0dBRUc7QUFDSCwyQ0FBc0M7QUFFdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUloQzs7R0FFRztBQUNIO0lBS0k7OztPQUdHO0lBQ0gsNEJBQVksT0FBZTtRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlDQUFJLEdBQUosVUFBSyxNQUFjO1FBQ2YsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUEsQ0FBQztZQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztZQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQU1ELHNCQUFJLG1DQUFHO1FBSlA7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyQixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDJDQUFXO1FBSmY7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM3QixDQUFDOzs7T0FBQTtJQUVEOzs7T0FHRztJQUNILHVDQUFVLEdBQVY7UUFDSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksR0FBRyxHQUFNLElBQUksQ0FBQyxRQUFRLDRCQUF5QixDQUFDO1lBQ3BELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsTUFBTSxHQUFHLENBQUM7UUFDZCxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0NBQVMsR0FBVDtRQUNJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0wseUJBQUM7QUFBRCxDQUFDLEFBOURELElBOERDO0FBOURZLGdEQUFrQjtBQWdFL0IsRUFBRSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0FBQzNDLGtCQUFlLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvOC8yMDE1LlxyXG4gKi9cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnb2xIZWxwZXJzJyk7XHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiBiYXNlIGludGVyYWN0aW9uXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTWFwSW50ZXJhY3Rpb25CYXNlIHtcclxuICAgIF9tYXA6IG9sLk1hcDtcclxuICAgIF9pbml0aWFsaXplZDogYm9vbGVhbjtcclxuICAgIF9zdWJ0eXBlOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBtYXAgaW50ZXJhY3Rpb24gYmFzZVxyXG4gICAgICogQHBhcmFtIHN1YnR5cGUgLSB0aGUgaW50ZXJhY3Rpb24gc3VidHlwZVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihzdWJ0eXBlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9tYXAgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fc3VidHlwZSA9IHN1YnR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBiYXNlIGluaXRpYWxpemVyLCByZXR1cm5zIHRydWUgZm9yIGFscmVhZHkgaW5pdGlhbGl6ZWRcclxuICAgICAqIEBwYXJhbSB0aGVNYXAgLSB0aGUgb2wgTWFwXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIGZvciBhbHJlYWR5IGluaXRpYWxpemVkXHJcbiAgICAgKi9cclxuICAgIGluaXQodGhlTWFwOiBvbC5NYXApe1xyXG4gICAgICAgIGlmICghdGhpcy5faW5pdGlhbGl6ZWQpe1xyXG4gICAgICAgICAgICB0aGlzLl9tYXAgPSB0aGVNYXA7XHJcbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgcmVmZXJlbmNlIHRvIHRoZSBvbCBtYXAgb2JqZWN0XHJcbiAgICAgKiBAcmV0dXJucyB7b2wuTWFwfSB0aGUgbWFwIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBnZXQgbWFwKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgaWYgaXMgaW5pdGlhbGl6ZWRcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBpcyBpbml0aWFsaXplZFxyXG4gICAgICovXHJcbiAgICBnZXQgaW5pdGlhbGl6ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxpemVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgdGhlIGluaXRpYWxpemF0aW9uIHN0YXR1cyBhbmQgdGhyb3cgZXhjZXB0aW9uIGlmIG5vdCB2YWxpZCB5ZXRcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqL1xyXG4gICAgX2NoZWNrSW5pdCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgbGV0IG1zZyA9IGAke3RoaXMuX3N1YnR5cGV9IG9iamVjdCBub3QgaW5pdGlhbGl6ZWRgO1xyXG4gICAgICAgICAgICBhbGVydChtc2cpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhtc2cpO1xyXG4gICAgICAgICAgICB0aHJvdyBtc2c7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgdGhlIGluaXRpYWxpemF0aW9uIHN0YXR1cyBhbmQgdGhyb3cgZXhjZXB0aW9uIGlmIG5vdCB2YWxpZCB5ZXRcclxuICAgICAqL1xyXG4gICAgY2hlY2tJbml0KCl7XHJcbiAgICAgICAgdGhpcy5fY2hlY2tJbml0KCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbm5tLk1hcEludGVyYWN0aW9uQmFzZSA9IE1hcEludGVyYWN0aW9uQmFzZTtcclxuZXhwb3J0IGRlZmF1bHQgTWFwSW50ZXJhY3Rpb25CYXNlO1xyXG4iXX0= /***/ }), /* 6 */ @@ -260,7 +260,7 @@ var mapMoveCls_1 = __webpack_require__(11); */ exports.mapMove = new mapMoveCls_1.default(); exports.default = exports.mapMove; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwTW92ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hcE1vdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUVILDJDQUFzQztBQUV0Qzs7O0dBR0c7QUFFVSxRQUFBLE9BQU8sR0FBRyxJQUFJLG9CQUFVLEVBQUUsQ0FBQztBQUN4QyxrQkFBZSxlQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8zLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IE1hcE1vdmVDbHMgZnJvbSAnLi9tYXBNb3ZlQ2xzJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2luZ2xlIG1hcCBtb3ZlIG9iamVjdCBjYXRjaCBpcyB0aGF0IGl0IGlzIGNvbW1vbiB0byBtdWx0aW1hcCBwYWdlc1xyXG4gKiBAdHlwZSB7TWFwTW92ZUNsc31cclxuICovXHJcblxyXG5leHBvcnQgY29uc3QgbWFwTW92ZSA9IG5ldyBNYXBNb3ZlQ2xzKCk7XHJcbmV4cG9ydCBkZWZhdWx0IG1hcE1vdmU7XHJcbiJdfQ== /***/ }), /* 7 */ @@ -302,7 +302,7 @@ function quickMap(options) { exports.quickMap = quickMap; nm.quickMap = quickMap; exports.default = quickMap; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2tNYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJxdWlja01hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsK0NBQTZEO0FBQzdELDJDQUFzQztBQUN0QyxxQ0FBZ0M7QUFDaEMsdUNBQWtDO0FBRWxDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFOUI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsa0JBQXlCLE9BQTBCO0lBQy9DLElBQUksQ0FBQyxHQUFHLDJCQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsaUJBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEIsa0JBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNiLENBQUM7QUFMRCw0QkFLQztBQUdELEVBQUUsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3ZCLGtCQUFlLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzE1LzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtxdWlja01hcE9wdGlvbnMsIHF1aWNrTWFwQmFzZX0gZnJvbSAnLi9xdWlja01hcEJhc2UnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFwTW92ZSBmcm9tICcuL21hcE1vdmUnO1xyXG5pbXBvcnQgbWFwUG9wdXAgZnJvbSAnLi9tYXBQb3B1cCc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5sZXQgbm0gPSBwcm92aWRlKCdvbEhlbHBlcnMnKTtcclxuXHJcbi8qKlxyXG4gKiBTZXRzIHVwIGEgbWFwIHdpdGggc29tZSBkZWZhdWx0IHBhcmFtZXRlcnMgYW5kIGluaXRpYWxpemVzXHJcbiAqIG1hcE1vdmUgYW5kIG1hcFBvcHVwXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucz17fV0gY29uZmlnIG9wdGlvbnNcclxuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmRpdklkPW1hcF0gbWFwIGRpdiBpZFxyXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMuY2VudGVyPXt9XSBjZW50ZXIgY29uZmlnIG9iamVjdFxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuY2VudGVyLng9LTEwMDE4Mzc4XSBjZW50ZXIgeCwgd2ViIG1lcmNhdG9yIHggb3IgbG9uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5jZW50ZXIueT01NTc0OTEwXSBjZW50ZXIgeSwgd2ViIG1lcmNhdG9yIHkgb3IgbGF0XHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56b29tPTddIHpvb20gbGV2ZWxcclxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSBtaW4gem9vbVxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIG1heCB6b29tXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuYmFzZVN3aXRjaGVyPXRydWVdIGlmIGFkZCBiYXNlIG1hcCBzd2l0Y2hlclxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmZ1bGxTY3JlZW49ZmFsc2VdIGlmIGFkZCBiYXNlIG1hcCBzd2l0Y2hlclxyXG4gKiBAcmV0dXJucyB7b2wuTWFwfSB0aGUgb2wgbWFwXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcXVpY2tNYXAob3B0aW9ucz8gOiBxdWlja01hcE9wdGlvbnMpOiBvbC5NYXAge1xyXG4gICAgbGV0IG0gPSBxdWlja01hcEJhc2Uob3B0aW9ucyk7XHJcbiAgICBtYXBNb3ZlLmluaXQobSk7XHJcbiAgICBtYXBQb3B1cC5pbml0KG0pO1xyXG4gICAgcmV0dXJuIG07XHJcbn1cclxuXHJcblxyXG5ubS5xdWlja01hcCA9IHF1aWNrTWFwO1xyXG5leHBvcnQgZGVmYXVsdCBxdWlja01hcDtcclxuIl19 /***/ }), /* 8 */ @@ -711,7 +711,7 @@ var LayerBase = (function () { exports.LayerBase = LayerBase; nm.LayerBase = LayerBase; exports.default = LayerBase; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMEVBQTRFO0FBQzVFLDJDQUFzQztBQUV0Qyw2Q0FBd0M7QUFDeEMsMEJBQTZCO0FBRTdCLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFtQjdCOzs7R0FHRztBQUNIO0lBMEJJOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsbUJBQVksR0FBVyxFQUFFLE9BQThCO1FBQTlCLHdCQUFBLEVBQUEsWUFBOEI7UUFDbkQsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFzQixDQUFDO1FBRTVDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxhQUFhLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBR2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxPQUFPLENBQUMsTUFBTSxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUN2RSxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sT0FBTyxDQUFDLGNBQWMsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDbkcsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxjQUFjLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBRWxHLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxrQkFBUSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLGVBQWUsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMs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QixDQUFDOzs7T0FBQTtJQUVTLDhCQUFVLEdBQXBCO1FBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUNMLGdCQUFDO0FBQUQsQ0FBQyxBQXhaRCxJQXdaQztBQXhacUIsOEJBQVM7QUEwWi9CLEVBQUUsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0FBQ3pCLGtCQUFlLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHpvb21SZXNvbHV0aW9uQ29udmVydCBmcm9tICcuLi9vbEhlbHBlcnMvem9vbVJlc29sdXRpb25Db252ZXJ0JztcclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCBtYWtlR3VpZCBmcm9tICcuLi91dGlsL21ha2VHdWlkJztcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckJhc2VPcHRpb25ze1xyXG4gICAgaWQ/OiBzdHJpbmc7XHJcbiAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgb3BhY2l0eT86IG51bWJlcjtcclxuICAgIHZpc2libGU/OiBib29sZWFuO1xyXG4gICAgbWluWm9vbT86IG51bWJlcjtcclxuICAgIG1heFpvb20/OiBudW1iZXI7XHJcbiAgICBwYXJhbXM/OiBhbnk7XHJcbiAgICB6SW5kZXg/OiBudW1iZXI7XHJcbiAgICBsb2FkQ2FsbGJhY2s/OiBGdW5jdGlvbjtcclxuICAgIGxlZ2VuZENvbGxhcHNlPzogYm9vbGVhbjtcclxuICAgIGxlZ2VuZENoZWNrYm94PzogYm9vbGVhbjtcclxuICAgIGxlZ2VuZENvbnRlbnQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGhlIGJhc2UgbGF5ZXIgY2xhc3NcclxuICogQGFic3RyYWN0XHJcbiAqL1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGF5ZXJCYXNlIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgX2xlZ2VuZENoZWNrYm94OiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF91cmw6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBfb3BhY2l0eTogbnVtYmVyO1xyXG4gICAgcHJvdGVjdGVkIF9taW5ab29tOiBudW1iZXI7XHJcbiAgICBwcm90ZWN0ZWQgX21heFpvb206IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCBfdmlzaWJsZTogYm9vbGVhbjtcclxuICAgIHByb3RlY3RlZCBfbG9hZGVkOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF96SW5kZXg6IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCBfbGVnZW5kQ29udGVudDogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIF9wYXJhbXM6IGFueTtcclxuICAgIHByb3RlY3RlZCBfaWQ6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBfbmFtZTogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIF9zb3VyY2U6IG9sLnNvdXJjZS5Tb3VyY2U7XHJcbiAgICBwcm90ZWN0ZWQgX2FuaW1hdGU6IGJvb2xlYW47XHJcbiAgICBwcm90ZWN0ZWQgX2xlZ2VuZENvbGxhcHNlOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF9tYXhSZXNvbHV0aW9uOiBudW1iZXI7XHJcbiAgICBwcm90ZWN0ZWQgX21pblJlc29sdXRpb246IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCAgXyRsZWdlbmREaXY6IEpRdWVyeTtcclxuICAgIGxvYWRDYWxsYmFjazogRnVuY3Rpb247XHJcbiAgICBwcm90ZWN0ZWQgX29sTGF5ZXI6IG9sLmxheWVyLkxheWVyO1xyXG4gICAgcHJvdGVjdGVkIF9hcHBseUNvbGxhcHNlQ2FsbGVkOiBib29sZWFuO1xyXG5cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYmFzZSBsYXllciBmb3IgYWxsIG90aGVyc1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIHVybCBmb3Igc291cmNlXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmlkPW1ha2VHdWlkKCldIC0gbGF5ZXIgaWRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5uYW1lPVVubmFtZWQgTGF5ZXJdIC0gbGF5ZXIgbmFtZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm9wYWNpdHk9MV0gLSBvcGFjaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnZpc2libGU9dHJ1ZV0gLSBkZWZhdWx0IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5ab29tPXVuZGVmaW5lZF0gLSBtaW4gem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIC0gbWF4IHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnBhcmFtcz17fV0gLSB0aGUgZ2V0IHBhcmFtZXRlcnMgdG8gaW5jbHVkZSB0byByZXRyaWV2ZSB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56SW5kZXg9MF0gLSB0aGUgeiBpbmRleCBmb3IgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy5sb2FkQ2FsbGJhY2tdIC0gZnVuY3Rpb24gdG8gY2FsbCBvbiBsb2FkLCBjb250ZXh0IHRoaXMgaXMgdGhlIGxheWVyIG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb2xsYXBzZT1mYWxzZV0gLSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGJlIGluaXRpYWxseSBjb2xsYXBzZWRcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ2hlY2tib3g9dHJ1ZV0gLSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGhhdmUgYSBjaGVja2JveCBmb3IgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb250ZW50PXVuZGVmaW5lZF0gLSBhZGRpdGlvbmFsIGNvbnRlbnQgdG8gYWRkIHRvIHRoZSBsZWdlbmRcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IodXJsOiBzdHJpbmcsIG9wdGlvbnM6IExheWVyQmFzZU9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9IGFzIExheWVyQmFzZU9wdGlvbnM7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdXJsICE9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB0aHJvdyAnSW52YWxpZCBVUkwnO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl91cmwgPSB1cmw7XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9wYXJhbXMgPSB0eXBlb2Ygb3B0aW9ucy5wYXJhbXMgPT0gJ29iamVjdCcgPyBvcHRpb25zLnBhcmFtcyA6IHt9O1xyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbGxhcHNlID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kQ29sbGFwc2UgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5sZWdlbmRDb2xsYXBzZSA6IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENoZWNrYm94ID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kQ2hlY2tib3ggPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5sZWdlbmRDaGVja2JveCA6IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuaWQgPSBvcHRpb25zLmlkIHx8IG1ha2VHdWlkKCk7XHJcbiAgICAgICAgdGhpcy5fbmFtZSA9IG9wdGlvbnMubmFtZSB8fCAnVW5uYW1lZCBMYXllcic7XHJcbiAgICAgICAgdGhpcy5hbmltYXRlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IHR5cGVvZiBvcHRpb25zLm9wYWNpdHkgPT0gJ251bWJlcicgPyBvcHRpb25zLm9wYWNpdHkgOiAxO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fb3BhY2l0eSA+IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5fb3BhY2l0eSA9IDE7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9vcGFjaXR5IDwgMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9vcGFjaXR5ID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB0eXBlb2Ygb3B0aW9ucy52aXNpYmxlID09PSAnYm9vbGVhbicgPyBvcHRpb25zLnZpc2libGUgOiB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLl9zb3VyY2UgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByb3RlY3RlZFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuX21heFJlc29sdXRpb24gPSB6b29tUmVzb2x1dGlvbkNvbnZlcnQuem9vbVRvUmVzb2x1dGlvbihvcHRpb25zLm1pblpvb20pO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5fbWF4UmVzb2x1dGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5fbWF4UmVzb2x1dGlvbiArPSAwLjAwMDAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9taW5SZXNvbHV0aW9uID0gem9vbVJlc29sdXRpb25Db252ZXJ0Lnpvb21Ub1Jlc29sdXRpb24ob3B0aW9ucy5tYXhab29tKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWluWm9vbSA9IHR5cGVvZiBvcHRpb25zLm1pblpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLm1pblpvb20gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbWF4Wm9vbSA9IHR5cGVvZiBvcHRpb25zLm1heFpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLm1heFpvb20gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fekluZGV4ID0gdHlwZW9mIG9wdGlvbnMuekluZGV4ID09ICdudW1iZXInID8gb3B0aW9ucy56SW5kZXggOiAwO1xyXG5cclxuICAgICAgICB0aGlzLmxvYWRDYWxsYmFjayA9IHR5cGVvZiBvcHRpb25zLmxvYWRDYWxsYmFjayA9PSAnZnVuY3Rpb24nID8gb3B0aW9ucy5sb2FkQ2FsbGJhY2sgOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgfTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgPSAnJztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2xlZ2VuZENoZWNrYm94KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgKz0gYDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiAke3RoaXMudmlzaWJsZSA/ICdjaGVja2VkJyA6ICcnfSBgICtcclxuICAgICAgICAgICAgICAgIGBjbGFzcz1cImxlZ2VuZC1jaGVja1wiIGlkPVwiJHt0aGlzLmlkfS1sZWdlbmQtbGF5ZXItY2hlY2tcIj48c3Bhbj48L3NwYW4+YDtcclxuICAgICAgICAgICAgdGhpcy5fbGVnZW5kQ29udGVudCArPSBgPGxhYmVsIGZvcj1cIiR7dGhpcy5pZH0tbGVnZW5kLWxheWVyLWNoZWNrXCIgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbmFtZVwiPiR7dGhpcy5uYW1lfTwvbGFiZWw+YDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9sZWdlbmRDb250ZW50ICs9IGA8bGFiZWwgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbmFtZVwiPiR7dGhpcy5uYW1lfTwvbGFiZWw+YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuXyRsZWdlbmREaXYgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2FwcGx5Q29sbGFwc2VDYWxsZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9hZGRMZWdlbmRDb250ZW50KHR5cGVvZiBvcHRpb25zLmxlZ2VuZENvbnRlbnQgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5sZWdlbmRDb250ZW50IDogdW5kZWZpbmVkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGJhc2UgbG9hZCBmdW5jdGlvbiwgc2V0cyBfbG9hZGVkID0gdHJ1ZSBpZiBpdCBpcyBub3QgYWxyZWFkeVxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IGlmIGFscmVhZHkgbG9hZGVkXHJcbiAgICAgKi9cclxuICAgIF9sb2FkKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmxvYWRlZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHRoZSBsZWdlbmQgaHRtbCwgYmUgc3VyZSB0byBvbmx5IGFkZCB0byB0aGUgRE9NIG9uY2VcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IGh0bWwgZm9yIGxheWVyIHdyYXBwZWQgaW4gYSBkaXZcclxuICAgICAqL1xyXG4gICAgZ2V0TGVnZW5kRGl2KCkge1xyXG4gICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImxlZ2VuZC1sYXllci1kaXZcIiBpZD1cIiR7dGhpcy5pZH0tbGVnZW5kLWxheWVyLWRpdlwiPiR7dGhpcy5fbGVnZW5kQ29udGVudH08L2Rpdj5gO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBhZGRpdGlvbmFsQ29udGVudCAtIGFkZGl0aW9uYWwgY29udGVudCB0byBhZGQgdG8gbGVnZW5kXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBfYWRkTGVnZW5kQ29udGVudChhZGRpdGlvbmFsQ29udGVudD0nJykge1xyXG5cclxuICAgICAgICBsZXQgYWRkQ29sbGFwc2UgPSBhZGRpdGlvbmFsQ29udGVudC5pbmRleE9mKCc8dWw+JykgPiAtMTtcclxuXHJcbiAgICAgICAgaWYgKGFkZENvbGxhcHNlKSB7XHJcbiAgICAgICAgICAgIGFkZGl0aW9uYWxDb250ZW50ID0gJzxzcGFuIGNsYXNzPVwibGVnZW5kLWl0ZW1zLWV4cGFuZGVyXCIgdGl0bGU9XCJFeHBhbmQvQ29sbGFwc2VcIj4mIzk2NjA7PC9zcGFuPicgKyBhZGRpdGlvbmFsQ29udGVudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgKz0gYWRkaXRpb25hbENvbnRlbnQ7XHJcblxyXG4gICAgICAgIHRoaXMuXyRsZWdlbmREaXYgPSAkKGAjJHt0aGlzLmlkfS1sZWdlbmQtbGF5ZXItZGl2YCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl8kbGVnZW5kRGl2Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5fJGxlZ2VuZERpdi5hcHBlbmQoYWRkaXRpb25hbENvbnRlbnQpO1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5Q29sbGFwc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhZGQgYWRkaXRpb25hbCBjb250ZW50IHRvIHRoZSBsZWdlbmRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbYWRkaXRpb25hbENvbnRlbnQ9XSAtIGFkZGl0b25hbCBjb250ZW50IHRvIGFkZFxyXG4gICAgICovXHJcbiAgICBhZGRMZWdlbmRDb250ZW50KGFkZGl0aW9uYWxDb250ZW50KSB7XHJcbiAgICAgICAgdGhpcy5fYWRkTGVnZW5kQ29udGVudChhZGRpdGlvbmFsQ29udGVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXBwbHlDb2xsYXBzZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5fYXBwbHlDb2xsYXBzZUNhbGxlZCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY29sbGFwc2UgYWxyZWFkeSBhcHBsaWVkJyk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fJGxlZ2VuZERpdiA9ICQoYCMke3RoaXMuaWR9LWxlZ2VuZC1sYXllci1kaXZgKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuXyRsZWdlbmREaXYubGVuZ3RoID4gMCkge1xyXG5cclxuICAgICAgICAgICAgbGV0ICRleHBhbmRlciA9IHRoaXMuXyRsZWdlbmREaXYuZmluZCgnLmxlZ2VuZC1pdGVtcy1leHBhbmRlcicpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCRleHBhbmRlci5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hcHBseUNvbGxhcHNlQ2FsbGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAkZXhwYW5kZXIuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCAkdGhpcyA9ICQodGhpcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICR0aGlzLnNpYmxpbmdzKCd1bCcpLnNsaWRlVG9nZ2xlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy5oYXNDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLnJlbW92ZUNsYXNzKCdsZWdlbmQtbGF5ZXItZ3JvdXAtY29sbGFwc2VkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLmh0bWwoJyYjOTY2MDsnKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5hZGRDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5odG1sKCcmIzk2NTQ7Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2xlZ2VuZENvbGxhcHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJGV4cGFuZGVyLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmljayB0byByZWZyZXNoIHRoZSBsYXllclxyXG4gICAgICovXHJcbiAgICByZWZyZXNoKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNvdXJjZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNvdXJjZS5yZWZyZXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBpZCgpOiBzdHJpbmd7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lkO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBpZChuZXdJZDogc3RyaW5nKXtcclxuICAgICAgICB0aGlzLl9pZCA9IG5ld0lkO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhbmltYXRlKCk6IGJvb2xlYW57XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FuaW1hdGU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGFuaW1hdGUoYW5pbWF0ZTogYm9vbGVhbil7XHJcbiAgICAgICAgdGhpcy5fYW5pbWF0ZSA9IGFuaW1hdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIGxlZ2VuZCBjb250ZW50XHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICovXHJcbiAgICBnZXQgbGVnZW5kQ29udGVudCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbGVnZW5kQ29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgbGVnZW5kIGNvbnRlbnQgZGlyZWN0bHlcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuZXdWYWwgLSBuZXcgY29udGVudFxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICovXHJcbiAgICBzZXQgbGVnZW5kQ29udGVudChuZXdWYWwpIHtcclxuICAgICAgICB0aGlzLl9sZWdlbmRDb250ZW50ID0gbmV3VmFsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtYXAgZ2V0IHBhcmFtc1xyXG4gICAgICogQHR5cGUge29iamVjdH1cclxuICAgICAqL1xyXG4gICAgZ2V0IHBhcmFtcygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IHRoZSBtYXAgZ2V0IHBhcmFtc1xyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IG5ld1BhcmFtcyAtIG5ldyBnZXQgcGFyYW1zXHJcbiAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgKi9cclxuICAgIHNldCBwYXJhbXMobmV3UGFyYW1zKSB7XHJcbiAgICAgICAgdGhpcy5fcGFyYW1zID0gbmV3UGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtaW5pbXVtIHJlc29sdXRpb25cclxuICAgICAqIEB0eXBlIHtudW1iZXJ8Kn1cclxuICAgICAqL1xyXG4gICAgZ2V0IG1pblJlc29sdXRpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pblJlc29sdXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIG1heGltdW0gcmVzb2x1dGlvblxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWF4UmVzb2x1dGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4UmVzb2x1dGlvbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCBtaW4gem9vbVxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWluWm9vbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWluWm9vbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCBtYXggem9vbVxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWF4Wm9vbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4Wm9vbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgdXJsXHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICovXHJcbiAgICBnZXQgdXJsKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91cmw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGxheWVyIHZpc2liaWxpdHlcclxuICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHZpc2liaWxpdHlcclxuICAgICAqL1xyXG4gICAgc2V0IHZpc2libGUodmlzaWJpbGl0eTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuc2V0VmlzaWJsZSh2aXNpYmlsaXR5KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0VmlzaWJsZSh2aXNpYmlsaXR5OiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZpc2liaWxpdHk7XHJcbiAgICAgICAgaWYgKHRoaXMub2xMYXllcikge1xyXG4gICAgICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0VmlzaWJsZSh0aGlzLl92aXNpYmxlKTtcclxuICAgICAgICAgICAgaWYgKHZpc2liaWxpdHkgJiYgIXRoaXMuX2xvYWRlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCB0aGUgbGF5ZXIgb3BhY2l0eVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqL1xyXG4gICAgZ2V0IG9wYWNpdHkoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wYWNpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIGxheWVyIG9wYWNpdHlcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvcGFjaXR5IC0gbGF5ZXIgb3BhY2l0eVxyXG4gICAgICovXHJcbiAgICBzZXQgb3BhY2l0eShvcGFjaXR5KSB7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IG9wYWNpdHk7XHJcbiAgICAgICAgaWYgKHRoaXMub2xMYXllcikge1xyXG4gICAgICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0T3BhY2l0eSh0aGlzLl9vcGFjaXR5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGxheWVyIG5hbWVcclxuICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgKi9cclxuICAgIGdldCBuYW1lKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9uYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IHRoZSBsYXllciBuYW1lXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3TmFtZSAtIHRoZSBuZXcgbmFtZVxyXG4gICAgICovXHJcbiAgICBzZXQgbmFtZShuZXdOYW1lKSB7XHJcbiAgICAgICAgdGhpcy5fbmFtZSA9IG5ld05hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGUgbGF5ZXIgaXMgbG9hZGVkXHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqL1xyXG4gICAgZ2V0IGxvYWRlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBsYXllciBzb3VyY2VcclxuICAgICAqIEB0eXBlIHsqfVxyXG4gICAgICovXHJcbiAgICBnZXQgc291cmNlKCk6IG9sLnNvdXJjZS5Tb3VyY2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNvdXJjZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0U291cmNlKCk6IG9sLnNvdXJjZS5Tb3VyY2V7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgeiBpbmRleFxyXG4gICAgICovXHJcbiAgICBnZXQgekluZGV4KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3pJbmRleDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgeiBpbmRleFxyXG4gICAgICovXHJcbiAgICBzZXQgekluZGV4KG5ld1o6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX3pJbmRleCA9IG5ld1o7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHNldFpJbmRleChuZXdaOiBudW1iZXIpe1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHRoZSB0aGUgb2wgbGF5ZXJcclxuICAgICAqL1xyXG4gICAgZ2V0IG9sTGF5ZXIoKTogb2wubGF5ZXIuTGF5ZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE9sTGF5ZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0T2xMYXllcigpOiBvbC5sYXllci5MYXllcntcclxuICAgICAgICByZXR1cm4gdGhpcy5fb2xMYXllcjtcclxuICAgIH1cclxufVxyXG5cclxubm0uTGF5ZXJCYXNlID0gTGF5ZXJCYXNlO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckJhc2U7XHJcbiJdfQ== /***/ }), /* 9 */ @@ -744,7 +744,7 @@ function definedAndNotNull(input) { } exports.definedAndNotNull = definedAndNotNull; nm.definedAndNotNull = definedAndNotNull; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tEZWZpbmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2hlY2tEZWZpbmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscUNBQWdDO0FBQ2hDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUV0Qzs7OztHQUlHO0FBQ0gseUJBQWlDLEtBQUs7SUFDbEMsWUFBWSxDQUFDO0lBRWIsTUFBTSxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBSkQsMENBSUM7QUFFRCxFQUFFLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztBQUdyQzs7OztHQUlHO0FBQ0gsMkJBQW1DLEtBQVU7SUFDekMsWUFBWSxDQUFDO0lBRWIsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBSkQsOENBSUM7QUFFRCxFQUFFLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcHJvdmlkZSBmcm9tICcuL3Byb3ZpZGUnO1xyXG5sZXQgbm0gPSBwcm92aWRlKCd1dGlsLmNoZWNrRGVmaW5lZCcpO1xyXG5cclxuLyoqXHJcbiAqIGNoZWNrIGlmIHRoZSBpbnB1dCBpcyB1bmRlZmluZWQgb3IgbnVsbFxyXG4gKiBAcGFyYW0gaW5wdXQgLSBpbnB1dCBwb2ludGVyXHJcbiAqIEByZXR1cm5zIHRydWUgdW5kZWZpbmVkIG9yIG51bGxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1bmRlZmluZWRPck51bGwgKGlucHV0KTogYm9vbGVhbntcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG5cclxuICAgIHJldHVybiAodHlwZW9mIGlucHV0ID09PSAndW5kZWZpbmVkJyB8fCBpbnB1dCA9PT0gbnVsbCk7XHJcbn1cclxuXHJcbm5tLnVuZGVmaW5lZE9yTnVsbCA9IHVuZGVmaW5lZE9yTnVsbDtcclxuXHJcblxyXG4vKipcclxuICogY2hlY2sgaWYgdGhlIGlucHV0IGlzIGRlZmluZWQgYW5kIG5vdCBudWxsXHJcbiAqIEBwYXJhbSBpbnB1dCAtIGlucHV0IHBvaW50ZXJcclxuICogQHJldHVybnMgdHJ1ZSBkZWZpbmVkIGFuZCBub3QgbnVsbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZWRBbmROb3ROdWxsIChpbnB1dDogYW55KTogYm9vbGVhbntcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG5cclxuICAgIHJldHVybiAhKHVuZGVmaW5lZE9yTnVsbChpbnB1dCkpO1xyXG59XHJcblxyXG5ubS5kZWZpbmVkQW5kTm90TnVsbCA9IGRlZmluZWRBbmROb3ROdWxsO1xyXG5cclxuIl19 /***/ }), /* 10 */ @@ -903,7 +903,7 @@ var LayerEsriMapServer = (function (_super) { exports.LayerEsriMapServer = LayerEsriMapServer; nm.LayerEsriMapServer = LayerEsriMapServer; exports.default = LayerEsriMapServer; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJFc3JpTWFwU2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJFc3JpTWFwU2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gseUNBQXdEO0FBQ3hELHFEQUF1RDtBQUN2RCxrREFBNkM7QUFDN0MsMkNBQXNDO0FBQ3RDLDhCQUFpQztBQUNqQywwQkFBNkI7QUFFN0IsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQVE3Qjs7O0dBR0c7QUFDSDtJQUF3QyxzQ0FBUztJQUk3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Ba0JHO0lBQ0gsNEJBQVksR0FBRyxFQUFFLE9BQXVDO1FBQXZDLHdCQUFBLEVBQUEsWUFBdUM7UUFBeEQsWUFFSSxrQkFBTSxHQUFHLEVBQUUsT0FBTyxDQUFDLFNBNEJ0QjtRQTNCRyxLQUFJLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3ZDO1lBQ0ksR0FBRyxFQUFFLEtBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLFNBQVMsR0FBRyxLQUFJLENBQUMsR0FBRztZQUMxQyxNQUFNLEVBQUUsT0FBTyxPQUFPLENBQUMsVUFBVSxJQUFJLFdBQVcsR0FBRyxTQUFTLEdBQUcsRUFBQyxNQUFNLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFDO1NBQ2xILENBQ0osQ0FBQztRQUVGLEtBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM5QixNQUFNLEVBQUUsS0FBSSxDQUFDLE9BQXlCO1lBQ3RDLE9BQU8sRUFBRSxLQUFJLENBQUMsT0FBTztZQUNyQixPQUFPLEVBQUUsS0FBSSxDQUFDLE9BQU87WUFDckIsYUFBYSxFQUFFLEtBQUksQ0FBQyxjQUFjO1lBQ2xDLGFBQWEsRUFBRSxL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QUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMi83LzIwMTUuXHJcbiAqL1xyXG5pbXBvcnQge0xheWVyQmFzZSwgTGF5ZXJCYXNlT3B0aW9uc30gZnJvbSAnLi9MYXllckJhc2UnO1xyXG5pbXBvcnQgKiBhcyBlc3JpVG9PbCBmcm9tICcuLi9vbEhlbHBlcnMvZXNyaVRvT2xTdHlsZSc7XHJcbmltcG9ydCBtYXBQb3B1cCBmcm9tICcuLi9vbEhlbHBlcnMvbWFwUG9wdXAnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgb2wgPSByZXF1aXJlKCdjdXN0b20tb2wnKTtcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckVzcmlNYXBTZXJ2ZXJPcHRpb25zIGV4dGVuZHMgTGF5ZXJCYXNlT3B0aW9ucyB7XHJcbiAgICBhZGRQb3B1cD86IGJvb2xlYW47XHJcbiAgICBzaG93TGF5ZXJzPzogQXJyYXk8bnVtYmVyPjtcclxufVxyXG5cclxuLyoqXHJcbiAqIGVzcmkgbWFwc2VydmVyIGxheWVyXHJcbiAqIEBhdWdtZW50cyBMYXllckJhc2VcclxuICovXHJcbmV4cG9ydCBjbGFzcyBMYXllckVzcmlNYXBTZXJ2ZXIgZXh0ZW5kcyBMYXllckJhc2Uge1xyXG4gICAgX2VzcmlGb3JtYXQ6IG9sLmZvcm1hdC5Fc3JpSlNPTjtcclxuICAgIF9wb3B1cFJlcXVlc3Q6IEpRdWVyeVhIUjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBiYXNlIGxheWVyIGZvciBhbGwgb3RoZXJzXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gcmVzb3VyY2UgdXJsXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdIC0gY29uZmlnXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuaWRdIC0gbGF5ZXIgaWRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5uYW1lPVVubmFtZWQgTGF5ZXJdIC0gbGF5ZXIgbmFtZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm9wYWNpdHk9MV0gLSBvcGFjaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnZpc2libGU9dHJ1ZV0gLSBkZWZhdWx0IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5ab29tPXVuZGVmaW5lZF0gLSBtaW4gem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIC0gbWF4IHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnBhcmFtcz17fV0gdGhlIGdldCBwYXJhbWV0ZXJzIHRvIGluY2x1ZGUgdG8gcmV0cmlldmUgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuekluZGV4PTBdIHRoZSB6IGluZGV4IGZvciB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtvcHRpb25zLmxvYWRDYWxsYmFja10gZnVuY3Rpb24gdG8gY2FsbCBvbiBsb2FkLCBjb250ZXh0IHRoaXMgaXMgdGhlIGxheWVyIG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb2xsYXBzZT1mYWxzZV0gaWYgdGhlIGxlZ2VuZCBpdGVtIHNob3VsZCBiZSBpbml0aWFsbHkgY29sbGFwc2VkXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENoZWNrYm94PXRydWVdIGlmIHRoZSBsZWdlbmQgaXRlbSBzaG91bGQgaGF2ZSBhIGNoZWNrYm94IGZvciB2aXNpYmlsaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENvbnRlbnRdIGFkZGl0aW9uYWwgY29udGVudCB0byBhZGQgdG8gdGhlIGxlZ2VuZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5hZGRQb3B1cD1mYWxzZV0gaWYgYSBwb3B1cCBzaG91bGQgYmUgYWRkZWRcclxuICAgICAqIEBwYXJhbSB7dW5kZWZpbmVkfEFycmF5PG51bWJlcj59IFtvcHRpb25zLnNob3dMYXllcnM9dW5kZWZpbmVkXSBpZiBhIHBvcHVwIHNob3VsZCBiZSBhZGRlZFxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcih1cmwsIG9wdGlvbnM6IExheWVyRXNyaU1hcFNlcnZlck9wdGlvbnMgPSB7fSkge1xyXG5cclxuICAgICAgICBzdXBlcih1cmwsIG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuX3NvdXJjZSA9IG5ldyBvbC5zb3VyY2UuVGlsZUFyY0dJU1Jlc3QoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHVybDogdGhpcy51cmwgPT0gJycgPyB1bmRlZmluZWQgOiB0aGlzLnVybCxcclxuICAgICAgICAgICAgICAgIHBhcmFtczogdHlwZW9mIG9wdGlvbnMuc2hvd0xheWVycyA9PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IHtsYXllcnM6ICdzaG93OicgKyBvcHRpb25zLnNob3dMYXllcnMuam9pbignLCcpfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5fb2xMYXllciA9IG5ldyBvbC5sYXllci5UaWxlKHtcclxuICAgICAgICAgICAgc291cmNlOiB0aGlzLl9zb3VyY2UgYXMgb2wuc291cmNlLlRpbGUsXHJcbiAgICAgICAgICAgIHZpc2libGU6IHRoaXMudmlzaWJsZSxcclxuICAgICAgICAgICAgb3BhY2l0eTogdGhpcy5vcGFjaXR5LFxyXG4gICAgICAgICAgICBtaW5SZXNvbHV0aW9uOiB0aGlzLl9taW5SZXNvbHV0aW9uLFxyXG4gICAgICAgICAgICBtYXhSZXNvbHV0aW9uOiB0aGlzLl9tYXhSZXNvbHV0aW9uXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIuc2V0WkluZGV4KHRoaXMuX3pJbmRleCk7XHJcblxyXG4gICAgICAgIG9wdGlvbnMuYWRkUG9wdXAgPSB0eXBlb2Ygb3B0aW9ucy5hZGRQb3B1cCA9PSAnYm9vbGVhbicgPyBvcHRpb25zLmFkZFBvcHVwIDogZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuX2VzcmlGb3JtYXQgPSBuZXcgb2wuZm9ybWF0LkVzcmlKU09OKCk7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBSZXF1ZXN0ID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5hZGRMZWdlbmRDb250ZW50KCk7XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmFkZFBvcHVwKSB7XHJcbiAgICAgICAgICAgIG1hcFBvcHVwLmFkZE1hcFNlcnZpY2VQb3B1cCh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhZGQgYWRkaXRpb25hbCBjb250ZW50IHRvIHRoZSBsZWdlbmRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbYWRkaXRpb25hbENvbnRlbnQ9JyddIGFkZGl0aW9uYWwgY29udGVudCBmb3IgbGVnZW5kXHJcbiAgICAgKi9cclxuICAgIGFkZExlZ2VuZENvbnRlbnQoYWRkaXRpb25hbENvbnRlbnQ/OiBzdHJpbmcpIHtcclxuICAgICAgICBsZXQgdXJsQ29weSA9IHRoaXMudXJsO1xyXG5cclxuICAgICAgICBpZiAodXJsQ29weVt1cmxDb3B5Lmxlbmd0aCAtIDFdICE9PSAnLycpIHtcclxuICAgICAgICAgICAgdXJsQ29weSArPSAnLyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1cmxDb3B5ICs9ICdsZWdlbmQ/Zj1wanNvbiZjYWxsYmFjaz0/JztcclxuXHJcbiAgICAgICAgJC5nZXQodXJsQ29weSwge30sIChkKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBuZXdIdG1sID0gZXNyaVRvT2wubWFrZU1hcFNlcnZpY2VMZWdlbmQoZCk7XHJcbiAgICAgICAgICAgIHN1cGVyLmFkZExlZ2VuZENvbnRlbnQobmV3SHRtbCk7XHJcbiAgICAgICAgfSwgJ2pzb24nKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgZ2V0UG9wdXBJbmZvKHF1ZXJ5UGFyYW1zKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHVybENvcHkgPSB0aGlzLnVybDtcclxuXHJcbiAgICAgICAgaWYgKHVybENvcHlbdXJsQ29weS5sZW5ndGggLSAxXSAhPSAnLycpIHtcclxuICAgICAgICAgICAgdXJsQ29weSArPSAnLyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1cmxDb3B5ICs9ICdpZGVudGlmeT9jYWxsYmFjaz0/JztcclxuXHJcbiAgICAgICAgbGV0IF9fdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9wb3B1cFJlcXVlc3QgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cFJlcXVlc3QuYWJvcnQoKTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9wb3B1cFJlcXVlc3QgPSAkLmdldCh1cmxDb3B5LCBxdWVyeVBhcmFtcywgZnVuY3Rpb24gKGQpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgciBvZiBkWydyZXN1bHRzJ10pIHtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgcG9wdXBIdG1sID0gJzx0YWJsZSBjbGFzcz1cImVzcmktcG9wdXAtdGFibGVcIj4nO1xyXG5cclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGEgaW4gclsnYXR0cmlidXRlcyddKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJbJ2F0dHJpYnV0ZXMnXS5oYXNPd25Qcm9wZXJ0eShhKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXR0clZhbCA9IHJbJ2F0dHJpYnV0ZXMnXVthXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdHRyVmFsID09IG51bGwgfHwgYXR0clZhbC50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT0gJ251bGwnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGF0dHIgPSBhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ci5sZW5ndGggPiAxNCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ciA9IGF0dHIuc2xpY2UoMCwgMTEpICsgJy4uLic7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcHVwSHRtbCArPSBgPHRyPjx0ZD4ke2F0dHJ9PC90ZD48dGQ+JHthdHRyVmFsfTwvdGQ+PC90cj5gO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzwvdGFibGU+JztcclxuXHJcbiAgICAgICAgICAgICAgICBtYXBQb3B1cC5hZGRNYXBTZXJ2aWNlUG9wdXBDb250ZW50KF9fdGhpcy5fZXNyaUZvcm1hdC5yZWFkRmVhdHVyZShyKSwgX190aGlzLCBwb3B1cEh0bWwsIHJbJ2xheWVyTmFtZSddKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sICdqc29uJyk7XHJcblxyXG4gICAgICAgIHRoaXMuX3BvcHVwUmVxdWVzdC5hbHdheXMoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBfX3RoaXMuX3BvcHVwUmVxdWVzdCA9IG51bGw7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtvbC5zb3VyY2UuVGlsZUFyY0dJU1Jlc3R9IHRoZSB2ZWN0b3Igc291cmNlXHJcbiAgICAgKi9cclxuICAgIGdldCBzb3VyY2UoKTogb2wuc291cmNlLlRpbGVBcmNHSVNSZXN0IHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0U291cmNlKCkgYXMgb2wuc291cmNlLlRpbGVBcmNHSVNSZXN0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHRoZSBvbCBsYXllclxyXG4gICAgICovXHJcbiAgICBnZXQgb2xMYXllcigpOiBvbC5sYXllci5UaWxlIHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0T2xMYXllcigpIGFzIG9sLmxheWVyLlRpbGU7XHJcbiAgICB9XHJcbn1cclxubm0uTGF5ZXJFc3JpTWFwU2VydmVyID0gTGF5ZXJFc3JpTWFwU2VydmVyO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckVzcmlNYXBTZXJ2ZXI7XHJcbiJdfQ== /***/ }), /* 11 */ @@ -1148,7 +1148,7 @@ var MapMoveCls = (function (_super) { exports.MapMoveCls = MapMoveCls; nm.MapMoveCls = MapMoveCls; exports.default = MapMoveCls; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwTW92ZUNscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hcE1vdmVDbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EsMkRBQXNEO0FBQ3RELG1EQUFxRDtBQUNyRCwyQ0FBc0M7QUFDdEMsNkNBQXdDO0FBRXhDLDBCQUE2QjtBQUM3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBcUJoQzs7O0dBR0c7QUFDSDtJQUFnQyw4QkFBa0I7SUFhOUM7O09BRUc7SUFDSDtRQUFBLFlBQ0ksa0JBQU0sVUFBVSxDQUFDLFNBZXBCO1FBZEcsS0FBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsS0FBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsS0FBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFFdkIsS0FBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixLQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLEtBQUksQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7UUFDakMsS0FBSSxDQUFDLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUNsQyxLQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBRWxDLEtBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLEtBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDOztJQUVoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gseUJBQUksR0FBSixVQUFLLE1BQWM7UUFBbkIsaUJBaUJDO1FBaEJHLGlCQUFNLElBQUksWUFBQyxNQUFNLENBQUMsQ0FBQztRQUVuQixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLFVBQUMs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Q0FBQztRQUNoRSxDQUFDO0lBQ0wsQ0FBQztJQUNMLGlCQUFDO0FBQUQsQ0FBQyxBQWxRRCxDQUFnQyw0QkFBa0IsR0FrUWpEO0FBbFFZLGdDQUFVO0FBb1F2QixFQUFFLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztBQUMzQixrQkFBZSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGF5ZXJCYXNlVmVjdG9yIGZyb20gXCIuLi9sYXllcnMvTGF5ZXJCYXNlVmVjdG9yXCI7XHJcbmltcG9ydCBNYXBJbnRlcmFjdGlvbkJhc2UgZnJvbSAnLi9tYXBJbnRlcmFjdGlvbkJhc2UnO1xyXG5pbXBvcnQgKiBhcyBjaGVja0RlZmluZWQgZnJvbSAnLi4vdXRpbC9jaGVja0RlZmluZWQnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFrZUd1aWQgZnJvbSAnLi4vdXRpbC9tYWtlR3VpZCc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycycpO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgZXh0ZW50T2JqZWN0e1xyXG4gICAgbWluWDogbnVtYmVyO1xyXG4gICAgbWluWTogbnVtYmVyO1xyXG4gICAgbWF4WDogbnVtYmVyO1xyXG4gICAgbWF4WTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIG1hcE1vdmVDYWxsYmFja0Z1bmN0aW9ue1xyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGV4dGVudCBleHRlbnQgYXMgcHJlZGVmaW5lZCBvYmplY3QgbWluWCwgbWluWCwgbWF4WCwgbWF4WVxyXG4gICAgICogQHBhcmFtIHpvb21MZXZlbCBjdXJyZW50IHpvb20gbGV2ZWxcclxuICAgICAqIEBwYXJhbSBldnRUeXBlIHRoZSBldmVudCB0eXBlICdjaGFuZ2U6Y2VudGVyJywgJ2NoYW5nZTpyZXNvbHV0aW9uJ1xyXG4gICAgICovXHJcbiAgICAoZXh0ZW50OiBleHRlbnRPYmplY3QsIHpvb21MZXZlbDogbnVtYmVyLCBldnRUeXBlPzogc3RyaW5nKTogYW55XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogYXNzaXN0cyB3aXRoIG1hcCBtb3ZlIGludGVyYWN0aW9ucywgdHJpZ2dlciBjYWxsYmFjayBmdW5jdGlvbnNcclxuICogQGF1Z21lbnRzIE1hcEludGVyYWN0aW9uQmFzZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIE1hcE1vdmVDbHMgZXh0ZW5kcyBNYXBJbnRlcmFjdGlvbkJhc2Uge1xyXG4gICAgX21hcEV4dGVudDogZXh0ZW50T2JqZWN0O1xyXG4gICAgX3pvb21MZXZlbDogbnVtYmVyO1xyXG4gICAgX2xvb2t1cExheWVyOiBPYmplY3Q7XHJcbiAgICBfYXJyTGF5ZXI6IEFycmF5PExheWVyQmFzZVZlY3Rvcj47XHJcbiAgICBfYXJyTHlyVGltZW91dDogQXJyYXk8bnVtYmVyPjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0OiBBcnJheTxudW1iZXI+O1xyXG4gICAgX21hcE1vdmVDYWxsYmFja0RlbGF5czogQXJyYXk8bnVtYmVyPjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tzTG9va3VwOiBPYmplY3Q7XHJcbiAgICBfbWFwTW92ZUNhbGxiYWNrQ29udGV4dDogQXJyYXk8T2JqZWN0PjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tzOiBBcnJheTxtYXBNb3ZlQ2FsbGJhY2tGdW5jdGlvbj47XHJcbiAgICBfYXJyTHlyUmVxdWVzdDogQXJyYXk8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGNvbnN0cnVjdG9yIGNhbGxlZCBpbXBsaWNpdGx5XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCdtYXAgbW92ZScpO1xyXG4gICAgICAgIHRoaXMuX2Fyckx5clJlcXVlc3QgPSBbXTtcclxuICAgICAgICB0aGlzLl9hcnJMeXJUaW1lb3V0ID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyTGF5ZXIgPSBbXTtcclxuICAgICAgICB0aGlzLl9sb29rdXBMYXllciA9IHt9O1xyXG5cclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzID0gW107XHJcbiAgICAgICAgdGhpcy5fbWFwTW92ZUNhbGxiYWNrc0xvb2t1cCA9IHt9O1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja0RlbGF5cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja0NvbnRleHQgPSBbXTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0ID0gW107XHJcblxyXG4gICAgICAgIHRoaXMuX21hcEV4dGVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl96b29tTGV2ZWwgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogaW5pdGlhbGl6ZSB0aGUgbWFwIG1vdmUgb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0gdGhlTWFwIC0gdGhlIG9sIG1hcFxyXG4gICAgICovXHJcbiAgICBpbml0KHRoZU1hcDogb2wuTWFwKXtcclxuICAgICAgICBzdXBlci5pbml0KHRoZU1hcCk7XHJcblxyXG4gICAgICAgIHRoaXMubWFwLmdldFZpZXcoKS5vbihbJ2NoYW5nZTpjZW50ZXInLCAnY2hhbmdlOnJlc29sdXRpb24nXSwgKGUpID0+e1xyXG5cclxuICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHRyaWdnZXIgdGhlIGxheWVyIHVwZGF0ZXNcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9hcnJMYXllci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyTHlyTG9hZCh0aGlzLl9hcnJMYXllcltpXSwgaSwgZS50eXBlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gdHJpZ2dlciB0aGUgbWFwIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX21hcE1vdmVDYWxsYmFja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlck1vdmVDYWxsYmFjayhpLCBlLnR5cGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgX3VwZGF0ZU1hcEV4dGVudCgpIHtcclxuICAgICAgICBsZXQgdGhlVmlldyA9IHRoaXMubWFwLmdldFZpZXcoKTtcclxuICAgICAgICB0aGlzLl96b29tTGV2ZWwgPSB0aGVWaWV3LmdldFpvb20oKTtcclxuXHJcbiAgICAgICAgbGV0IGV4dGVudEFycmF5ID0gdGhlVmlldy5jYWxjdWxhdGVFeHRlbnQodGhpcy5tYXAuZ2V0U2l6ZSgpKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWFwRXh0ZW50ID0ge1xyXG4gICAgICAgICAgICBtaW5YOiBleHRlbnRBcnJheVswXSxcclxuICAgICAgICAgICAgbWluWTogZXh0ZW50QXJyYXlbMV0sXHJcbiAgICAgICAgICAgIG1heFg6IGV4dGVudEFycmF5WzJdLFxyXG4gICAgICAgICAgICBtYXhZOiBleHRlbnRBcnJheVszXVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiByZXR1cm4gdGhlIG1hcCBleHRlbnRcclxuICAgICAqL1xyXG4gICAgZ2V0IG1hcEV4dGVudCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX21hcEV4dGVudCkge1xyXG4gICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXBFeHRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUcmlnZ2VyIHRoZSBsYXllciBsb2FkXHJcbiAgICAgKiBAcGFyYW0gbHlyIHRoZSBsYXllciBiZWluZyBhY3RlZCBvblxyXG4gICAgICogQHBhcmFtIGluZGV4IGluZGV4IG9mIHRoZSBsYXllclxyXG4gICAgICogQHBhcmFtIGV2ZW50VHlwZSB0aGUgZXZlbnQgdHJpZ2dlcmluZyB0aGUgbG9hZCwgYXMgJ2NoYW5nZTpjZW50ZXInIG9yICdjaGFuZ2U6cmVzb2x1dGlvbidcclxuICAgICAqL1xyXG4gICAgdHJpZ2dlckx5ckxvYWQobHlyOiBMYXllckJhc2VWZWN0b3IsIGluZGV4PzogbnVtYmVyLCBldmVudFR5cGU/OiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgaWYgKGNoZWNrRGVmaW5lZC51bmRlZmluZWRPck51bGwobHlyKSAmJiBjaGVja0RlZmluZWQudW5kZWZpbmVkT3JOdWxsKGluZGV4KSkge1xyXG4gICAgICAgICAgICB0aHJvdyAnbmVlZCB0byBkZWZpbmUgbHlyIG9yIGluZGV4JztcclxuICAgICAgICB9IGVsc2UgaWYgKGNoZWNrRGVmaW5lZC5kZWZpbmVkQW5kTm90TnVsbChseXIpICYmIGNoZWNrRGVmaW5lZC51bmRlZmluZWRPck51bGwoaW5kZXgpKSB7XHJcbiAgICAgICAgICAgIGluZGV4ID0gdGhpcy5fYXJyTGF5ZXIuaW5kZXhPZihseXIpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY2hlY2tEZWZpbmVkLnVuZGVmaW5lZE9yTnVsbChseXIpICYmIGNoZWNrRGVmaW5lZC5kZWZpbmVkQW5kTm90TnVsbChpbmRleCkpIHtcclxuICAgICAgICAgICAgbHlyID0gdGhpcy5fYXJyTGF5ZXJbaW5kZXhdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gY2xlYXIgdGhlIHRpbWVvdXRcclxuICAgICAgICBpZiAodGhpcy5fYXJyTHlyVGltZW91dFtpbmRleF0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fYXJyTHlyVGltZW91dFtpbmRleF0pO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJUaW1lb3V0W2luZGV4XSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBhYm9ydCBpZiBuZWNlc3NhcnkgYW5kIGNsZWFyIHRoZSByZXF1ZXN0XHJcbiAgICAgICAgaWYgKHRoaXMuX2Fyckx5clJlcXVlc3RbaW5kZXhdICE9IG51bGwgJiYgdGhpcy5fYXJyTHlyUmVxdWVzdFtpbmRleF0gIT0gNCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0W2luZGV4XS5hYm9ydCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0W2luZGV4XSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBkdW1teSBjYWxsYmFjayB1c2VkIGlmIGJlZm9yZSBsb2FkIHJldHVybnMgZmFsc2VcclxuICAgICAgICBsZXQgY2FsbGJhY2tGdW5jID0gZnVuY3Rpb24gKCkge307XHJcblxyXG4gICAgICAgIGlmIChseXIubWFwTW92ZUJlZm9yZSh0aGlzLl96b29tTGV2ZWwsIGV2ZW50VHlwZSkpIHtcclxuICAgICAgICAgICAgbHlyLm1hcE1vdmVNYWtlR2V0UGFyYW1zKHRoaXMuX21hcEV4dGVudCwgdGhpcy5fem9vbUxldmVsKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBfX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICAgICAgY2FsbGJhY2tGdW5jID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gaW5uZXJGdW5jdGlvbih0aGVMYXllciwgdGhlSW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgX2lubmVyVGhpcyA9IHRoaXM7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXJyTHlyUmVxdWVzdFt0aGVJbmRleF0gPSAkLmdldChcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlTGF5ZXIudXJsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5tYXBNb3ZlUGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBAdHlwZSB7TGF5ZXJCYXNlVmVjdG9yfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5tYXBNb3ZlQ2FsbGJhY2soZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5sb2FkQ2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgJ2pzb24nKS5mYWlsKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoanFYSFIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqcVhIUi5zdGF0dXNUZXh0ICE9ICdhYm9ydCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZmFpbGVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhlTGF5ZXIudXJsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGVMYXllci5tYXBNb3ZlUGFyYW1zKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSkuYWx3YXlzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5uZXJUaGlzLl9hcnJMeXJUaW1lb3V0W3RoZUluZGV4XSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5uZXJUaGlzLl9hcnJMeXJSZXF1ZXN0W3RoZUluZGV4XSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaW5uZXJGdW5jdGlvbi5jYWxsKF9fdGhpcywgbHlyLCBpbmRleCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbHlyLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2Fyckx5clRpbWVvdXRbaW5kZXhdID0gc2V0VGltZW91dChjYWxsYmFja0Z1bmMsIGx5ci5vbkRlbWFuZERlbGF5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyaWdnZXIgdGhlIG1hcCBtb3ZlIGNhbGwgYmFjayBhdCB0aGUgZ2l2ZW4gaW5kZXhcclxuICAgICAqIEBwYXJhbSBpbmQgLSB0aGUgaW5kZXggb2YgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gZXZlbnRUeXBlPXVuZGVmaW5lZCB0aGUgZXZlbnQgdHJpZ2dlcmluZyB0aGUgbG9hZCBhcyAnY2hhbmdlOmNlbnRlcicgb3IgJ2NoYW5nZTpyZXNvbHV0aW9uJ1xyXG4gICAgICogQHBhcmFtIGZ1bmN0aW9uSWQ9dW5kZWZpbmVkIHRoZSBmdW5jdGlvbiBpZCB1c2VkIHRvIHJlZmVyZW5jZSB0aGUgYWRkZWQgY2FsbGJhY2sgZnVuY3Rpb25cclxuICAgICAqL1xyXG4gICAgdHJpZ2dlck1vdmVDYWxsYmFjayhpbmQ6IG51bWJlciwgZXZlbnRUeXBlPzogc3RyaW5nLCBmdW5jdGlvbklkPzogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgaW5kID09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBmdW5jdGlvbklkID09ICd1bmRlZmluZWQnKXtcclxuICAgICAgICAgICAgdGhyb3cgJ2VpdGhlciB0aGUgZnVuY3Rpb24gaW5kZXggb3IgdGhlIGlkIG11c3QgYmUgZGVmaW5lZCc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIGluZCAhPT0gJ251bWJlcicpe1xyXG4gICAgICAgICAgICBpbmQgPSB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzLmluZGV4T2YodGhpcy5fbWFwTW92ZUNhbGxiYWNrc0xvb2t1cFtmdW5jdGlvbklkXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaW5kIDwgMCl7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdmdW5jdGlvbiBub3QgZm91bmQnKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGNsZWFyIHRoZSB0aW1lb3V0XHJcbiAgICAgICAgaWYgKHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXRbaW5kXSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0W2luZF0pO1xyXG4gICAgICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0W2luZF0gPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGN0eCA9IHRoaXMuX21hcE1vdmVDYWxsYmFja0NvbnRleHRbaW5kXTtcclxuICAgICAgICBsZXQgdGhlRnVuYyA9IHRoaXMuX21hcE1vdmVDYWxsYmFja3NbaW5kXTtcclxuXHJcbiAgICAgICAgbGV0IF9fdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIGxldCBmID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAoY3R4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGVGdW5jLmNhbGwoY3R4LCBfX3RoaXMuX21hcEV4dGVudCwgX190aGlzLl96b29tTGV2ZWwsIGV2ZW50VHlwZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGVGdW5jKF9fdGhpcy5fbWFwRXh0ZW50LCBfX3RoaXMuX3pvb21MZXZlbCwgZXZlbnRUeXBlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXRbaW5kXSA9IHNldFRpbWVvdXQoZiwgdGhpcy5fbWFwTW92ZUNhbGxiYWNrRGVsYXlzW2luZF0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIGEgbGF5ZXIgdG8gdGhlIGludGVyYWN0aW9uXHJcbiAgICAgKiBAcGFyYW0gIGx5ciAtIGxheWVyIHRvIGFkZFxyXG4gICAgICogQHBhcmFtIHRyaWdnZXJPbkFkZCAtIGlmIHRoZSBsYXllciBzaG91bGQgYmUgbG9hZGVkIG9uIGFkZFxyXG4gICAgICovXHJcbiAgICBhZGRWZWN0b3JMYXllcihseXI6IExheWVyQmFzZVZlY3RvciwgdHJpZ2dlck9uQWRkOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgICAgIGlmICh0aGlzLl9hcnJMYXllci5pbmRleE9mKGx5cikgPiAtMSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnYWxyZWFkeSBhZGRlZCAnICsgbHlyLm5hbWUgKyAnIHRvIG1hcCBtb3ZlJyk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2NoZWNrSW5pdCgpO1xyXG5cclxuICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0LnB1c2gobnVsbCk7XHJcbiAgICAgICAgdGhpcy5fYXJyTHlyVGltZW91dC5wdXNoKG51bGwpO1xyXG4gICAgICAgIHRoaXMuX2FyckxheWVyLnB1c2gobHlyKTtcclxuICAgICAgICB0aGlzLl9sb29rdXBMYXllcltseXIuaWRdID0gbHlyO1xyXG5cclxuICAgICAgICB0cmlnZ2VyT25BZGQgPSB0eXBlb2YgdHJpZ2dlck9uQWRkID09ICdib29sZWFuJyA/IHRyaWdnZXJPbkFkZCA6IHRydWU7XHJcblxyXG4gICAgICAgIGlmICh0cmlnZ2VyT25BZGQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX21hcEV4dGVudCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJMeXJMb2FkKGx5ciwgdGhpcy5fYXJyTGF5ZXIubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIGFkZCBhIGNhbGxiYWNrIHRvIHRoZSBtYXAgbW92ZSBldmVudFxyXG4gICAgICogQHBhcmFtIGZ1bmMgLSBjYWxsYmFjayBmdW5jdGlvblxyXG4gICAgICogQHBhcmFtIGNvbnRleHQgLSB0aGUgY29udGV4dCB0byB1c2UgZm9yIHRoaXMgZnVuY3Rpb25cclxuICAgICAqIEBwYXJhbSBkZWxheT01MCB0aGUgZGVsYXkgYmVmb3JlIGNhbGwgbG9hZFxyXG4gICAgICogQHBhcmFtIHRyaWdnZXJPbkFkZCBpZiB0aGUgbGF5ZXIgc2hvdWxkIGJlIGxvYWRlZCBvbiBhZGQgdG8gbWFwTW92ZVxyXG4gICAgICogQHBhcmFtIGZ1bmN0aW9uSWQgb3B0aW9uYWwgaWQgdG8gcmVmZXJlbmNlIHRoZSBmdW5jdGlvbiBsYXRlciBmb3Igb3V0c2lkZSB0cmlnZ2VyaW5nXHJcbiAgICAgKi9cclxuICAgIGFkZENhbGxiYWNrKGZ1bmM6IG1hcE1vdmVDYWxsYmFja0Z1bmN0aW9uLCBjb250ZXh0PzogYW55LCBkZWxheT86IG51bWJlciwgdHJpZ2dlck9uQWRkPyA6IGJvb2xlYW4sIGZ1bmN0aW9uSWQ/OiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX21hcE1vdmVDYWxsYmFja3MuaW5kZXhPZihmdW5jKSA+IC0xKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCd0aGlzIGZ1bmN0aW9uIGFscmVhZHkgYWRkZWQgdG8gbWFwIG1vdmUnKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICBpZiAoIWZ1bmN0aW9uSWQpe1xyXG4gICAgICAgICAgICBmdW5jdGlvbklkID0gbWFrZUd1aWQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja3MucHVzaChmdW5jKTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzTG9va3VwW2Z1bmN0aW9uSWRdID0gZnVuY3Rpb25JZDtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tEZWxheXMucHVzaCh0eXBlb2YgZGVsYXkgPT0gJ251bWJlcicgPyBkZWxheSA6IDUwKTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tDb250ZXh0LnB1c2goY2hlY2tEZWZpbmVkLmRlZmluZWRBbmROb3ROdWxsKGNvbnRleHQpID8gY29udGV4dCA6IG51bGwpO1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXQucHVzaChudWxsKTtcclxuXHJcbiAgICAgICAgdHJpZ2dlck9uQWRkID0gdHlwZW9mIHRyaWdnZXJPbkFkZCA9PSAnYm9vbGVhbicgPyB0cmlnZ2VyT25BZGQgOiB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodHJpZ2dlck9uQWRkKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9tYXBFeHRlbnQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTWFwRXh0ZW50KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy50cmlnZ2VyTW92ZUNhbGxiYWNrKHRoaXMuX21hcE1vdmVDYWxsYmFja3MubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5ubS5NYXBNb3ZlQ2xzID0gTWFwTW92ZUNscztcclxuZXhwb3J0IGRlZmF1bHQgTWFwTW92ZUNscztcclxuIl19 /***/ }), /* 12 */ @@ -1583,7 +1583,7 @@ var MapPopupCls = (function (_super) { exports.MapPopupCls = MapPopupCls; nm.MapPopupCls = MapPopupCls; exports.default = MapPopupCls; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwUG9wdXBDbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBQb3B1cENscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7Ozs7Ozs7Ozs7OztBQUVILDJEQUFzRDtBQUV0RCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBR2pDLDBCQUE2QjtBQUU3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBMEJoQztJQVNJOzs7Ozs7O09BT0c7SUFDSCxnQ0FBWSxPQUFtQixFQUFFLEtBQXlDLEVBQUUsVUFBa0IsRUFBRSxjQUErQixFQUFFLGFBQXNCO1FBQ25KLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxhQUFhLElBQUksUUFBUSxHQUFHLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDdEYsQ0FBQztJQUVELHNCQUFJLDZDQUFTO2FBQWI7WUFDSSxFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDOUIsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUMzQixDQUFDO1FBQ0wsQ0FBQzs7O09BQUE7SUFDTCw2QkFBQztBQUFELENBQUMsQUFqQ0QsSUFpQ0M7QUFqQ1ksd0RBQXNCO0FBbUNuQzs7O0dBR0c7QUFDSDtJQUFpQywrQkFBa0I7SUFxQi9DOzs7OztPQUtHO0lBR0g7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QWtCLEdBeWNsRDtBQXpjWSxrQ0FBVztBQTBjeEIsRUFBRSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDN0Isa0JBQWUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMy8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBNYXBJbnRlcmFjdGlvbkJhc2UgZnJvbSAnLi9tYXBJbnRlcmFjdGlvbkJhc2UnO1xyXG5pbXBvcnQgcHJvcGVydGllc1pvb21TdHlsZSBmcm9tICcuLi9vbEhlbHBlcnMvcHJvcGVydGllc1pvb21TdHlsZSc7XHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQge0xheWVyQmFzZVZlY3Rvcn0gZnJvbSBcIi4uL2xheWVycy9MYXllckJhc2VWZWN0b3JcIjtcclxuaW1wb3J0IExheWVyRXNyaU1hcFNlcnZlciBmcm9tIFwiLi4vbGF5ZXJzL0xheWVyRXNyaU1hcFNlcnZlclwiO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5cclxuY29uc3Qgbm0gPSBwcm92aWRlKCdvbEhlbHBlcnMnKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgcG9wdXBDaGFuZ2VkRnVuY3Rpb24ge1xyXG4gICAgKCRwb3BDb250ZW50OiBKUXVlcnkpOiBhbnk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBwb3B1cENhbGxiYWNrIHtcclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRoZSBwb3B1cFxyXG4gICAgICogQHBhcmFtIGZlYXR1cmVQcm9wZXJ0aWVzXHJcbiAgICAgKiBAcGFyYW0ganFSZWZcclxuICAgICAqL1xyXG4gICAgKGZlYXR1cmVQcm9wZXJ0aWVzOiBPYmplY3QsIGpxUmVmPzogSlF1ZXJ5KTogc3RyaW5nIHwgYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIG1hcEV2ZW50IHtcclxuICAgIGNvb3JkaW5hdGU6IG9sLkNvb3JkaW5hdGU7XHJcbiAgICBwaXhlbDogb2wuUGl4ZWw7XHJcbiAgICBkcmFnZ2luZzogYm9vbGVhbnxhbnk7XHJcbiAgICBvcmlnaW5hbEV2ZW50OiBFdmVudDtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlTGF5ZXJQcm9wZXJ0aWVzIHtcclxuXHJcbiAgICBmZWF0dXJlOiBvbC5GZWF0dXJlO1xyXG4gICAgbGF5ZXI6IExheWVyQmFzZVZlY3RvcnxMYXllckVzcmlNYXBTZXJ2ZXI7XHJcbiAgICBsYXllckluZGV4OiBudW1iZXI7XHJcbiAgICBzZWxlY3Rpb25MYXllcjogb2wubGF5ZXIuVmVjdG9yO1xyXG4gICAgcG9wdXBDb250ZW50OiBzdHJpbmc7XHJcbiAgICBlc3JpTGF5ZXJOYW1lOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGZlYXR1cmUgdGhlIGZlYXR1cmVcclxuICAgICAqIEBwYXJhbSBsYXllciAtIHRoZSBsYXllciBpbiB0aGUgcG9wdXBcclxuICAgICAqIEBwYXJhbSBsYXllckluZGV4IC0gaW5kZXggb2YgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gc2VsZWN0aW9uTGF5ZXIgLSB0aGUgb2wgc2VsZWN0aW9uIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gW2VzcmlMYXllck5hbWU9dW5kZWZpbmVkXSAtIGVzcmkgbGF5ZXIgbmFtZVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihmZWF0dXJlOiBvbC5GZWF0dXJlLCBsYXllcjogTGF5ZXJCYXNlVmVjdG9yfExheWVyRXNyaU1hcFNlcnZlciwgbGF5ZXJJbmRleDogbnVtYmVyLCBzZWxlY3Rpb25MYXllcjogb2wubGF5ZXIuVmVjdG9yLCBlc3JpTGF5ZXJOYW1lPzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5mZWF0dXJlID0gZmVhdHVyZTtcclxuICAgICAgICB0aGlzLmxheWVyID0gbGF5ZXI7XHJcbiAgICAgICAgdGhpcy5sYXllckluZGV4ID0gbGF5ZXJJbmRleDtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbkxheWVyID0gc2VsZWN0aW9uTGF5ZXI7XHJcbiAgICAgICAgdGhpcy5wb3B1cENvbnRlbnQgPSAnJztcclxuICAgICAgICB0aGlzLmVzcmlMYXllck5hbWUgPSB0eXBlb2YgZXNyaUxheWVyTmFtZSA9PSAnc3RyaW5nJyA/IGVzcmlMYXllck5hbWUgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGxheWVyTmFtZSgpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXNyaUxheWVyTmFtZSA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lc3JpTGF5ZXJOYW1lO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxheWVyLm5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogbWFwIHBvcHVwIGNsYXNzXHJcbiAqIEBhdWdtZW50cyBNYXBJbnRlcmFjdGlvbkJhc2VcclxuICovXHJcbmV4cG9ydCBjbGFzcyBNYXBQb3B1cENscyBleHRlbmRzIE1hcEludGVyYWN0aW9uQmFzZSB7XHJcbiAgICBwcml2YXRlIF9wb3B1cE9wZW46IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIF9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5OiBBcnJheTxGZWF0dXJlTGF5ZXJQcm9wZXJ0aWVzPjtcclxuICAgIHByaXZhdGUgX2N1cnJlbnRQb3B1cEluZGV4OiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9wb3B1cENvbnRlbnRMZW5ndGg6IG51bWJlcjtcclxuICAgIHByaXZhdGUgX2VzcmlNYXBTZXJ2aWNlTGF5ZXJzOiBBcnJheTxMYXllckVzcmlNYXBTZXJ2ZXI+O1xyXG4gICAgcHJpdmF0ZSBfJHBvcHVwQ2xvc2VyOiBKUXVlcnk7XHJcbiAgICBwcml2YXRlIF8kcG9wdXBDb250ZW50OiBKUXVlcnk7XHJcbiAgICBwcml2YXRlIF8kcG9wdXBDb250YWluZXI6IEpRdWVyeTtcclxuICAgIHByaXZhdGUgX3BvcHVwT3ZlcmxheTogb2wuT3ZlcmxheTtcclxuICAgIHByaXZhdGUgX2FyclBvcHVwTGF5ZXJzOiBBcnJheTxMYXllckJhc2VWZWN0b3I+O1xyXG4gICAgcHJpdmF0ZSBfcG9wdXBDb29yZGluYXRlOiBvbC5Db29yZGluYXRlO1xyXG4gICAgcHJpdmF0ZSBfcG9wdXBDaGFuZ2VkRnVuY3Rpb25zOiBBcnJheTxwb3B1cENoYW5nZWRGdW5jdGlvbj47XHJcbiAgICBwcml2YXRlIF9tYXBDbGlja0Z1bmN0aW9uczogQXJyYXk8RnVuY3Rpb24+O1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uTGF5ZXJMb29rdXA6IE9iamVjdDtcclxuICAgIHByaXZhdGUgX2FyclBvcHVwTGF5ZXJJZHM6IEFycmF5PHN0cmluZz47XHJcbiAgICBwcml2YXRlIF9hcnJQb3B1cExheWVyTmFtZXM6IEFycmF5PHN0cmluZz47XHJcbiAgICBwcml2YXRlIF9hcnJQb3B1cE9sTGF5ZXJzOiBBcnJheTxvbC5sYXllci5WZWN0b3I+O1xyXG4gICAgcHJpdmF0ZSBfYXJyUG9wdXBDb250ZW50RnVuY3Rpb246IEFycmF5PHBvcHVwQ2FsbGJhY2s+O1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uTGF5ZXJzOiBBcnJheTxvbC5sYXllci5WZWN0b3I+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5pdGlvbiBmb3Igb3BlbmxheWVycyBzdHlsZSBmdW5jdGlvblxyXG4gICAgICogQGNhbGxiYWNrIG9sU3R5bGVGdW5jdGlvblxyXG4gICAgICogJnBhcmFtIGZlYXR1cmUgdGhlIG9wZW5sYXllcnMgdmVjdG9yIGZlYXR1cmVcclxuICAgICAqICRwYXJhbVxyXG4gICAgICovXHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIHBvcHVwIGNvbnN0cnVjdG9yXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCdtYXAgcG9wdXAnKTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cExheWVySWRzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcnMgPSBbXTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb24gPSBbXTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250YWluZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ29udGVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDbG9zZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVycyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVyTG9va3VwID0ge307XHJcbiAgICAgICAgdGhpcy5fbWFwQ2xpY2tGdW5jdGlvbnMgPSBbXTtcclxuXHJcbiAgICAgICAgLy9sZXQgYSA9IGZ1bmN0aW9uKCRqcXVlcnlDb250ZW50KXtjb25zb2xlLmxvZygkanF1ZXJ5Q29udGVudCl9O1xyXG4gICAgICAgIC8vdGhpcy5fcG9wdXBDaGFuZ2VkTG9va3VwID0geydhJzogYX07XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDaGFuZ2VkRnVuY3Rpb25zID0gW107XHJcbiAgICAgICAgdGhpcy5fZXNyaU1hcFNlcnZpY2VMYXllcnMgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5fcG9wdXBPcGVuID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDb29yZGluYXRlID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5fcGFzc1Rocm91Z2hMYXllckZlYXR1cmVBcnJheSA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IC0xO1xyXG4gICAgICAgIHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCA9IDA7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIHBvcHVwIGluaXRpYWxpemF0aW9uXHJcbiAgICAgKiBAcGFyYW0ge29sLk1hcH0gdGhlTWFwIC0gdGhlIG9sIG1hcFxyXG4gICAgICovXHJcbiAgICBpbml0KHRoZU1hcDogb2wuTWFwKSB7XHJcbiAgICAgICAgc3VwZXIuaW5pdCh0aGVNYXApO1xyXG5cclxuICAgICAgICBsZXQgJG1hcDtcclxuICAgICAgICBsZXQgdGFyZ2V0ID0gdGhpcy5tYXAuZ2V0VGFyZ2V0KCk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgICRtYXAgPSAkKCcjJyArIHRhcmdldCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAkbWFwID0gJCh0YXJnZXQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJG1hcC5hcHBlbmQoXHJcbiAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwib2wtcG9wdXBcIj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwib2wtcG9wdXAtY2xvc2VyXCI+WDwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+PC9kaXY+JyArXHJcbiAgICAgICAgICAgICc8L2Rpdj4nXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ29udGFpbmVyID0gJG1hcC5maW5kKCcub2wtcG9wdXAnKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250ZW50ID0gJG1hcC5maW5kKCcucG9wdXAtY29udGVudCcpO1xyXG4gICAgICAgIHRoaXMuXyRwb3B1cENsb3NlciA9ICRtYXAuZmluZCgnLm9sLXBvcHVwLWNsb3NlcicpO1xyXG5cclxuICAgICAgICBsZXQgX2Vhc2UgPSAobjogbnVtYmVyKTogbnVtYmVyID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG9sLmVhc2luZy5pbkFuZE91dChuKTtcclxuICAgICAgICB9O1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5ID0gbmV3IG9sLk92ZXJsYXkoe1xyXG4gICAgICAgICAgICBlbGVtZW50OiB0aGlzLl8kcG9wdXBDb250YWluZXJbMF0sXHJcbiAgICAgICAgICAgIGF1dG9QYW46IHRydWUsXHJcbiAgICAgICAgICAgIGF1dG9QYW5BbmltYXRpb246IHtcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyNTAsXHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IHRoZU1hcC5nZXRWaWV3KCkuZ2V0Q2VudGVyKCksXHJcbiAgICAgICAgICAgICAgICBlYXNpbmc6IF9lYXNlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWFwLmFkZE92ZXJsYXkodGhpcy5fcG9wdXBPdmVybGF5KTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ2xvc2VyLmNsaWNrKChldnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIGRpc3BsYXkgcG9wdXAgb24gY2xpY2tcclxuICAgICAgICB0aGlzLl9tYXAub24oJ3NpbmdsZWNsaWNrJywgKGV2dCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwQ29vcmRpbmF0ZSA9IGV2dFsnY29vcmRpbmF0ZSddO1xyXG5cclxuICAgICAgICAgICAgLy8gZXNyaSBtYXAgc2VydmljZSBsYXllcnNcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2VzcmlNYXBTZXJ2aWNlTGF5ZXJzLmxlbmd0aCA+IDApIHtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgcXVlcnlQYXJhbXMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZ2VvbWV0cnk6IGV2dFsnY29vcmRpbmF0ZSddLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgICAgICBnZW9tZXRyeVR5cGU6ICdlc3JpR2VvbWV0cnlQb2ludCcsXHJcbiAgICAgICAgICAgICAgICAgICAgbGF5ZXJzOiAnYWxsJyxcclxuICAgICAgICAgICAgICAgICAgICBzcjogdGhpcy5fbWFwLmdldFZpZXcoKS5nZXRQcm9qZWN0aW9uKCkuZ2V0Q29kZSgpLnNwbGl0KCc6JylbMV0sXHJcbiAgICAgICAgICAgICAgICAgICAgbWFwRXh0ZW50OiAodGhpcy5fbWFwLmdldFZpZXcoKS5jYWxjdWxhdGVFeHRlbnQodGhpcy5fbWFwLmdldFNpemUoKSkgYXMgbnVtYmVyW10pLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZURpc3BsYXk6ICh0aGlzLl9tYXAuZ2V0U2l6ZSgpIGFzIG51bWJlcltdKS5qb2luKCcsJykgKyAnLDk2JyxcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm5HZW9tZXRyeTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICB0b2xlcmFuY2U6IDE1LFxyXG4gICAgICAgICAgICAgICAgICAgIGY6ICdwanNvbidcclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgbCBvZiB0aGlzLl9lc3JpTWFwU2VydmljZUxheWVycykge1xyXG4gICAgICAgICAgICAgICAgICAgIGwuZ2V0UG9wdXBJbmZvKHF1ZXJ5UGFyYW1zKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IGxheWVyRmVhdHVyZU9iamVjdEFycmF5ID0gdGhpcy5fZmVhdHVyZXNBdFBpeGVsKGV2dFsncGl4ZWwnXSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID0gLTE7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxheWVyRmVhdHVyZU9iamVjdEFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZmVhdE9iaiA9IGxheWVyRmVhdHVyZU9iamVjdEFycmF5W2ldO1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCBwcm9wcyA9IGZlYXRPYmouZmVhdHVyZS5nZXRQcm9wZXJ0aWVzKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHBvcHVwQ29udGVudFJlc3BvbnNlID0gdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb25bZmVhdE9iai5sYXllckluZGV4XShwcm9wcywgdGhpcy5fJHBvcHVwQ29udGVudCk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy9za2lwIGlmIHJldHVybiB3YXMgZmFsc2VcclxuICAgICAgICAgICAgICAgIGlmIChwb3B1cENvbnRlbnRSZXNwb25zZSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL2NvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcG9wdXBDb250ZW50UmVzcG9uc2UgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICBmZWF0T2JqLnBvcHVwQ29udGVudCA9IHBvcHVwQ29udGVudFJlc3BvbnNlIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5LnB1c2goZmVhdE9iaik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGZlYXRPYmouc2VsZWN0aW9uTGF5ZXIuZ2V0U291cmNlKCkuYWRkRmVhdHVyZShmZWF0T2JqLmZlYXR1cmUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cENvbnRlbnRMZW5ndGggPSB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID0gLTE7XHJcblxyXG4gICAgICAgICAgICBsZXQgcG9wdXBIdG1sID0gJzxkaXYgY2xhc3M9XCJvbC1wb3B1cC1uYXZcIj4nO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzxzcGFuIGNsYXNzPVwicHJldmlvdXMtcG9wdXAgb2wtcG9wdXAtbmF2LWFycm93XCI+JiM5NjY0Ozwvc3Bhbj4nO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzxzcGFuIGNsYXNzPVwibmV4dC1wb3B1cCBvbC1wb3B1cC1uYXYtYXJyb3dcIj4mIzk2NTQ7PC9zcGFuPic7XHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSBgPHNwYW4gY2xhc3M9XCJjdXJyZW50LXBvcHVwLWl0ZW0tbnVtYmVyXCIgc3R5bGU9XCJmb250LXdlaWdodDogYm9sZDtcIj48L3NwYW4+YDtcclxuICAgICAgICAgICAgcG9wdXBIdG1sICs9IGA8c3Bhbj4mbmJzcDtvZiZuYnNwOzwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gYDxzcGFuIGNsYXNzPVwicG9wdXAtY29udGVudC1sZW5ndGhcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkO1wiPiR7dGhpcy5fcG9wdXBDb250ZW50TGVuZ3RofTwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gYDxzcGFuPiZuYnNwOyZuYnNwOy0mbmJzcDsmbmJzcDs8L3NwYW4+YDtcclxuICAgICAgICAgICAgcG9wdXBIdG1sICs9IGA8c3BhbiBjbGFzcz1cImN1cnJlbnQtcG9wdXAtbGF5ZXItbmFtZVwiPjwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzwvZGl2Pic7XHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSAnPGRpdiBjbGFzcz1cIm9sLXBvcHVwLWlubmVyXCI+JztcclxuXHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSAnPC9kaXY+JztcclxuXHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuaHRtbChwb3B1cEh0bWwpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fJHBvcHVwQ29udGVudC5maW5kKCcucHJldmlvdXMtcG9wdXAnKS5jbGljaygoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4LS07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyRmVhdFNlbGVjdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGxldCBuZXh0UG9wdXAgPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5uZXh0LXBvcHVwJyk7XHJcblxyXG4gICAgICAgICAgICBuZXh0UG9wdXAuY2xpY2soKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCA9PSAxICYmIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID09IHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IDA7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyRmVhdFNlbGVjdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgbmV4dFBvcHVwLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9wb3B1cE92ZXJsYXkuc2V0UG9zaXRpb24odGhpcy5fcG9wdXBDb29yZGluYXRlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuc2Nyb2xsVG9wKDApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcG9wdXBPcGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvL2NoYW5nZSBtb3VzZSBjdXJzb3Igd2hlbiBvdmVyIG1hcmtlclxyXG4gICAgICAgIHRoaXMuX21hcC5vbigncG9pbnRlcm1vdmUnLCAoZXZ0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChldnRbJ2RyYWdnaW5nJ10pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgcGl4ZWwgPSB0aGlzLm1hcC5nZXRFdmVudFBpeGVsKGV2dFsnb3JpZ2luYWxFdmVudCddKTtcclxuICAgICAgICAgICAgbGV0IGhpdCA9IHRoaXMubWFwLmhhc0ZlYXR1cmVBdFBpeGVsKHBpeGVsLCAobHlyQ2FuZGlkYXRlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBvbExheWVyIG9mIHRoaXMuX2FyclBvcHVwT2xMYXllcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobHlyQ2FuZGlkYXRlID09IG9sTGF5ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGxldCBtYXBFbGVtZW50ID0gdGhpcy5tYXAuZ2V0VGFyZ2V0RWxlbWVudCgpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICBtYXBFbGVtZW50LnN0eWxlLmN1cnNvciA9IGhpdCA/ICdwb2ludGVyJyA6ICcnO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGhlbHBlciB0byBzZWxlY3QgZmVhdHVyZXNcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIF90cmlnZ2VyRmVhdFNlbGVjdCgpIHtcclxuICAgICAgICBsZXQgJGN1cnJlbnRQb3B1cEl0ZW1OdW1iZXIgPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5jdXJyZW50LXBvcHVwLWl0ZW0tbnVtYmVyJyk7XHJcbiAgICAgICAgbGV0ICRpbm5lclBvcHVwID0gdGhpcy5fJHBvcHVwQ29udGVudC5maW5kKCcub2wtcG9wdXAtaW5uZXInKTtcclxuICAgICAgICBsZXQgJGxheWVyTmFtZVNwYW4gPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5jdXJyZW50LXBvcHVwLWxheWVyLW5hbWUnKTtcclxuICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICAgICAgbGV0IGx5ckZlYXRPYmogPSB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5W3RoaXMuX2N1cnJlbnRQb3B1cEluZGV4XTtcclxuICAgICAgICAkY3VycmVudFBvcHVwSXRlbU51bWJlci5odG1sKCh0aGlzLl9jdXJyZW50UG9wdXBJbmRleCArIDEpLnRvRml4ZWQoKSk7XHJcbiAgICAgICAgJGxheWVyTmFtZVNwYW4uaHRtbChseXJGZWF0T2JqLmxheWVyTmFtZSk7XHJcbiAgICAgICAgJGlubmVyUG9wdXAuaHRtbChseXJGZWF0T2JqLnBvcHVwQ29udGVudCk7XHJcbiAgICAgICAgbHlyRmVhdE9iai5zZWxlY3Rpb25MYXllci5nZXRTb3VyY2UoKS5hZGRGZWF0dXJlKGx5ckZlYXRPYmouZmVhdHVyZSk7XHJcbiAgICAgICAgZm9yIChsZXQgZiBvZiB0aGlzLl9wb3B1cENoYW5nZWRGdW5jdGlvbnMpIHtcclxuICAgICAgICAgICAgZih0aGlzLl8kcG9wdXBDb250ZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBmZWF0dXJlIC0gdGhlIG9sIGZlYXR1cmVcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJFc3JpTWFwU2VydmVyfSBseXIgLSB0aGUgbWFwIHNlcnZlciBsYXllclxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHBvcHVwQ29udGVudCAtIHBvcHVwIGNvbnRlbnRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBlc3JpTmFtZSAtIGVzcmkgbGF5ZXIgbmFtZVxyXG4gICAgICovXHJcbiAgICBhZGRNYXBTZXJ2aWNlUG9wdXBDb250ZW50KGZlYXR1cmU6IG9sLkZlYXR1cmUsIGx5cjogTGF5ZXJFc3JpTWFwU2VydmVyLCBwb3B1cENvbnRlbnQ6IHN0cmluZywgZXNyaU5hbWU6IHN0cmluZykge1xyXG5cclxuICAgICAgICBsZXQgZmVhdExheWVyT2JqZWN0ID0gbmV3IEZlYXR1cmVMYXllclByb3BlcnRpZXMoXHJcbiAgICAgICAgICAgIGZlYXR1cmUsIGx5ciwgdGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoLCB0aGlzLl9zZWxlY3Rpb25MYXllckxvb2t1cFtseXIuaWRdLCBlc3JpTmFtZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgZmVhdExheWVyT2JqZWN0LnBvcHVwQ29udGVudCA9IHBvcHVwQ29udGVudDtcclxuXHJcbiAgICAgICAgdGhpcy5fcGFzc1Rocm91Z2hMYXllckZlYXR1cmVBcnJheS5wdXNoKGZlYXRMYXllck9iamVjdCk7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoKys7XHJcblxyXG4gICAgICAgICQoJy5wb3B1cC1jb250ZW50LWxlbmd0aCcpLmh0bWwodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoLnRvRml4ZWQoKSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fcG9wdXBPcGVuKSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuZmluZCgnLm5leHQtcG9wdXAnKS50cmlnZ2VyKCdjbGljaycpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5LnNldFBvc2l0aW9uKHRoaXMuX3BvcHVwQ29vcmRpbmF0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuc2Nyb2xsVG9wKDApO1xyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cE9wZW4gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gIHBpeGVsIC0gdGhlIG9sIHBpeGVsXHJcbiAgICAgKiBAcmV0dXJucyAgZmVhdHVyZSBsYXllciBwcm9wZXJ0aWVzXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBfZmVhdHVyZXNBdFBpeGVsKHBpeGVsOiBvbC5QaXhlbCk6IEFycmF5PEZlYXR1cmVMYXllclByb3BlcnRpZXM+IHtcclxuICAgICAgICBsZXQgbGF5ZXJGZWF0dXJlT2JqZWN0QXJyYXkgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5tYXAuZm9yRWFjaEZlYXR1cmVBdFBpeGVsKHBpeGVsLCAoZmVhdHVyZTogb2wuRmVhdHVyZSwgbGF5ZXI6IG9sLmxheWVyLlZlY3RvcikgPT4ge1xyXG4gICAgICAgICAgICBsZXQgbHlySW5kZXggPSB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzLmluZGV4T2YobGF5ZXIpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGx5ckluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIGxheWVyRmVhdHVyZU9iamVjdEFycmF5LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAgbmV3IEZlYXR1cmVMYXllclByb3BlcnRpZXMoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZlYXR1cmUsIHRoaXMuX2FyclBvcHVwTGF5ZXJzW2x5ckluZGV4XSwgbHlySW5kZXgsIHRoaXMuX3NlbGVjdGlvbkxheWVyc1tseXJJbmRleF0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gbGF5ZXJGZWF0dXJlT2JqZWN0QXJyYXk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VQb3B1cCgpIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICB0aGlzLl9wb3B1cE9wZW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9wb3B1cE92ZXJsYXkuc2V0UG9zaXRpb24odW5kZWZpbmVkKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDbG9zZXJbMF0uYmx1cigpO1xyXG4gICAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24oKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250ZW50Lmh0bWwoJycpO1xyXG5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY2hnRnVuY3Rpb24gLSBwb3B1cCBjaGFuZ2UgZnVuY3Rpb25cclxuICAgICAqL1xyXG4gICAgYWRkUG9wdXBDaGFuZ2VkRnVuY3Rpb24oY2hnRnVuY3Rpb246IHBvcHVwQ2hhbmdlZEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDaGFuZ2VkRnVuY3Rpb25zLnB1c2goY2hnRnVuY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJCYXNlfCp9IGx5ciAtIHRoZSBsYXllciBiZWluZyBhY3RlZCBvblxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtzZWxlY3Rpb25TdHlsZT17fV0gdGhlIHNlbGVjdGlvbiBzdHlsZSBjb25maWd1cmF0aW9uXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3NlbGVjdGlvblN0eWxlLmNvbG9yPXJnYmEoMjU1LDE3MCwwLDAuNSldIHRoZSBzZWxlY3Rpb24gY29sb3JcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc2VsZWN0aW9uU3R5bGUud2lkdGg9MTBdIHRoZSBzZWxlY3Rpb24gd2lkdGggZm9yIGxpbmVhciBmZWF0dXJlc1xyXG4gICAgICogQHBhcmFtIHtvYmplY3R8ZnVuY3Rpb259IFtzZWxlY3Rpb25TdHlsZS5vbFN0eWxlPXVuZGVmaW5lZF0gYW4gb3BlbmxheWVycyBzdHlsZSBvYmplY3Qgb3IgZnVuY3Rpb25cclxuICAgICAqIEByZXR1cm5zICB0aGUgbmV3IHNlbGVjdGlvbiBsYXllclxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgX2FkZFBvcHVwTGF5ZXIobHlyOiBMYXllckJhc2VWZWN0b3IsIHNlbGVjdGlvblN0eWxlOiB7Y29sb3I/OiBzdHJpbmcsIHdpZHRoPzogbnVtYmVyLCBvbFN0eWxlPzogb2wuc3R5bGUuU3R5bGV9KTogb2wubGF5ZXIuVmVjdG9yIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuXHJcbiAgICAgICAgc2VsZWN0aW9uU3R5bGUgPSBzZWxlY3Rpb25TdHlsZSB8fCB7fTtcclxuICAgICAgICBzZWxlY3Rpb25TdHlsZS5jb2xvciA9IHNlbGVjdGlvblN0eWxlLmNvbG9yIHx8ICdyZ2JhKDI1NSwxNzAsMCwwLjUpJztcclxuICAgICAgICBzZWxlY3Rpb25TdHlsZS53aWR0aCA9IHNlbGVjdGlvblN0eWxlLndpZHRoIHx8IDEwO1xyXG5cclxuICAgICAgICBsZXQgdGhlU3R5bGU7XHJcblxyXG4gICAgICAgIGlmIChzZWxlY3Rpb25TdHlsZS5vbFN0eWxlKSB7XHJcbiAgICAgICAgICAgIHRoZVN0eWxlID0gc2VsZWN0aW9uU3R5bGUub2xTdHlsZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGVTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICBzdHJva2U6IG5ldyBvbC5zdHlsZS5TdHJva2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzZWxlY3Rpb25TdHlsZS5jb2xvcixcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogc2VsZWN0aW9uU3R5bGUud2lkdGhcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5DaXJjbGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHJhZGl1czogNyxcclxuICAgICAgICAgICAgICAgICAgICBmaWxsOiBuZXcgb2wuc3R5bGUuRmlsbCh7Y29sb3I6IHNlbGVjdGlvblN0eWxlLmNvbG9yfSksXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiBuZXcgb2wuc3R5bGUuU3Ryb2tlKHtjb2xvcjogc2VsZWN0aW9uU3R5bGUuY29sb3IsIHdpZHRoOiAxfSlcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgZmlsbDogbmV3IG9sLnN0eWxlLkZpbGwoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzZWxlY3Rpb25TdHlsZS5jb2xvclxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgc2VsZWN0aW9uTGF5ZXIgPSBuZXcgb2wubGF5ZXIuVmVjdG9yKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IG5ldyBvbC5zb3VyY2UuVmVjdG9yKCksXHJcbiAgICAgICAgICAgICAgICBzdHlsZTogdGhlU3R5bGVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHNlbGVjdGlvbkxheWVyLnNldFpJbmRleCgxMDApO1xyXG5cclxuICAgICAgICB0aGlzLl9zZWxlY3Rpb25MYXllcnMucHVzaChzZWxlY3Rpb25MYXllcik7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uTGF5ZXJMb29rdXBbbHlyLmlkXSA9IHNlbGVjdGlvbkxheWVyO1xyXG4gICAgICAgIHRoaXMubWFwLmFkZExheWVyKHNlbGVjdGlvbkxheWVyKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHNlbGVjdGlvbkxheWVyO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBwb3B1cCB0byB0aGUgbWFwXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyQmFzZXwqfSBseXIgVGhlIGxheWVyIHRoYXQgdGhlIHBvcHVwIHdpdGggYWN0IG9uXHJcbiAgICAgKiBAcGFyYW0ge3BvcHVwQ2FsbGJhY2t9IHBvcHVwQ29udGVudEZ1bmN0aW9uIC0gcG9wdXAgY29udGVudCBmdW5jdGlvbiB0aGF0IG1ha2VzIHBvcHVwIGluZm9cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbc2VsZWN0aW9uU3R5bGU9e31dIHRoZSBzZWxlY3Rpb24gc3R5bGUgY29uZmlndXJhdGlvblxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzZWxlY3Rpb25TdHlsZS5jb2xvcj1yZ2JhKDI1NSwxNzAsMCwwLjUpXSB0aGUgc2VsZWN0aW9uIGNvbG9yXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3NlbGVjdGlvblN0eWxlLndpZHRoPTEwXSB0aGUgc2VsZWN0aW9uIHdpZHRoIGZvciBsaW5lYXIgZmVhdHVyZXNcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fGZ1bmN0aW9ufSBbc2VsZWN0aW9uU3R5bGUub2xTdHlsZT11bmRlZmluZWRdIGFuIG9wZW5sYXllcnMgc3R5bGUgb2JqZWN0IG9yIGZ1bmN0aW9uXHJcbiAgICAgKiBAcmV0dXJucyB7b2JqZWN0fSBhIHJlZmVyZW5jZSB0byB0aGUgb2wgc2VsZWN0aW9uIGxheWVyXHJcbiAgICAgKi9cclxuICAgIGFkZFZlY3RvclBvcHVwKGx5cjogTGF5ZXJCYXNlVmVjdG9yLCBwb3B1cENvbnRlbnRGdW5jdGlvbjogcG9wdXBDYWxsYmFjayxcclxuICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblN0eWxlPzoge2NvbG9yPzogc3RyaW5nLCB3aWR0aD86IG51bWJlciwgb2xTdHlsZT86IG9sLnN0eWxlLlN0eWxlfSkge1xyXG4gICAgICAgIGxldCBzZWxlY3Rpb25MYXllciA9IHRoaXMuX2FkZFBvcHVwTGF5ZXIobHlyLCBzZWxlY3Rpb25TdHlsZSk7XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcklkcy5wdXNoKGx5ci5pZCk7XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzLnB1c2gobHlyLm5hbWUpO1xyXG4gICAgICAgIHRoaXMuX2FyclBvcHVwTGF5ZXJzLnB1c2gobHlyKTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzLnB1c2gobHlyLm9sTGF5ZXIpO1xyXG4gICAgICAgIHRoaXMuX2FyclBvcHVwQ29udGVudEZ1bmN0aW9uLnB1c2gocG9wdXBDb250ZW50RnVuY3Rpb24pO1xyXG5cclxuICAgICAgICByZXR1cm4gc2VsZWN0aW9uTGF5ZXI7XHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyQmFzZX0gbHlyIC0gbGF5ZXJcclxuICAgICAqL1xyXG4gICAgcmVtb3ZlVmVjdG9yUG9wdXAobHlyKSB7XHJcbiAgICAgICAgbGV0IGlkeCA9IHRoaXMuX2FyclBvcHVwTGF5ZXJJZHMuaW5kZXhPZihseXIuaWQpO1xyXG5cclxuICAgICAgICBpZiAoaWR4ID4gLTEpIHtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcklkcy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzLnNwbGljZShpZHgsIDEpO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJQb3B1cExheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBPbExheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb24uc3BsaWNlKGlkeCwgMSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NlbGVjdGlvbkxheWVyTG9va3VwW2x5ci5pZF07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJFc3JpTWFwU2VydmVyfSBseXIgLSBtYXAgc2VydmVyIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW3NlbGVjdGlvblN0eWxlPXt9XSB0aGUgc2VsZWN0aW9uIHN0eWxlIGNvbmZpZ3VyYXRpb25cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc2VsZWN0aW9uU3R5bGUuY29sb3I9cmdiYSgyNTUsMTcwLDAsMC41KV0gdGhlIHNlbGVjdGlvbiBjb2xvclxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzZWxlY3Rpb25TdHlsZS53aWR0aD0xMF0gdGhlIHNlbGVjdGlvbiB3aWR0aCBmb3IgbGluZWFyIGZlYXR1cmVzXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdHxmdW5jdGlvbn0gW3NlbGVjdGlvblN0eWxlLm9sU3R5bGU9dW5kZWZpbmVkXSBhbiBvcGVubGF5ZXJzIHN0eWxlIG9iamVjdCBvciBmdW5jdGlvblxyXG4gICAgICogQHJldHVybnMge29iamVjdH0gYSByZWZlcmVuY2UgdG8gdGhlIG9sIHNlbGVjdGlvbiBsYXllclxyXG4gICAgICovXHJcbiAgICBhZGRNYXBTZXJ2aWNlUG9wdXAobHlyLCBzZWxlY3Rpb25TdHlsZT86IG9sLnN0eWxlLlN0eWxlfEFycmF5PG9sLnN0eWxlLlN0eWxlPnxvbC5TdHlsZUZ1bmN0aW9uKSB7XHJcbiAgICAgICAgbGV0IHNlbGVjdGlvbkxheWVyID0gdGhpcy5fYWRkUG9wdXBMYXllcihseXIsIHNlbGVjdGlvblN0eWxlKTtcclxuICAgICAgICB0aGlzLl9lc3JpTWFwU2VydmljZUxheWVycy5wdXNoKGx5cik7XHJcblxyXG4gICAgICAgIHJldHVybiBzZWxlY3Rpb25MYXllcjtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhclNlbGVjdGlvbigpIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3NlbGVjdGlvbkxheWVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25MYXllcnNbaV0uZ2V0U291cmNlKCkuY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgZiBvZiB0aGlzLl9tYXBDbGlja0Z1bmN0aW9ucykge1xyXG4gICAgICAgICAgICBmKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBtYXAgaXMgY2xpY2tlZCBidXQgYmVmb3JlIGFueSBwb3B1cHMgYXJlIGltcGxlbWVudGVkXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIC0gdGhlIG1hcCBjbGljayBmdW5jdGlvblxyXG4gICAgICovXHJcbiAgICBhZGRNYXBDbGlja0Z1bmN0aW9uKGZ1bmM6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fbWFwQ2xpY2tGdW5jdGlvbnMucHVzaChmdW5jKTtcclxuICAgIH1cclxufVxyXG5ubS5NYXBQb3B1cENscyA9IE1hcFBvcHVwQ2xzO1xyXG5leHBvcnQgZGVmYXVsdCBNYXBQb3B1cENscztcclxuIl19 /***/ }), /* 13 */ @@ -1681,7 +1681,7 @@ function quickMapBase(options) { exports.quickMapBase = quickMapBase; nm.quickMapBase = quickMapBase; exports.default = quickMapBase; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2tNYXBCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicXVpY2tNYXBCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFFSCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBQ2pDLDBCQUE2QjtBQUM3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBWWhDOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILHNCQUE2QixPQUF5QjtJQUNsRCxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQXFCLENBQUM7SUFDM0MsT0FBTyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztJQUN2QyxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBQyxDQUFDO0lBQzlELE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxPQUFPLENBQUMsSUFBSSxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNsRSxPQUFPLENBQUMsWUFBWSxHQUFHLE9BQU8sT0FBTyxDQUFDLFlBQVksSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDOUYsT0FBTyxDQUFDLFVBQVUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxVQUFVLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBR3pGLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXBDLElBQUksUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVB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RUgsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDckIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUM7QUFDZixDQUFDO0FBNUVELG9DQTRFQztBQUVELEVBQUUsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0FBQy9CLGtCQUFlLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzE1LzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnb2xIZWxwZXJzJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIHF1aWNrTWFwT3B0aW9ucyB7XHJcbiAgICBkaXZJZD86IHN0cmluZztcclxuICAgIGNlbnRlcj86IHt4OiBudW1iZXIsIHk6IG51bWJlcn07XHJcbiAgICB6b29tPzogbnVtYmVyO1xyXG4gICAgbWluWm9vbT86IG51bWJlcjtcclxuICAgIG1heFpvb20/OiBudW1iZXI7XHJcbiAgICBiYXNlU3dpdGNoZXI/OiBib29sZWFuO1xyXG4gICAgZnVsbFNjcmVlbj86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXRzIHVwIGEgbWFwIHdpdGggc29tZSBkZWZhdWx0IHBhcmFtZXRlcnMgYW5kIGluaXRpYWxpemVzXHJcbiAqIG1hcE1vdmUgYW5kIG1hcFBvcHVwXHJcbiAqXHJcbiAqIEBwYXJhbSBbb3B0aW9ucz17fV0gY29uZmlnIG9wdGlvbnNcclxuICogQHBhcmFtIFtvcHRpb25zLmRpdklkPW1hcF0gbWFwIGRpdiBpZFxyXG4gKiBAcGFyYW0gW29wdGlvbnMuY2VudGVyPXt9XSBjZW50ZXIgY29uZmlnIG9iamVjdFxyXG4gKiBAcGFyYW0gW29wdGlvbnMuY2VudGVyLng9LTEwMDE4Mzc4XSBjZW50ZXIgeCwgd2ViIG1lcmNhdG9yIHggb3IgbG9uXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5jZW50ZXIueT01NTc0OTEwXSBjZW50ZXIgeSwgd2ViIG1lcmNhdG9yIHkgb3IgbGF0XHJcbiAqIEBwYXJhbSBbb3B0aW9ucy56b29tPTddIHpvb20gbGV2ZWxcclxuICogQHBhcmFtIFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSBtaW4gem9vbVxyXG4gKiBAcGFyYW0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIG1heCB6b29tXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5iYXNlU3dpdGNoZXI9dHJ1ZV0gaWYgYWRkIGJhc2UgbWFwIHN3aXRjaGVyXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5mdWxsU2NyZWVuPWZhbHNlXSBpZiBhZGQgYmFzZSBtYXAgc3dpdGNoZXJcclxuICogQHJldHVybnMgdGhlIG9sIG1hcFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHF1aWNrTWFwQmFzZShvcHRpb25zPzogcXVpY2tNYXBPcHRpb25zKTogb2wuTWFwIHtcclxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9IGFzIHF1aWNrTWFwT3B0aW9ucztcclxuICAgIG9wdGlvbnMuZGl2SWQgPSBvcHRpb25zLmRpdklkIHx8ICdtYXAnO1xyXG4gICAgb3B0aW9ucy5jZW50ZXIgPSBvcHRpb25zLmNlbnRlciB8fCB7eDogLTEwMDE4Mzc4LCB5OiA1NTc0OTEwfTtcclxuICAgIG9wdGlvbnMuem9vbSA9IHR5cGVvZiBvcHRpb25zLnpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLnpvb20gOiA3O1xyXG4gICAgb3B0aW9ucy5iYXNlU3dpdGNoZXIgPSB0eXBlb2Ygb3B0aW9ucy5iYXNlU3dpdGNoZXIgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5iYXNlU3dpdGNoZXIgOiB0cnVlO1xyXG4gICAgb3B0aW9ucy5mdWxsU2NyZWVuID0gdHlwZW9mIG9wdGlvbnMuZnVsbFNjcmVlbiA9PSAnYm9vbGVhbicgPyBvcHRpb25zLmZ1bGxTY3JlZW4gOiBmYWxzZTtcclxuXHJcblxyXG4gICAgbGV0ICRtYXBEaXYgPSAkKCcjJyArIG9wdGlvbnMuZGl2SWQpO1xyXG4gICAgJG1hcERpdi5jc3MoJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XHJcblxyXG4gICAgbGV0IG9zbUxheWVyID0gbmV3IG9sLmxheWVyLlRpbGUoe3NvdXJjZTogbmV3IG9sLnNvdXJjZS5PU00oKX0pO1xyXG4gICAgLy8gbGV0IHNhdExheWVyID0gbmV3IG9sLmxheWVyLlRpbGUoe3Zpc2libGU6IGZhbHNlLCBzb3VyY2U6IG5ldyBvbC5zb3VyY2UuTWFwUXVlc3Qoe2xheWVyOiAnc2F0J30pfSk7XHJcblxyXG4gICAgbGV0IG9zbUNzcyA9IFwidXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURBQUFBQXdDQU1BQUFCZzNBbTFBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFNQVVFeFVSUUFBQURRMU5EazVPVVJGUkV0TFMxRkhTRmxaV0dKUlZHSmlZV2RtWld4c2JIUm1hWEJwYW5OMGMzVjBkSHA1ZVg1K2ZJVnpkNEYzZWVWMGp1ZDVqdVo4azRhSGhvbUhob3lHaDVlR2o1T1ZsSmlWbFppWWw1cVptSnlkbktPVGxhS1ptcUtkbmFPaW9hcXFxS3V6c2JPdnJyU3lzTGEzdGJXNHVMbTZ1YjI3dWIrL3ZiR1h3YkNad2JDZ3hMS2x4ck9xeUxTdHliTzN5clN4eXJXenpiVzJ5N2ExemJLNHk3VzZ6Ylc4eTc2MHlyVEF6YlRGenJQS3pyTE96clRKenJUT3pyN0N3YlhDMExYSzBMVE8wTDNJMGJQUXo3VFF6N1BTMGJYUTBMblIwYnJXMWJ6VDByN1UwNzdWMUx6YzJkcU5xdGVVc2R5WHNjYXF1dU9IbmVhR211ZUhuT2VKbnVpQmxlaUtuK2VOb09pT29PV1VwT2lSbytpU3BlaVVwZXFZcHVtYXFPbWRyUFN5bmVtZ3J1U3F0T21pc09tbHN1dXF0ZXF1dU9XMXZPdXh1K3V4dk9xMXZlK3h2UEswcHZXM28vVzVwZk81cXZTN3FmQ3d2TU91d2MyL3dOZW54Tnl5ek5lLzBOcTMxTnE1MWR5NzJPeTN3T3U0d091K3hleTR3Tys2eE8yK3hmVEFyL1RDc3ZmRnRQSEx2dlRKdU1QRHdNZkh4Y1hLeWMzRHhNdkZ5TXZMeU0zUHpjRFYwOERWMU1UWDFjYlkxczdYMXNqWjFzcmEyTW5kM003YjJjN2MydGZIMXRuQjF0N0YyZDdNMjlmWDF0TFkxdERkMnRIZTNOVGYzTm5TMTlyWjF0dmEyTm5mM3QzZDI4cmgzdFhnM05uaDN0emozOTNrMzluaTRON2s0TjduNXVYRHlPZkx6K3pBeHUzQ3lPekV5ZXpLemVESjNlTE0zdXZQMHUzUDBlUGYyKzdSMHU3UTF1L1UwKzdVMWV6YzArN2EyZS9kMiszZjN2YkZ6dkxPd2ZITjBQUFF3L1RVeC9MV3l2TFl6UERRMWZQZTB1YmM0dnZlNHVIaDMrbmgzKy9oMnUvaDN2SGoydkhsM3VIbTRlVG40dURwNWVibzQrWG81T0RxNmVicTZPVHY2K25sNCsvajRPN2w0ZTduNXVqcDQrbnA1T3pxNWU3czV1cnQ2Tzd0Nk9ydzZ1N3g2dTN4N3ZQajVQRGw0ZkRvNHZEcTVmRHQ1dkR1NlBEdjdQVHY2ZkR4NnZIeDdmSDE3Zlh3NmZYeTdmYjA3L2J6OGZUMTh2bjM4dnIzOWZyNDgvcjU5UHI2K1AzKysvLysvZ0FBQUxOVFNrMEFBQUVBZEZKT1UvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vd0JUOXdjbEFBQUFDWEJJV1hNQUFBN0RBQUFPd3dISGI2aGtBQUFBR0hSRldIUlRiMlowZDJGeVpRQndZV2x1ZEM1dVpYUWdOQzR3TGpsc00zNU9BQUFGTkVsRVFWUklTMVZWQ1p4VlV4aS85bDBVSVVUMmJNblk0M2JWSTJjMFkwMWtTV0lhUzBqMkpFdGtONDFwaW9tWnJQUEtRMmFRN0pLSW1PWmxubTI0OTNUSnpEdWZ1VTFaaSt2L2ZlZSttWi8vNzkzdm5QT2Q3enZmZXM1ekRCRVprQkJqQWNJamIrSWlvdHFnZGhhdDhBTUswdmw3L1I5TjdHaVd0c2hxSXIrRVo1Z1lLaWJ5VXNYWTFsL21mRnBzc3ZVbFdRMEZrVTNneTQrUkIvK2t3WWNPOHBSU25sZGNPVS9yMmxBSEFSU3drMk9SZ0VtT2RDMUVzdVJpWVNxTVB3d3JvTUlyYVprNVYyZllKUWpDS2ZaclJtaDNnU0FaaTJpNGI3d1N5bFd1OEVxWndTNTlKa0ZVYVc5NkpiTlNjK0NFVW10NHJvcnd1Wm1XZERhb2MrdVpFVHVRbFRDVTV4WXpSN211VW5WVVZvK0JjUmhyZS9Wd1VwYXNnSndoSDdKa1lJWUEwc054aG1Dd1VLK2x3NnZDS0JaZWh3MDFkRWl5dzRRNGFFMFo0YWhEaEthRlFzR25KMkJncUtvVEJzTmpGeTBTbFc2d2hSQVpUZG04REJKbWtCWmhEaTFqNHhKUUJrNnl3cldVVHltYUN4YWM4bFJPY2RhdVJHelFTTnRBN0VIVVloWHlFd2hoZ2pGVXFSdU8rcmF1aEYxYXdGcHpDc213VWJqSUZCUjB1MWJLdHlHcHVsVy9IL2NWVnpreUdhSVdUSVI5cEZBVjZHSzJnUE1YTVg4Z1BrOXp6eFhnSTFraW1jQWx0RVlyK2NqaW8xaW1sS3BFYTlyT2lwTG0rcCtDWjZCdy8vcWQxL2YvTytHd014YlNMcHlvWkVjd2t5aDJqSWtzKzNobWRkMmpXVXc0c2N4Tnlzbkh4VTduU3NwVFJjSmpDWkdMM0lzanNZSk1NZzVtd2d4N2dhSU9MQkZDb2dBZ0JCb05hOXcrREU2SStCczdGVGd3d3JKYkhqV0RncFlvMkt3dEJUY1lFRHVsb0M5Z2VRdytrMlJHblBHcFRhT2xxN0FTK1lJQ1V6NERaVmFYMlRpTkRodVlmVHRZNGdlTGkwSW9DbTNYY2N3TTloeDRrVTI4U3RRRWxqRHMzWkVwRkdBKzhkS3pMbVY5eW1Jd0Y1Rk9HbjJHZEpNOEtMSERKYlh5aVlWTUc5TVJUTGlYR0dnMlFLYXhNM2toUFNScndNOXpFSWFyZHhVMncvRWlBMGdPZVlLSHpEUjBWNy9RR1YzbEtJQTlrdHJEQXJ4TzNnZEErazZTS29CaVZ3Y203TmpaYjkrSG56dGcyODJUdUhWWjlMT0lTRk50OU1neUNldFpWY3pTeG55RGJsMTdQZW5xNm1xcGcxSWhSYUVPMmFWTFVPNC9yMTdIOHRUdjZmMTNoNzFkZHV2WkkzWSt1TWRXa3NOU2F1TG92Snc1aHNxaVBJVXZ0MGt1Ny9pQmVVUjNza3Ntb21ZV3RSYkFqYmlMZnYybFg5L1Y3TFZHNHVZblVaWGhRN2YyT1BDWkV4OXdyWVdUY2VQRVFxUEVNTDhwbDRtTWRyL2psWGx2SGlSaUoyK01TVEZZNFRUU1lTdHV2ejJSL0pYaCtQUGVHWG0wNTVKKzMvWURXdU51M1IzREFyUHV0eWcwWmd5a01WRFU5TmRtMjIrd1lhbHIycnNlNDhDbnNUSUZjTW43M3ZmaE5ya3R4MUVVY1puUHY2YWgzWXk1Y0RUUmRCRW9Hb0JlYWg3MWRxRnlqWkRKTGtXazNOM3Y0dXVrdHNzaldwemNpTVB4UWVIajhuTUt6Y0d1QjB0QXl6RmhkQ0tPWVd2NEh3T1FWd0l4TEc5OWE2dXZIM3NKQ3lPM2grazRFWitHNyt4ajVmNFhYa3NvYUdyZE1SelNjOEFSQTgrY2RPdWsyeDZmZmZOTnQ1eCtSbzFvbVBsclQvQ1FEbGNObHB4NE5CSVdYaGt4N1kzWnAzb2ZOUjdVdjg5T20vYmVXMFRMSXluSHYzdnMxVnNPRnBTV1NYdmZ1UFVmOUJyUkZ5eGdYZEhvS0puUUZlZ1BPb3Z2eno1OW50cnp5ZTI0MGlnOFVRM2xESTJWcXdhZ3JLSVFjTFhORkwzd2dsTjJPSGRCUTYvdkkza0VORFZCd1JiM2sxWHRjekZialduNEV6TVlpN0NGMzEyOStKVFl1UlNkckd1UzkyZzVkcHFuNnFYb0pRczV4bUw4cCtXdDRoTGJ0MG14Mk9MTlpSMmJiUHk4ekpOUUdGTS9mL0NmWFpla1JZRmpHQ1dqSUpwTStXaUN6R0JQV0hob3lhQXNqUlQvQjJHeTV5ellKa3dVQUFBQUFFbEZUa1N1UW1DQycpXCI7XHJcbiAgICBsZXQgYWVyaWFsQ3NzID0gXCJ1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBREFBQUFBd0NBTUFBQUJnM0FtMUFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQU1BVUV4VVJRQUxCZ0lNRFFnT0J3UU9FUWNUQndVU0N3b1ZEQXdkQnc4WkRnVVJFd1lVR0FZWkZRWVpHZ2tURlFvVkdRc1pGQXdaSEJNZURoSWJGQkViSEF3V0lBNGJJUkVjSVE0aENRd2pGdzRsSEJna0RCOHNEeFVpRXhJaUdoQW9HeG9oRlJzaEdSb3JIUWNyS1FzaUlRd21LZ29vSkEwcEtRODFKdzh5TFJNaUl4SW1LeFVySlJFdUtoc2xKQjBySWhvb0tSVXVNQk15TGhrd0pob3pLaDQ4THhVek1STTlNQnd6TWlVdkZDTXRHaU13RWl3ekZDZ3pIREkrR1NJc0lTa3ZKU1F4SWlNMkxpWTVKaWMrTHlrMEpTbzBLeTQ5SlNzOUtTVTFOU003TkNzMk5TOCtORE0xSnpVOUxqZzdJREpDSFMxRExTTkFNaXRDTVN4SU9qUkVJVFpMSURaSktEbEZJanBGS3p0S0pUMUxLekpCTXpwSE1EMUpNanBLUEQxUktqbFFOQzFEUWo1UVFFQThNRUpHSmtCS0pVSk5LMGxMTEVKTU1rVk1QRXBPTkVOU0xVZFpMMHBUTGtwYUxrUlVNa1JTUEVWWk1rdFVNMHBWT2tsWk1rbFpORXBjTlUxWk1rMVpOVXhmTWs1ZE5reGNPVkZVTTFSVU9GSmJOVkZaT1ZOWVBWRmRPVkpkUEZWYU9WVmFQVlZkT2xWZFBWcGFObHBkTzBwaE4wMWhPbEJpTjFOaFBGTm9QMXBpUFdGYlBtUmpQRU5PUUV0UFNVUlRRa0pWUzB4VlFrMVZTa3hiUWt4Y1MwaGVVVkZYUkZSY1FsSmZURnhlUWxwZVMwNWxRazFrU0ZSalFWUmpTbFpwUTF0a1FseGxTbHhwUkYxclNWVm5VVnRsVTFsbFhGOXRVMXhvWGx4d1NsOXJhbVJmUW1KbFEyRmhTV0ZsU1dGbFRtVmxTV1JtVEdGb1FXRnBSV0ZzUm1WcFJXVnRSbU5zU210bFJHcHFSbXBzUzJCbVdHUnNVbUZyVzJwdFVtWnlSMlJ4VEdweFRXVnlVMlJ5VzJkNVYydHpVbXQwV1cxNVZHMTVXWEZ1VEhOdFZuRnhUWEY0VDNoMFRuSnpVbkoxWEhKNFZYTjZXbnAwVkh4MVczMTVWWHA4WEdSMFlHeDBZSFZ6WlhKMGFIUjlaWFYrYUhsOVlIT0NYWHFCWFhlQ1lIeUNZM2lFYUh5SVluK0phWHFLY1lCNVdJTjZZNFNDWG9DRFpJR0VhWUNJWm9PTGE0aUNhSW1KYklPT2RZdU1jbzZPZUl1VmNwT0tiWktQYzVhUWI1ZVhlNXVmZzZLamhBQUFBQUFBQUFBQUFBQUFBT0dDZVFnQUFBRUFkRkpPVS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy93QlQ5d2NsQUFBQUNYQklXWE1BQUE3REFBQU93d0hIYjZoa0FBQUFHSFJGV0hSVGIyWjBkMkZ5WlFCd1lXbHVkQzV1WlhRZ05DNHdMamxzTTM1T0FBQUg4MGxFUVZSSVN5MVdiWFFVVnhtKzZ3cW5rM1ptcHhsMkZHMkVHZzkyQzhHRGxXcHRWVHdhK3VGM3hjS21EZkZ6Q1V6RHNKTnN1blhpcGdsSlhKYnJ0Sldtd1pOU25IRDNqb2pSZ1VJbTJVdW1JWjBKWjdKQnlyQUxiTVdXMElCVzhhUmE0K2NmNzZUZVgzTm0zdWMrei9zKzcvdnVnbDRyL2FNVHJUNGUxcFBUcW5ubUpObjVBeVV6Um5yUmxlL3FFMzNkc3ZyQnRBUVZveHRwWk5LM3pTellqVWp2aVdPMkFnK1I3N2RsN1czNm4vMUVwOUtCUEcvUytQeTBQa2pVL2dQS1FHcXdUSHJ5aVdZRkFYU3ZNYWlyc2lvN1NqeU5zbkN6aDBxS0ltVjkvN21oZkhRWngyeU4xTys3clhVbTMzTVVQYWJvT2tBSkhhb0lkWGZKajJ4V2V5RDhqTUZFWGt2SXU1cXpwVTk4OGdXQjV6bCtHUytzRmU1NXRyRVZQZFdaQjJtaXE4YkJWa05GTzJSMHFucmZraVhoY0podEROWEU2dGJXOTcvczlPOS83WmZWaHg4Ni9Dd3JST3BmdnZ4Ym9NcWVMc3VxUHIxajQ0cUV3RE5NT0J4aW1VaVlvVThzdzdCQy9hN1Q3MnVFbnlKRGxHeFo5S2NnbFpSeXVxcXJ2L3RTWkVyZ09JNE5nUkJUSXc5RW1IQW9GR1pabnA2YUdhSjJHVHhmeFlzOGtLVlVRaDdXQjVoUWVDM0xzVXhveFZLVzE0bDNCWDJXY29VWVBpWnlMTGU4dGVaK2l1VDRHR2h2VjVLcEtXa3B5enhFcjJNWmdRMXhkUmpmUkJvSCsyazZsSUhqS1RIUFBCbzhDU0pJU3FxcTR3R0dPY1d5bElHbGd2Z05YMUdkOHZGNWYrSVVJd2IzMG5nK0dnMlFmQlJJTXZ5MGpHOFNWa1lvNE4wenZVWFZSenRiSi9MNnhMN2xVWkVYQkVIa3VacWxTNmdFQVVnS0p1cm5oRnRmcEFDT1lkOGIvaFZiSlBxd2k0NGE2S0Ewc1BWaklpL1NJeXhiM3U4S2xBSjBTOGpSVmdybFcrblZIUGRyaGlYQ3h1NDJkODZCeWtzRGM4MFAzTWtKRkJGUThIbzFsUWVncFdKUldGR3NEc1J3d3Y3cEl5dnVRVzBaa3JYNk5EVkZicWN2YVFJOHZieXF6dDVBQVJyc2JLeDV5aFFFR3Mrd1BPNTZiT0srMHJjd01yT0trcFViWldZeFYwNFVlWlp2L2NCS0ZoUkw2UWR2OXk0TGZFREE3L3RoZzd0VG12MWE1L0duTzB3bDBkUWc4MHdnbFphSFVteFJ2andBSE9meU4wbXhycHFMVXBjanNLM05IWU1vNFIxbzZlaG8yWnlJYjJGb2VPQzNJTEs4a1oySFFNT3VXeXdHWFVrSkJDZVRiWUZTMCt5bTFoMi82VWdtdm5ydktZWlp0SUVYR2Y3NUMyY0lBcDVMSE5kNzF4N3VQb1RqYWtyV0g5ZTNLRnBhYXRqVXZKVXlzRncwS3JMTVlNVzJsVGc0UGVVUXg2a0pFQUx2eFhFbUNkVnlQTEh0Q1NqQmhjMDFYQ2pJZ2FmeG91K1BFNktDMWRoeFNDd29CQ2MrTjRQM2J0TTg0cG1kU1NqSm5qTy9udlk0TFFmVnl6NS9JK3Y2SXdqVU9NankrTVZDeEliS3VwVEphRWt0cDdjVEtVNDJQdmpoMm0vOGNTcEM2YVBzYVgvTUhTdVVRTFZWc0lhNFJVVHMvci9CVkFleE5kamRuc05HN2ovclY5M3hoZUxNektuRnJQZVRFUWNoQ3lDY0tiMjVhQUluN2xyQWVydHJad3lOWE04TjZ6ZldyRm8zZDJTbU9FY0Y4M3gvcitPT0ZnckFIWVdGN2NFTGpoVjdVUW8vNldBSVVWbDlKRmw4YS8vSFo2NlZwYlkzSTlRS1pxUHJ1NzdsQStpT1dBSXIwaEt4SENtbXIwb3RoU3llSWw1eTNxdDR4VDhnU05yS0Vab3pzOEVsczY3cmdzTE9aK3lnendNZmJ0TmhvYmZnenBFeUduejdodFB0elVpNlB1T29qN0swV0YvTVhpVUZ4d0dhalJEMWhqWVhIWEk5cDQwNnFPeWlucDUvdGlXY0RIWTBqSXU0bjY0UWZxN2tsaUIyZ2VtYWc5UWJPaWEwUGJiRE1iZDQzU0h1dnhGeHJBb2N4aW5zN01YNUtxYmUxUWl4S0J4b1Y0Ly9QZkFnR0N1K1JsbTRTdlppenlESCswcmVESHA5MmlPMEJ1WDNiQ2ZJdGwwUEV3dllMcXB3WEcyTUhsR3NRNFM4cE1KWnYxSkdtSGlFb0hRRGRPandtVmxFUC9uRTlBREtqSTh4TEkwT09HSVRmeTBTYmVHL0MyaktVREdTbERoTTlJM0lwSzlpdXA2WG5iUk5DN3lxdWVOc0pDQ0lpWHpkUWhuYUdOKzQ2dW1uRWR5NVU1VWJVSjQ4TEZNOUdrSm84QmRET2lBWjdaSVFiS2hZTE1xdmhVMndtTnhqRUFzUzJBSTd5NG5XRjY0ZHVlUGJrN1lWM3p2QVZMRU1EOUF4SlJOYTNLRFVpYlY3RGpua3Vwck1FWWpTY0ZOY2FSMmNlUDJ1OVIvNWsxMDUyUnltZTVwaEFGUnN3bEhqQXVkaVA0ZE95N0NheExnZEpoOXZVbFUxNzAyLytMUGExVTlmdlBpOXFsQTRYRVVCSmMzZEZscHNSNDU3SURsMWlQcUxwN284MU5RZ3lWMTlpWVUzOHVUaXY5NzVQZDNTaXdRY3NHangrdjQvNmZsNVQ3RU9PTVRDdHBiS3hmZW1zUXEvM29sUVpjbWluQURBQUkwY3VHTEhhSE9GeGJ1R3ZSay9aOXU3Q1VMcW9WUjZORTB5eDFhdmozMG9SaGMvaldVb0lBTEd4a3owZGcxRGw5aWFJN0xxT09YS3NYSkZ3aml1RUFpNzBKcmEyblcxUEwwOHpMQmhac01BQnBXNWNzSTdUUGZldzlpcEZLY241azFpKzFLeUNXS2pDM1cvOGRGMWQ2NjYrUmFhYkJWVEZUSGFjam9vakJORGgwTkR4aytJUFRsd2ZxSmtXcGJucEZIWEliTGJtcHhFUTNmZi9aMGcvbWF1WHNvbG45d0RSankvTkhzUUZ3M1A2dld1VEo0My8rRlpyazJjdkFGUmlwQ0tkZkQ5eTIrcGpSajc4czBLZENVREtKdmRWOTFDaG5nVjM4VDIwVE0rZ2doanBKYVBscEZyMnhiRXo1ZzRBL05HdDVyTndkd21ZR2VlZU1YQlNMSEhVSWMrNlJzb2pSSDlWVFVtMy9tTGYvNjRiNDcwWHZveG9US2hsTUJRMmpNRXpvMlBqeGRHTXBwbW4xUk0yNGJXRkpxYVF2NEJjdUphMlNhbTdab2txMWxkQ3N6MDZOQ0JIcmh3cVZRWXBmRmo0Mk5aZXh6MUVXOVNSL2tUNThuRWVRS0piMmZQWGpqcDB1L1lVa3dIRWdMZU9uZjJuT3VmMVRSVE0wMkNMS0xUUHk2MC94MUNDenRxbjdFditCZHNDM20rMzBkZWNRdlcvd0JOVHdVK0NmVVFBUUFBQUFCSlJVNUVya0pnZ2c9PScpXCI7XHJcblxyXG4gICAgaWYgKG9wdGlvbnMuYmFzZVN3aXRjaGVyKSB7XHJcbiAgICAgICAgLy8gIGxldCBzd2l0Y2hlckNvbnRlbnQgPSAnPGRpdiBjbGFzcz1cImJhc2UtbWFwLXN3aXRjaGVyXCIgdGl0bGU9XCJUb2dnbGUgQmFzZSBMYXllclwiIHN0eWxlPVwiJztcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9ICdwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNzBweDsgbGVmdDogNHB4OyBib3JkZXI6IHNvbGlkIGJsYWNrIDFweDsgJztcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9IGBoZWlnaHQ6IDUwcHg7IHdpZHRoOiA1MHB4OyB6LWluZGV4OiAxMDsgYm9yZGVyLXJhZGl1czogNHB4OyBiYWNrZ3JvdW5kOiAke2FlcmlhbENzc307YDtcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9ICdcIj48L2Rpdj4nO1xyXG4gICAgICAgIC8vICAkbWFwRGl2LmFwcGVuZChzd2l0Y2hlckNvbnRlbnQpO1xyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gJG1hcERpdi5maW5kKCcuYmFzZS1tYXAtc3dpdGNoZXInKS5jbGljayhmdW5jdGlvbigpIHtcclxuICAgICAgICAvLyAgICAgIFwidXNlIHN0cmljdFwiO1xyXG4gICAgICAgIC8vICAgICAgb3NtTGF5ZXIuc2V0VmlzaWJsZSghb3NtTGF5ZXIuZ2V0VmlzaWJsZSgpKTtcclxuICAgICAgICAvLyAgICAgIHNhdExheWVyLnNldFZpc2libGUoIXNhdExheWVyLmdldFZpc2libGUoKSk7XHJcbiAgICAgICAgLy9cclxuICAgICAgICAvLyAgICAgIGlmIChvc21MYXllci5nZXRWaXNpYmxlKCkpe1xyXG4gICAgICAgIC8vICAgICAgICAgICQodGhpcykuY3NzKCdiYWNrZ3JvdW5kJywgYWVyaWFsQ3NzKTtcclxuICAgICAgICAvLyAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgJCh0aGlzKS5jc3MoJ2JhY2tncm91bmQnLCBvc21Dc3MpO1xyXG4gICAgICAgIC8vICAgICAgfVxyXG4gICAgICAgIC8vICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0aW9ucy56b29tIDwgMCB8fCBvcHRpb25zLnpvb20gPiAyOCkge1xyXG4gICAgICAgIHRocm93ICd6b29tIG91dCBvZiByYW5nZSc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9wdGlvbnMuY2VudGVyLnggPj0gLTE4MCAmJiBvcHRpb25zLmNlbnRlci54IDw9IDE4MCAmJiBvcHRpb25zLmNlbnRlci55ID49IC05MCAmJiBvcHRpb25zLmNlbnRlci55IDw9IDkwKSB7XHJcbiAgICAgICAgbGV0IHAgPSBuZXcgb2wuZ2VvbS5Qb2ludChbb3B0aW9ucy5jZW50ZXIueCwgb3B0aW9ucy5jZW50ZXIueV0pO1xyXG4gICAgICAgIG5ldyBvbC5wcm9qLlByb2plY3Rpb24oe2NvZGU6IFwiRVBTRzo0MzI2XCJ9KTtcclxuXHJcbiAgICAgICAgcC50cmFuc2Zvcm0obmV3IG9sLnByb2ouUHJvamVjdGlvbih7Y29kZTogXCJFUFNHOjQzMjZcIn0pLCBuZXcgb2wucHJvai5Qcm9qZWN0aW9uKHtjb2RlOiBcIkVQU0c6Mzg1N1wifSkpO1xyXG4gICAgICAgIGxldCBjb29yZGluYXRlcyA9IHAuZ2V0Q29vcmRpbmF0ZXMoKTtcclxuICAgICAgICBvcHRpb25zLmNlbnRlci54ID0gY29vcmRpbmF0ZXNbMF07XHJcbiAgICAgICAgb3B0aW9ucy5jZW50ZXIueSA9IGNvb3JkaW5hdGVzWzFdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xzID0gb2wuY29udHJvbC5kZWZhdWx0cyh7XHJcbiAgICAgICAgICAgIGF0dHJpYnV0aW9uT3B0aW9uczoge2NvbGxhcHNpYmxlOiBmYWxzZX1cclxuICAgICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IHZpZXcgPSBuZXcgb2wuVmlldyh7XHJcbiAgICAgICAgY2VudGVyOiBbb3B0aW9ucy5jZW50ZXIueCwgb3B0aW9ucy5jZW50ZXIueV0sXHJcbiAgICAgICAgem9vbTogb3B0aW9ucy56b29tLFxyXG4gICAgICAgIG1pblpvb206IG9wdGlvbnMubWluWm9vbSxcclxuICAgICAgICBtYXhab29tOiBvcHRpb25zLm1heFpvb21cclxuICAgIH0pO1xyXG5cclxuICAgIGxldCBtYXAgPSBuZXcgb2wuTWFwKHtcclxuICAgICAgICBsYXllcnM6IFtvc21MYXllcl0sXHJcbiAgICAgICAgdGFyZ2V0OiBvcHRpb25zLmRpdklkLFxyXG4gICAgICAgIGNvbnRyb2xzOiBjb250cm9scyxcclxuICAgICAgICB2aWV3OiB2aWV3XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAob3B0aW9ucy5mdWxsU2NyZWVuKSB7XHJcbiAgICAgICAgbWFwLmFkZENvbnRyb2wobmV3IG9sLmNvbnRyb2wuRnVsbFNjcmVlbih7fSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtYXA7XHJcbn1cclxuXHJcbm5tLnF1aWNrTWFwQmFzZSA9IHF1aWNrTWFwQmFzZTtcclxuZXhwb3J0IGRlZmF1bHQgcXVpY2tNYXBCYXNlO1xyXG4iXX0= /***/ }), /* 14 */ @@ -1763,7 +1763,7 @@ function resolutionToZoom(resolution) { } exports.resolutionToZoom = resolutionToZoom; nm.resolutionToZoom = resolutionToZoom; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbVJlc29sdXRpb25Db252ZXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiem9vbVJlc29sdXRpb25Db252ZXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFFSCwyQ0FBc0M7QUFDdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBRXRELElBQUksY0FBYyxHQUFHO0lBQ2pCLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLHFCQUFxQjtJQUNyQixxQkFBcUIsQ0FBQyxJQUFJO0NBQzdCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsMEJBQWlDLFNBQVM7SUFDdEMsWUFBWSxDQUFDO0lBRWIsRUFBRSxDQUFDLENBQUMsT0FBTyxTQUFTLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMvQixFQUFFLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLElBQUksQ0FBQyxJQUFJLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNELE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBZ0MsU0FBVyxDQUFDLENBQUM7WUFFekQsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNyQixDQUFDO0lBQ0wsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUNyQixDQUFDO0FBQ0wsQ0FBQztBQWRELDRDQWNDO0FBQ0QsRUFBRSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0FBR3ZDOzs7O0dBSUc7QUFDSCwwQkFBaUMsVUFBVTtJQUN2QyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUMsQ0FBQztRQUM1QyxFQUFFLENBQUMsQ0FBQyxVQUFVLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUEsQ0FBQztZQUNsQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2IsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ2IsQ0FBQztBQVJELDRDQVFDO0FBRUQsRUFBRSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTQvMjAxNS5cclxuICovXHJcblxyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycy56b29tUmVzb2x1dGlvbkNvbnZlcnQnKTtcclxuXHJcbmxldCBfem9vbVJlc0xvb2t1cCA9IFtcclxuICAgIDE1NjU0My4wMzM5MjgwNDA5NywgLy8wXHJcbiAgICA3ODI3MS41MTY5NjQwMjA0OCwgLy8xXHJcbiAgICAzOTEzNS43NTg0ODIwMTAyNCwgLy8yXHJcbiAgICAxOTU2Ny44NzkyNDEwMDUxMiwgLy8zXHJcbiAgICA5NzgzLjkzOTYyMDUwMjU2LCAvLzRcclxuICAgIDQ4OTEuOTY5ODEwMjUxMjgsIC8vNVxyXG4gICAgMjQ0NS45ODQ5MDUxMjU2NCwgLy82XHJcbiAgICAxMjIyLjk5MjQ1MjU2MjgyLCAvLzdcclxuICAgIDYxMS40OTYyMjYyODE0MSwgLy84XHJcbiAgICAzMDUuNzQ4MTEzMTQwNzA1LCAvLzlcclxuICAgIDE1Mi44NzQwNTY1NzAzNTI1LCAvLzEwXHJcbiAgICA3Ni40MzcwMjgyODUxNzYyNSwgLy8xMVxyXG4gICAgMzguMjE4NTE0MTQyNTg4MTMsIC8vMTJcclxuICAgIDE5LjEwOTI1NzA3MTI5NDA2MywgLy8xM1xyXG4gICAgOS41NTQ2Mjg1MzU2NDcwMzIsIC8vMTRcclxuICAgIDQuNzc3MzE0MjY3ODIzNTE2LCAvLzE1XHJcbiAgICAyLjM4ODY1NzEzMzkxMTc1OCwgLy8xNlxyXG4gICAgMS4xOTQzMjg1NjY5NTU4NzksIC8vMTdcclxuICAgIDAuNTk3MTY0MjgzNDc3OTM5NSwgLy8xOFxyXG4gICAgMC4yOTg1ODIxNDE3Mzg5Njk3NCwgLy8xOVxyXG4gICAgMC4xNDkyOTEwNzA4Njk0ODQ4NywgLy8yMFxyXG4gICAgMC4wNzQ2NDU1MzU0MzQ3NDI0NCwgLy8yMVxyXG4gICAgMC4wMzczMjI3Njc3MTczNzEyMiwgLy8yMlxyXG4gICAgMC4wMTg2NjEzODM4NTg2ODU2MSwgLy8yM1xyXG4gICAgMC4wMDkzMzA2OTE5MjkzNDI4MDQsIC8vMjRcclxuICAgIDAuMDA0NjY1MzQ1OTY0NjcxNDAyLCAvLzI1XHJcbiAgICAwLjAwMjMzMjY3Mjk4MjMzNTcwMSwgLy8yNlxyXG4gICAgMC4wMDExNjYzMzY0OTExNjc4NTA2LCAvLzI3XHJcbiAgICAwLjAwMDU4MzE2ODI0NTU4MzkyNTMgLy8yOFxyXG5dO1xyXG5cclxuLyoqXHJcbiAqIEdldCB0aGUgcmVzb2x1dGlvbiBnaXZlbiB0aGUgem9vbSBsZXZlbFxyXG4gKiBAcGFyYW0ge251bWJlcn0gem9vbUxldmVsIC0gdGhlIHpvb20gbGV2ZWxcclxuICogQHJldHVybnMge251bWJlcnwqfSB0aGUgbWFwIHJlc29sdXRpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB6b29tVG9SZXNvbHV0aW9uKHpvb21MZXZlbCkge1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB6b29tTGV2ZWwgPT0gJ251bWJlcicpIHtcclxuICAgICAgICBpZiAoem9vbUxldmVsICUgMSA9PT0gMCAmJiB6b29tTGV2ZWwgPj0gMCAmJiB6b29tTGV2ZWwgPD0gMjgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIF96b29tUmVzTG9va3VwW3pvb21MZXZlbF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYGludmFsaWQgem9vbSBsZXZlbCBwcm92aWRlZDogJHt6b29tTGV2ZWx9YCk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxufVxyXG5ubS56b29tVG9SZXNvbHV0aW9uID0gem9vbVRvUmVzb2x1dGlvbjtcclxuXHJcblxyXG4vKipcclxuICogR2V0IHJlc29sdXRpb24gZnJvbSB0aGUgem9vbSBsZXZlbFxyXG4gKiBAcGFyYW0ge251bWJlcn0gcmVzb2x1dGlvbiAtIHRoZSByZXNvbHV0aW9uXHJcbiAqIEByZXR1cm5zIHtudW1iZXJ8Kn0gdGhlIHpvb20gbGV2ZWxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZXNvbHV0aW9uVG9ab29tKHJlc29sdXRpb24pe1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBfem9vbVJlc0xvb2t1cC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgaWYgKHJlc29sdXRpb24gPj0gX3pvb21SZXNMb29rdXBbaV0gKXtcclxuICAgICAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAwO1xyXG59XHJcblxyXG5ubS5yZXNvbHV0aW9uVG9ab29tID0gcmVzb2x1dGlvblRvWm9vbTtcclxuIl19 /***/ }), /* 15 */ @@ -2142,7 +2142,7 @@ function makeMapServiceLegend(esriResponse) { } exports.makeMapServiceLegend = makeMapServiceLegend; nm.makeMapServiceLegend = makeMapServiceLegend; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNyaVRvT2xTdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVzcmlUb09sU3R5bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0dBRUc7QUFDSCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBQ2pDLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUU5Qzs7Ozs7R0FLRztBQUVIOzs7Ozs7R0FNRztBQUNILDJCQUEyQixVQUFVLEVBQUUsT0FBTztJQUMxQyxZQUFZLENBQUM7SUFFYixNQUFNLENBQUMsVUFBUSxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBSSxPQUFPLE1BQUcsQ0FBQztBQUNqRixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILG9CQUFvQixHQUFHO0lBQ25CLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1NBQ2IsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7U0FDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUM7U0FDdkIsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7U0FDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7U0FDckIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsRUFBRSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7QUE0QjNCO0lBTUk7Ozs7T0FJRztJQUNILHNCQUFZLFNBQXFCLEVBQUUsT0FBZTtRQUM5QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lB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Q29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxLzQvMjAxNi5cclxuICovXHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycy5lc3JpVG9PbFN0eWxlJyk7XHJcblxyXG4vKipcclxuICogVGhpcyBjYWxsYmFjayBpcyBkaXNwbGF5ZWQgYXMgcGFydCBvZiB0aGUgUmVxdWVzdGVyIGNsYXNzLlxyXG4gKiBAY2FsbGJhY2sgc3R5bGVGdW5jXHJcbiAqIEBwYXJhbSB7b2wuRmVhdHVyZX0gZmVhdCAtIG9wZW5sYXllcnMgZmVhdHVyZVxyXG4gKiBAcGFyYW0ge251bWJlcn0gcmVzb2x1dGlvbiAtIG1hcCByZXNvbHV0aW9uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSB7QXJyYXk8bnVtYmVyPn0gY29sb3JBcnJheSAtIGlucHV0IGNvbG9yIGFycmF5XHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBvcGFjaXR5IC0gdGhlIG9wYWNpdHkgMCB0byAxXHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHJnYmEgc3RyaW5nXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5mdW5jdGlvbiBfY29sb3JBcnJheVRvUmdiYShjb2xvckFycmF5LCBvcGFjaXR5KSB7XHJcbiAgICBcInVzZSBzdHJpY3RcIjtcclxuXHJcbiAgICByZXR1cm4gYHJnYmEoJHtjb2xvckFycmF5WzBdfSwke2NvbG9yQXJyYXlbMV19LCR7Y29sb3JBcnJheVsyXX0sJHtvcGFjaXR5fSlgO1xyXG59XHJcblxyXG4vKipcclxuICogZXNjYXBlIGh0bWwgY2hhcmN0ZXJzXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgLSBpbnB1dCBzdHJpbmdcclxuICogQHJldHVybnMge3N0cmluZ30gZXNjYXBlZCBzdHJpbmdcclxuICovXHJcbmZ1bmN0aW9uIGh0bWxFc2NhcGUoc3RyKSB7XHJcbiAgICByZXR1cm4gU3RyaW5nKHN0cilcclxuICAgICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxyXG4gICAgICAgIC5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7JylcclxuICAgICAgICAucmVwbGFjZSgvJy9nLCAnJiMzOTsnKVxyXG4gICAgICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JylcclxuICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpO1xyXG59XHJcblxyXG5ubS5odG1sRXNjYXBlID0gaHRtbEVzY2FwZTtcclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVzcmlSZXNwb25zZXtcclxuICAgIGRyYXdpbmdJbmZvOiB7XHJcbiAgICAgICAgcmVuZGVyZXI6IEVzcmlSZW5kZXJlclxyXG4gICAgfSxcclxuICAgIGdlb21ldHJ5VHlwZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXNyaVJlbmRlcmVye1xyXG4gICAgdHlwZTogc3RyaW5nO1xyXG4gICAgc3ltYm9sOiBFc3JpU3ltYm9sO1xyXG4gICAgdW5pcXVlVmFsdWVJbmZvczogQXJyYXk8e2xhYmVsOiBzdHJpbmcsIHZhbHVlOiBhbnksIHN5bWJvbDogRXNyaVN5bWJvbH0+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVzcmlTeW1ib2x7XHJcbiAgICBzaXplOiBudW1iZXI7XHJcbiAgICB0eXBlOiBzdHJpbmc7XHJcbiAgICBvdXRsaW5lOntcclxuICAgICAgICBjb2xvcjogc3RyaW5nO1xyXG4gICAgICAgIHdpZHRoOiBudW1iZXI7XHJcbiAgICB9LFxyXG4gICAgY29sb3I6IHN0cmluZztcclxuICAgIHdpZHRoOiBudW1iZXI7XHJcbn1cclxuXHJcblxyXG5jbGFzcyBDb21tb25TeW1ib2wge1xyXG4gICAgbGVnZW5kSHRtbDogc3RyaW5nO1xyXG4gICAgb3BhY2l0eTogbnVtYmVyO1xyXG4gICAgc3ltYm9sT2JqOiBFc3JpU3ltYm9sO1xyXG4gICAgb2xTdHlsZTogb2wuc3R5bGUuU3R5bGV8QXJyYXk8b2wuc3R5bGUuU3R5bGU+fG9sLlN0eWxlRnVuY3Rpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHN5bWJvbE9ialxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG9wYWNpdHlcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3Ioc3ltYm9sT2JqOiBFc3JpU3ltYm9sLCBvcGFjaXR5OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnN5bWJvbE9iaiA9IHN5bWJvbE9iajtcclxuICAgICAgICB0aGlzLm9wYWNpdHkgPSBvcGFjaXR5O1xyXG4gICAgICAgIHRoaXMub2xTdHlsZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgPSAnJztcclxuICAgIH1cclxufVxyXG5cclxuaW50ZXJmYWNlIElDb21tb25TeW1ib2x7XHJcbiAgICBuZXcgKHN5bWJvbE9iajogRXNyaVN5bWJvbCwgb3BhY2l0eTogbnVtYmVyKTogQ29tbW9uU3ltYm9sXHJcbn1cclxuXHJcblxyXG5jbGFzcyBQb2ludFN5bWJvbCBleHRlbmRzIENvbW1vblN5bWJvbCB7XHJcbiAgICBjb25zdHJ1Y3RvcihzeW1ib2xPYmo6IEVzcmlTeW1ib2wsIG9wYWNpdHk6IG51bWJlcikge1xyXG4gICAgICAgIHN1cGVyKHN5bWJvbE9iaiwgb3BhY2l0eSk7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnN5bWJvbE9iai50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2VzcmlTTVMnOlxyXG4gICAgICAgICAgICAgICAgbGV0IGlubmVyQ29sb3IgPSBfY29sb3JBcnJheVRvUmdiYSh0aGlzLnN5bWJvbE9iai5jb2xvciwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgICAgIGxldCBvdXRlckNvbG9yID0gX2NvbG9yQXJyYXlUb1JnYmEodGhpcy5zeW1ib2xPYmoub3V0bGluZS5jb2xvciwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgICAgIGxldCBvdXRsaW5lV2lkdGggPSB0aGlzLnN5bWJvbE9iai5vdXRsaW5lLndpZHRoO1xyXG4gICAgICAgICAgICAgICAgbGV0IHJhZGl1cyA9IHRoaXMuc3ltYm9sT2JqLnNpemU7XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMub2xTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5DaXJjbGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogbmV3IG9sLnN0eWxlLkZpbGwoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGlubmVyQ29sb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sLnN0eWxlLlN0cm9rZSh7Y29sb3I6IG91dGVyQ29sb3IsIHdpZHRoOiBvdXRsaW5lV2lkdGh9KVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgc3R5bGU9XCJjb2xvcjogJHtpbm5lckNvbG9yfVwiPiYjOTY3OTs8L3NwYW4+YDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdlc3JpUE1TJzpcclxuICAgICAgICAgICAgICAgIHRoaXMub2xTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5JY29uKHtzcmM6IGBkYXRhOmltYWdlL3BuZztiYXNlNjQsJHt0aGlzLnN5bWJvbE9ialsnaW1hZ2VEYXRhJ119YH0pXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IGA8aW1nIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBoZWlnaHQ9XCIxN1wiIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwke3RoaXMuc3ltYm9sT2JqWydpbWFnZURhdGEnXX1cIj5gO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnN5bWJvbE9iaik7XHJcbiAgICAgICAgICAgICAgICBhbGVydCgnUG9pbnQgc3ltYm9sIGRvZXMgbm90IGhhbmRsZSBzeW1ib2wgdHlwZTogJyArIHRoaXMuc3ltYm9sT2JqWyd0eXBlJ10pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgTGluZVN5bWJvbCBleHRlbmRzIENvbW1vblN5bWJvbCB7XHJcbiAgICBjb25zdHJ1Y3RvcihzeW1ib2xPYmo6IEVzcmlTeW1ib2wsIG9wYWNpdHk6IG51bWJlcikge1xyXG4gICAgICAgIHN1cGVyKHN5bWJvbE9iaiwgb3BhY2l0eSk7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnN5bWJvbE9iai50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2VzcmlTTFMnOlxyXG4gICAgICAgICAgICAgICAgbGV0IGlubmVyQ29sb3IgPSBfY29sb3JBcnJheVRvUmdiYSh0aGlzLnN5bWJvbE9iai5jb2xvciwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgICAgIGxldCBsaW5lV2lkdGggPSB0aGlzLnN5bWJvbE9iai53aWR0aDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9sU3R5bGUgPSBuZXcgb2wuc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sLnN0eWxlLlN0cm9rZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbm5lckNvbG9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2xpbmVEYXNoOiBbNF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBsaW5lV2lkdGhcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sID0gYDxzcGFuIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGBzdHlsZT1cImA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGJhY2tncm91bmQtY29sb3I6ICR7aW5uZXJDb2xvcn07YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgd2lkdGg6IDQwcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgaGVpZ2h0OiA0cHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgcG9zaXRpb246IHJlbGF0aXZlO2A7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGRpc3BsYXk6IGlubGluZS1ibG9jaztgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGB0b3A6IC0xcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgXCI+PC9zcGFuPmA7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc3ltYm9sT2JqKTtcclxuICAgICAgICAgICAgICAgIGFsZXJ0KCdMaW5lIHN5bWJvbCBkb2VzIG5vdCBoYW5kbGUgc3ltYm9sIHR5cGU6ICcgKyB0aGlzLnN5bWJvbE9ialsndHlwZSddKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFBvbHlnb25TeW1ib2wgZXh0ZW5kcyBDb21tb25TeW1ib2wge1xyXG4gICAgY29uc3RydWN0b3Ioc3ltYm9sT2JqOiBFc3JpU3ltYm9sLCBvcGFjaXR5OiBudW1iZXIpIHtcclxuICAgICAgICBzdXBlcihzeW1ib2xPYmosIG9wYWNpdHkpO1xyXG4gICAgICAgIHN3aXRjaCAodGhpcy5zeW1ib2xPYmpbJ3R5cGUnXSkge1xyXG4gICAgICAgICAgICBjYXNlICdlc3JpU0ZTJzpcclxuICAgICAgICAgICAgICAgIGxldCBpbm5lckNvbG9yID0gX2NvbG9yQXJyYXlUb1JnYmEodGhpcy5zeW1ib2xPYmouY29sb3IsIHRoaXMub3BhY2l0eSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgb3V0ZXJDb2xvciA9IF9jb2xvckFycmF5VG9SZ2JhKHRoaXMuc3ltYm9sT2JqLm91dGxpbmUuY29sb3IsIHRoaXMub3BhY2l0eSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgb3V0bGluZVdpZHRoID0gdGhpcy5zeW1ib2xPYmoub3V0bGluZS53aWR0aDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9sU3R5bGUgPSBuZXcgb2wuc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sLnN0eWxlLlN0cm9rZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBvdXRlckNvbG9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2xpbmVEYXNoOiBbNF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBvdXRsaW5lV2lkdGhcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICBmaWxsOiBuZXcgb2wuc3R5bGUuRmlsbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbm5lckNvbG9yXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgYDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgc3R5bGU9XCJgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGBiYWNrZ3JvdW5kLWNvbG9yOiAke2lubmVyQ29sb3J9O2A7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGJvcmRlcjogc29saWQgJHtvdXRlckNvbG9yfSAxcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgd2lkdGg6IDQwcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgaGVpZ2h0OiA5cHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgcG9zaXRpb246IHJlbGF0aXZlO2A7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGRpc3BsYXk6IGlubGluZS1ibG9jaztgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGB0b3A6IDJweDtgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGBcIj48L3NwYW4+YDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc3ltYm9sT2JqKTtcclxuICAgICAgICAgICAgICAgIGFsZXJ0KCdQb2x5Z29uIHN5bWJvbCBkb2VzIGhhbmRsZSBzeW1ib2wgdHlwZTogJyArIHRoaXMuc3ltYm9sT2JqWyd0eXBlJ10pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgU3ltYm9sR2VuZXJhdG9yIHtcclxuICAgIG9wYWNpdHk6IG51bWJlcjtcclxuICAgIHJlbmRlcmVyOiBFc3JpUmVuZGVyZXI7XHJcbiAgICBsZWdlbmRIdG1sOiBzdHJpbmc7XHJcbiAgICBvbFN0eWxlOiBvbC5zdHlsZS5TdHlsZXxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuU3R5bGVGdW5jdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihlc3JpUmVzcG9uc2U6IEVzcmlSZXNwb25zZSkge1xyXG4gICAgICAgIHRoaXMub3BhY2l0eSA9ICgxMDAgLSAoZXNyaVJlc3BvbnNlWydkcmF3aW5nSW5mbyddWyd0cmFuc3BhcmVuY3knXSB8fCAwKSkgLyAxMDA7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IGVzcmlSZXNwb25zZS5kcmF3aW5nSW5mby5yZW5kZXJlcjtcclxuICAgICAgICB0aGlzLm9sU3R5bGUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5sZWdlbmRIdG1sID0gJyc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFNpbmdsZVN5bWJvbCBleHRlbmRzIFN5bWJvbEdlbmVyYXRvciB7XHJcbiAgICBzeW1ib2w6IEVzcmlTeW1ib2w7XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZXNyaVJlc3BvbnNlIC0gbGF5ZXIgaW5mb1xyXG4gICAgICogQHBhcmFtIFN5bWJvbENsYXNzIC0gdGhlIHN5bWJvbCBjbGFzcyB0byB1c2VcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoZXNyaVJlc3BvbnNlLCBTeW1ib2xDbGFzczogSUNvbW1vblN5bWJvbCkge1xyXG4gICAgICAgIHN1cGVyKGVzcmlSZXNwb25zZSk7XHJcbiAgICAgICAgdGhpcy5zeW1ib2wgPSB0aGlzLnJlbmRlcmVyLnN5bWJvbDtcclxuICAgICAgICBsZXQgc3ltYm9sT2JqID0gbmV3IFN5bWJvbENsYXNzKHRoaXMuc3ltYm9sLCB0aGlzLm9wYWNpdHkpO1xyXG4gICAgICAgIHRoaXMub2xTdHlsZSA9IHN5bWJvbE9iai5vbFN0eWxlO1xyXG4gICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IHN5bWJvbE9iai5sZWdlbmRIdG1sO1xyXG4gICAgfVxyXG59XHJcblxyXG5jbGFzcyBVbmlxdWVWYWx1ZVN5bWJvbCBleHRlbmRzIFN5bWJvbEdlbmVyYXRvciB7XHJcblxyXG4gICAgcHJvcGVydHlOYW1lOiBzdHJpbmc7XHJcbiAgICBkZWZhdWx0U3ltYm9sOiBFc3JpU3ltYm9sO1xyXG4gICAgZGVmYXVsdFN0eWxlOiBvbC5zdHlsZS5TdHlsZXxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuU3R5bGVGdW5jdGlvbjtcclxuICAgIGRlZmF1bHRMYWJlbEh0bWw6IHN0cmluZztcclxuICAgIGxhYmVsQXJyYXk6IEFycmF5PHN0cmluZz47XHJcbiAgICBsZWdlbmRBcnJheTogQXJyYXk8c3RyaW5nPjtcclxuICAgIHByb3BlcnR5U3R5bGVMb29rdXA6IE9iamVjdDtcclxuICAgIHZhbHVlQXJyYXk6IEFycmF5PGFueT47XHJcbiAgICB1bmlxdWVWYWx1ZUluZm9zOiBBcnJheTx7bGFiZWw6IHN0cmluZywgdmFsdWU6IGFueSwgc3ltYm9sOiBFc3JpU3ltYm9sfT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGVzcmlSZXNwb25zZSAtIGxheWVyIGluZm9cclxuICAgICAqIEBwYXJhbSBTeW1ib2xDbGFzcyAtIHRoZSBTeW1ib2wgY2xhc3MgZGVmaW5pdGlvblxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcihlc3JpUmVzcG9uc2U6IEVzcmlSZXNwb25zZSwgU3ltYm9sQ2xhc3M6IElDb21tb25TeW1ib2wpIHtcclxuICAgICAgICBzdXBlcihlc3JpUmVzcG9uc2UpO1xyXG4gICAgICAgIHRoaXMudW5pcXVlVmFsdWVJbmZvcyA9IHRoaXMucmVuZGVyZXJbJ3VuaXF1ZVZhbHVlSW5mb3MnXTtcclxuICAgICAgICB0aGlzLnByb3BlcnR5TmFtZSA9IHRoaXMucmVuZGVyZXJbJ2ZpZWxkMSddO1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdFN5bWJvbCA9IHRoaXMucmVuZGVyZXJbJ2RlZmF1bHRTeW1ib2wnXTtcclxuXHJcblxyXG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRTeW1ib2wpIHtcclxuICAgICAgICAgICAgbGV0IHN5bWJvbE9iaiA9IG5ldyBTeW1ib2xDbGFzcyh0aGlzLmRlZmF1bHRTeW1ib2wsIHRoaXMub3BhY2l0eSk7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFN0eWxlID0gc3ltYm9sT2JqLm9sU3R5bGU7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdExhYmVsSHRtbCA9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtodG1sRXNjYXBlKHRoaXMucmVuZGVyZXJbJ2RlZmF1bHRMYWJlbCddKX08L3NwYW4+YCArIHN5bWJvbE9iai5sZWdlbmRIdG1sO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFN0eWxlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRMYWJlbEh0bWwgPSAnb3RoZXInO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy52YWx1ZUFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sYWJlbEFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sZWdlbmRBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMucHJvcGVydHlTdHlsZUxvb2t1cCA9IHt9O1xyXG5cclxuICAgICAgICBmb3IgKGxldCB1bmlxdWVWYWwgb2YgdGhpcy51bmlxdWVWYWx1ZUluZm9zKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGFiZWxBcnJheS5wdXNoKHVuaXF1ZVZhbFsnbGFiZWwnXSk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVBcnJheS5wdXNoKHVuaXF1ZVZhbFsndmFsdWUnXSk7XHJcbiAgICAgICAgICAgIGxldCB1bmlxdWVTeW0gPSBuZXcgU3ltYm9sQ2xhc3ModW5pcXVlVmFsLnN5bWJvbCwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgdGhpcy5sZWdlbmRBcnJheS5wdXNoKGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtodG1sRXNjYXBlKHVuaXF1ZVZhbFsnbGFiZWwnXSl9PC9zcGFuPmAgKyB1bmlxdWVTeW0ubGVnZW5kSHRtbCk7XHJcbiAgICAgICAgICAgIHRoaXMucHJvcGVydHlTdHlsZUxvb2t1cFt1bmlxdWVWYWxbJ3ZhbHVlJ11dID0gdW5pcXVlU3ltLm9sU3R5bGU7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgdGhpcy5vbFN0eWxlID0gKGZlYXR1cmU6IG9sLkZlYXR1cmUpID0+IHtcclxuICAgICAgICAgICAgbGV0IGNoZWNrUHJvcGVydGllcyA9IGZlYXR1cmUuZ2V0UHJvcGVydGllcygpO1xyXG4gICAgICAgICAgICBsZXQgY2hlY2tQcm9wZXJ0eSA9IGNoZWNrUHJvcGVydGllc1t0aGlzLnByb3BlcnR5TmFtZV07XHJcblxyXG4gICAgICAgICAgICBsZXQgcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BlcnR5U3R5bGVMb29rdXBbY2hlY2tQcm9wZXJ0eV0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBbdGhpcy5wcm9wZXJ0eVN0eWxlTG9va3VwW2NoZWNrUHJvcGVydHldXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBbdGhpcy5kZWZhdWx0U3R5bGVdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdExhYmVsSHRtbCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmxlZ2VuZEFycmF5LnB1c2godGhpcy5kZWZhdWx0TGFiZWxIdG1sKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubGVnZW5kSHRtbCA9ICc8dWw+JztcclxuICAgICAgICBmb3IgKGxldCBoIG9mIHRoaXMubGVnZW5kQXJyYXkpIHtcclxuICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGA8bGk+JHtofTwvbGk+YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9ICc8L3VsPic7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4vKipcclxuICogc3R5bGUgYW5kIGxlZ2VuZCBvYmplY3RcclxuICogQHR5cGVkZWYge29iamVjdH0gc3R5bGVBbmRMZWdlbmRcclxuICogQHByb3BlcnR5IHtzdHlsZUZ1bmN9IHN0eWxlIC0gc3R5bGUgZnVuY3Rpb25cclxuICogQHByb3BlcnR5IHtzdHJpbmd9IGxlZ2VuZCAtIGxlZ2VuZCBjb250ZW50XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBlc3JpUmVzcG9uc2UgLSBsYXllciBpbmZvXHJcbiAqIEByZXR1cm5zIHtzdHlsZUFuZExlZ2VuZH0gc3R5bGUgYW5kIGxlZ2VuZCBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBtYWtlRmVhdHVyZVNlcnZpY2VMZWdlbmRBbmRTeW1ib2woZXNyaVJlc3BvbnNlOiBFc3JpUmVzcG9uc2UpIHtcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG4gICAgbGV0IHJlbmRlcmVyID0gZXNyaVJlc3BvbnNlLmRyYXdpbmdJbmZvLnJlbmRlcmVyO1xyXG4gICAgbGV0IHN5bWJvbExlZ2VuZE91dDogU3ltYm9sR2VuZXJhdG9yID0gbnVsbDtcclxuXHJcbiAgICBzd2l0Y2ggKHJlbmRlcmVyLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdzaW1wbGUnOlxyXG4gICAgICAgICAgICBzd2l0Y2ggKGVzcmlSZXNwb25zZS5nZW9tZXRyeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2VzcmlHZW9tZXRyeVBvaW50JzpcclxuICAgICAgICAgICAgICAgICAgICBzeW1ib2xMZWdlbmRPdXQgPSBuZXcgU2luZ2xlU3ltYm9sKGVzcmlSZXNwb25zZSwgUG9pbnRTeW1ib2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZXNyaUdlb21ldHJ5UG9seWxpbmUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbExlZ2VuZE91dCA9IG5ldyBTaW5nbGVTeW1ib2woZXNyaVJlc3BvbnNlLCBMaW5lU3ltYm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2VzcmlHZW9tZXRyeVBvbHlnb24nOlxyXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbExlZ2VuZE91dCA9IG5ldyBTaW5nbGVTeW1ib2woZXNyaVJlc3BvbnNlLCBQb2x5Z29uU3ltYm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXNyaVJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICBhbGVydChlc3JpUmVzcG9uc2UuZ2VvbWV0cnlUeXBlICsgJyBub3QgaGFuZGxlZCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3VuaXF1ZVZhbHVlJzpcclxuICAgICAgICAgICAgc3dpdGNoIChlc3JpUmVzcG9uc2UuZ2VvbWV0cnlUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdlc3JpR2VvbWV0cnlQb2ludCc6XHJcbiAgICAgICAgICAgICAgICAgICAgc3ltYm9sTGVnZW5kT3V0ID0gbmV3IFVuaXF1ZVZhbHVlU3ltYm9sKGVzcmlSZXNwb25zZSwgUG9pbnRTeW1ib2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZXNyaUdlb21ldHJ5UG9seWxpbmUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbExlZ2VuZE91dCA9IG5ldyBVbmlxdWVWYWx1ZVN5bWJvbChlc3JpUmVzcG9uc2UsIExpbmVTeW1ib2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZXNyaUdlb21ldHJ5UG9seWdvbic6XHJcbiAgICAgICAgICAgICAgICAgICAgc3ltYm9sTGVnZW5kT3V0ID0gbmV3IFVuaXF1ZVZhbHVlU3ltYm9sKGVzcmlSZXNwb25zZSwgUG9seWdvblN5bWJvbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVzcmlSZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxlcnQoZXNyaVJlc3BvbnNlWydnZW9tZXRyeVR5cGUnXSArICcgbm90IGhhbmRsZWQnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBhbGVydCgnbm90IGhhbmRsZWQgcmVuZGVyZXIgdHlwZTogJyArIHJlbmRlcmVyWyd0eXBlJ10pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzeW1ib2xMZWdlbmRPdXQgPT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiB7c3R5bGU6IHVuZGVmaW5lZCwgbGVnZW5kOiAnJ307XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB7c3R5bGU6IHN5bWJvbExlZ2VuZE91dC5vbFN0eWxlLCBsZWdlbmQ6IHN5bWJvbExlZ2VuZE91dC5sZWdlbmRIdG1sfTtcclxuICAgIH1cclxufVxyXG5cclxubm0ubWFrZUZlYXR1cmVTZXJ2aWNlTGVnZW5kQW5kU3ltYm9sID0gbWFrZUZlYXR1cmVTZXJ2aWNlTGVnZW5kQW5kU3ltYm9sO1xyXG5cclxuXHJcbi8qKlxyXG4gKlxyXG4gKiBAcGFyYW0ge29iamVjdH0gbHlyT2JqZWN0IC0gdGhlIGxheWVyIGFzIGRlZmluZWQgaW4gdGhlIHJlc3BvbnNlXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3NraXBMYXllck5hbWVBbmRFeHBhbmRlcj1mYWxzZV0gdXNlIG9ubHkgaWNvbnNcclxuICogQHJldHVybnMge3N0cmluZ30gbGVnZW5kIGh0bWxcclxuICovXHJcbmZ1bmN0aW9uIG1hcFNlcnZpY2VMZWdlbmRJdGVtKGx5ck9iamVjdCwgc2tpcExheWVyTmFtZUFuZEV4cGFuZGVyOiBib29sZWFuID0gZmFsc2UpIHtcclxuXHJcblxyXG4gICAgc2tpcExheWVyTmFtZUFuZEV4cGFuZGVyID0gdHlwZW9mIHNraXBMYXllck5hbWVBbmRFeHBhbmRlciA9PSAnYm9vbGVhbicgPyBza2lwTGF5ZXJOYW1lQW5kRXhwYW5kZXIgOiBmYWxzZTtcclxuICAgIGxldCBsYXllck5hbWUgPSBseXJPYmplY3RbJ2xheWVyTmFtZSddO1xyXG4gICAgbGV0IGxlZ2VuZEl0ZW1zID0gbHlyT2JqZWN0WydsZWdlbmQnXTtcclxuICAgIGxldCBsZWdlbmRIdG1sID0gJyc7XHJcblxyXG4gICAgaWYgKCFza2lwTGF5ZXJOYW1lQW5kRXhwYW5kZXIpIHtcclxuICAgICAgICBsZWdlbmRIdG1sICs9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtsYXllck5hbWV9PC9zcGFuPmA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGxlZ2VuZEl0ZW1zLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgbGVnZW5kSHRtbCA9IGA8aW1nIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBoZWlnaHQ9XCIxN1wiIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwke2xlZ2VuZEl0ZW1zWzBdWydpbWFnZURhdGEnXX1cIj5gO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoIXNraXBMYXllck5hbWVBbmRFeHBhbmRlcikge1xyXG4gICAgICAgICAgICBsZWdlbmRIdG1sICs9ICc8c3BhbiBjbGFzcz1cImxlZ2VuZC1pdGVtcy1leHBhbmRlclwiIHRpdGxlPVwiRXhwYW5kL0NvbGxhcHNlXCI+JiM5NjYwOzwvc3Bhbj4nO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZWdlbmRIdG1sICs9ICc8dWw+JztcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlZ2VuZEl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxlZ2VuZEh0bWwgKz0gYDxsaT5gO1xyXG4gICAgICAgICAgICBsZWdlbmRIdG1sICs9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtodG1sRXNjYXBlKGxlZ2VuZEl0ZW1zW2ldWydsYWJlbCddKX08L3NwYW4+YDtcclxuICAgICAgICAgICAgbGVnZW5kSHRtbCArPSBgPGltZyBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgaGVpZ2h0PVwiMTdcIiBzcmM9XCJkYXRhOmltYWdlL3BuZztiYXNlNjQsJHtsZWdlbmRJdGVtc1tpXVsnaW1hZ2VEYXRhJ119XCI+YDtcclxuICAgICAgICAgICAgbGVnZW5kSHRtbCArPSBgPC9saT5gO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZWdlbmRIdG1sICs9ICc8L3VsPic7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFza2lwTGF5ZXJOYW1lQW5kRXhwYW5kZXIpIHtcclxuICAgICAgICBsZWdlbmRIdG1sID0gYDxzcGFuIGNsYXNzPVwibGVnZW5kLWxheWVyLXN1Yml0ZW1cIj4ke2xheWVyTmFtZX08L3NwYW4+YCArIGxlZ2VuZEh0bWw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGxlZ2VuZEh0bWw7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBtYWtlIG1hcCBzZXJ2aWNlIGxlZ2VudFxyXG4gKiBAcGFyYW0ge29iamVjdH0gZXNyaVJlc3BvbnNlIC0gbGF5ZXIgaW5mb1xyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBsZWdlbmQgY29udGVudFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VNYXBTZXJ2aWNlTGVnZW5kKGVzcmlSZXNwb25zZSkge1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG4gICAgbGV0IG5ld0xlZ2VuZEh0bWwgPSAnJztcclxuXHJcbiAgICBsZXQgbGF5ZXJzID0gZXNyaVJlc3BvbnNlWydsYXllcnMnXTtcclxuXHJcbiAgICBpZiAobGF5ZXJzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgbmV3TGVnZW5kSHRtbCArPSBtYXBTZXJ2aWNlTGVnZW5kSXRlbShsYXllcnNbMF0sIHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdMZWdlbmRIdG1sICs9ICc8dWw+JztcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxheWVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBuZXdMZWdlbmRIdG1sICs9ICc8bGk+JyArIG1hcFNlcnZpY2VMZWdlbmRJdGVtKGxheWVyc1tpXSkgKyAnPC9saT4nO1xyXG4gICAgICAgIH1cclxuICAgICAgICBuZXdMZWdlbmRIdG1sICs9ICc8L3VsPic7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5ld0xlZ2VuZEh0bWw7XHJcbn1cclxuXHJcbm5tLm1ha2VNYXBTZXJ2aWNlTGVnZW5kID0gbWFrZU1hcFNlcnZpY2VMZWdlbmQ7XHJcbiJdfQ== /***/ }), /* 16 */, @@ -2155,8 +2155,7 @@ nm.makeMapServiceLegend = makeMapServiceLegend; /* 23 */, /* 24 */, /* 25 */, -/* 26 */, -/* 27 */ +/* 26 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2286,9 +2285,10 @@ var LayerSwipe = (function () { }()); nm.LayerSwipe = LayerSwipe; exports.default = LayerSwipe; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXJTd2lwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxheWVyU3dpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUdILDJDQUFzQztBQUd0QywwQkFBNkI7QUFFN0IsSUFBSSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBRzNDO0lBU0k7Ozs7T0FJRztJQUNILG9CQUFZLEdBQVcsRUFBRSxhQUEwQjtRQUExQiw4QkFBQSxFQUFBLGtCQUEwQjtRQUFuRCxpQkFxREM7UUFuREcsYUFBYSxHQUFHLGFBQWEsSUFBSSxFQUFFLENBQUM7UUFDcEM7OztXQUdHO1FBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFFckI7OztXQUdHO1FBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFFbkIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDaEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxpQ0FBNkIsYUFBYSxXQUFRLENBQUMsQ0FBQztRQUc1RSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUV0QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUV0QixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUN4QixLQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUks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WUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztZQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQUcsQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkIsQ0FBQzs7O09BZEE7SUFlTCxpQkFBQztBQUFELENBQUMsQUEvSUQsSUErSUM7QUFFRCxFQUFFLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztBQUMzQixrQkFBZSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiA2LzEvMjAxNi5cclxuICovXHJcblxyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IHtMYXllckJhc2V9IGZyb20gXCIuLi9sYXllcnMvTGF5ZXJCYXNlXCI7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5cclxubGV0IG5tID0gcHJvdmlkZSgnY29sbGVjdGlvbnMubGF5ZXJTd2lwZScpO1xyXG5cclxuXHJcbmNsYXNzIExheWVyU3dpcGUge1xyXG4gICAgbGVmdExheWVyczogQXJyYXk8TGF5ZXJCYXNlPjtcclxuICAgIHJpZ2h0TGF5ZXJzOiBBcnJheTxMYXllckJhc2U+O1xyXG4gICAgX3BlcmNlbnRSaWdodDogbnVtYmVyO1xyXG4gICAgX21hcDogb2wuTWFwO1xyXG4gICAgJG1hcEVsZW1lbnQ6IEpRdWVyeTtcclxuICAgICRzd2lwZXI6IEpRdWVyeTtcclxuICAgIGRyYWdnaW5nOiBib29sZWFuO1xyXG4gICAgb2Zmc2V0OiBudW1iZXI7XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge29sLk1hcH0gbWFwIC0gdGhlIG1hcFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzbGlkZXJDb250ZW50PScnXSAtIGFkZGl0aW9uYWwgaHRtbCB0byBiZSBhZGRlZCBpbnNpZGUgdGhlIHNsaWRlciBkaXZcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IobWFwOiBvbC5NYXAsIHNsaWRlckNvbnRlbnQ6IHN0cmluZyA9ICcnKSB7XHJcblxyXG4gICAgICAgIHNsaWRlckNvbnRlbnQgPSBzbGlkZXJDb250ZW50IHx8ICcnO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHR5cGUge0FycmF5PExheWVyQmFzZT59XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5sZWZ0TGF5ZXJzID0gW107XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHR5cGUge0FycmF5PExheWVyQmFzZT59XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yaWdodExheWVycyA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLl9wZXJjZW50UmlnaHQgPSA1MDtcclxuICAgICAgICB0aGlzLm9mZnNldCA9IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuX21hcCA9IG1hcDtcclxuICAgICAgICB0aGlzLiRtYXBFbGVtZW50ID0gJChtYXAuZ2V0VGFyZ2V0RWxlbWVudCgpKTtcclxuICAgICAgICB0aGlzLiRtYXBFbGVtZW50LmFwcGVuZChgPGRpdiBjbGFzcz1cImxheWVyLXN3aXBlclwiPiR7c2xpZGVyQ29udGVudH08L2Rpdj5gKTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuJHN3aXBlciA9IHRoaXMuJG1hcEVsZW1lbnQuZmluZCgnLmxheWVyLXN3aXBlcicpO1xyXG4gICAgICAgIHRoaXMucGVyY2VudFJpZ2h0ID0gdGhpcy5wZXJjZW50UmlnaHQ7XHJcblxyXG4gICAgICAgIHRoaXMuZHJhZ2dpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy4kbWFwRWxlbWVudC5tb3VzZWxlYXZlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kcmFnZ2luZyA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLiRzd2lwZXIuYmluZCgnbW91c2V3aGVlbCBET01Nb3VzZVNjcm9sbCcsIGZ1bmN0aW9uKGV2dCl7XHJcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLiRzd2lwZXIubW91c2Vkb3duKChldnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kcmFnZ2luZyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMub2Zmc2V0ID0gZXZ0Lm9mZnNldFg7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICQod2luZG93KS5tb3VzZXVwKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kcmFnZ2luZyA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLiRtYXBFbGVtZW50Lm1vdXNlbW92ZSgoZXZ0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRyYWdnaW5nKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgbWFwTGVmdCA9IHRoaXMuJG1hcEVsZW1lbnQucG9zaXRpb24oKS5sZWZ0O1xyXG4gICAgICAgICAgICAgICAgbGV0IG1hcFdpZHRoID0gdGhpcy4kbWFwRWxlbWVudC53aWR0aCgpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMucGVyY2VudFJpZ2h0ID0gMTAwICogKGV2dC5wYWdlWCAtIHRoaXMub2Zmc2V0IC0gbWFwTGVmdCkgLyBtYXBXaWR0aDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJCYXNlfCp9IGx5ciAtIGxheWVyIHRvIGJlIGFkZGVkIHRvIGxlZnQgc2lkZVxyXG4gICAgICovXHJcbiAgICBhZGRMZWZ0TGF5ZXIobHlyKSB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmxlZnRMYXllcnMuaW5kZXhPZihseXIpICE9IC0xKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbHlyLm9sTGF5ZXIub24oJ3ByZWNvbXBvc2UnLCAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgbGV0IGN0eCA9IGV2ZW50Wydjb250ZXh0J107XHJcbiAgICAgICAgICAgIGxldCB3aWR0aCA9IGN0eC5jYW52YXMud2lkdGggKiAodGhpcy5wZXJjZW50UmlnaHQgLyAxMDApO1xyXG5cclxuICAgICAgICAgICAgY3R4LnNhdmUoKTtcclxuICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICBjdHgucmVjdCgwLCAwLCB3aWR0aCwgY3R4LmNhbnZhcy5oZWlnaHQpO1xyXG4gICAgICAgICAgICBjdHguY2xpcCgpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBseXIub2xMYXllci5vbigncG9zdGNvbXBvc2UnLCBmdW5jdGlvbiAoZXZlbnQpIHtcclxuICAgICAgICAgICAgbGV0IGN0eCA9IGV2ZW50Wydjb250ZXh0J107XHJcbiAgICAgICAgICAgIGN0eC5yZXN0b3JlKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG5cclxuICAgICAgICB0aGlzLmxlZnRMYXllcnMucHVzaChseXIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJCYXNlfCp9IGx5ciAtIGxheWVyIHRvIGJlIGFkZGVkIHRvIHJpZ2h0IHNpZGVcclxuICAgICAqL1xyXG4gICAgYWRkUmlnaHRMYXllcihseXIpIHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMucmlnaHRMYXllcnMuaW5kZXhPZihseXIpICE9IC0xKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbHlyLm9sTGF5ZXIub24oJ3ByZWNvbXBvc2UnLCAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgbGV0IGN0eCA9IGV2ZW50Wydjb250ZXh0J107XHJcbiAgICAgICAgICAgIGxldCB3aWR0aCA9IGN0eC5jYW52YXMud2lkdGggKiAodGhpcy5wZXJjZW50UmlnaHQgLyAxMDApO1xyXG5cclxuICAgICAgICAgICAgY3R4LnNhdmUoKTtcclxuICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICBjdHgucmVjdCh3aWR0aCwgMCwgY3R4LmNhbnZhcy53aWR0aCAtIHdpZHRoLCBjdHguY2FudmFzLmhlaWdodCk7XHJcbiAgICAgICAgICAgIGN0eC5jbGlwKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGx5ci5vbExheWVyLm9uKCdwb3N0Y29tcG9zZScsIGZ1bmN0aW9uIChldmVudCkge1xyXG4gICAgICAgICAgICBsZXQgY3R4ID0gZXZlbnRbJ2NvbnRleHQnXTtcclxuICAgICAgICAgICAgY3R4LnJlc3RvcmUoKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5yaWdodExheWVycy5wdXNoKGx5cik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHBlcmNlbnRSaWdodCgpIDogbnVtYmVye1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wZXJjZW50UmlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IHBlcmNlbnRSaWdodChwZXJjZW50OiBudW1iZXIpIHtcclxuICAgICAgICBsZXQgbWF4ZWQgPSB0aGlzLiRzd2lwZXIucG9zaXRpb24oKS5sZWZ0ICsgdGhpcy4kc3dpcGVyLndpZHRoKCkgPiB0aGlzLiRtYXBFbGVtZW50LndpZHRoKCk7XHJcblxyXG4gICAgICAgIGlmIChwZXJjZW50IDwgMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIGlmIChtYXhlZCAmJiBwZXJjZW50ID4gdGhpcy5wZXJjZW50UmlnaHQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fcGVyY2VudFJpZ2h0ID0gcGVyY2VudDtcclxuICAgICAgICB0aGlzLiRzd2lwZXIuY3NzKCdsZWZ0JywgYCR7dGhpcy5fcGVyY2VudFJpZ2h0LnRvRml4ZWQoMil9JWApO1xyXG4gICAgICAgIHRoaXMuX21hcC5yZW5kZXIoKTtcclxuICAgIH1cclxufVxyXG5cclxubm0uTGF5ZXJTd2lwZSA9IExheWVyU3dpcGU7XHJcbmV4cG9ydCBkZWZhdWx0IExheWVyU3dpcGU7XHJcbiJdfQ== /***/ }), +/* 27 */, /* 28 */, /* 29 */, /* 30 */, @@ -2296,8 +2296,7 @@ exports.default = LayerSwipe; /* 32 */, /* 33 */, /* 34 */, -/* 35 */, -/* 36 */ +/* 35 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2307,7 +2306,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); * Created by gavorhes on 6/1/2016. */ var quickMap_1 = __webpack_require__(7); -var layerSwipe_1 = __webpack_require__(27); +var layerSwipe_1 = __webpack_require__(26); var LayerEsriMapServer_1 = __webpack_require__(10); var map = quickMap_1.quickMap(); var swiper = new layerSwipe_1.default(map); @@ -2341,7 +2340,7 @@ swiper.addLeftLayer(wisDotRegions); swiper.addRightLayer(metamanagerSegments); swiper.addLeftLayer(truckSpeed2014); swiper.addRightLayer(truckSpeed2015); - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS10ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29tcGFyZS10ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7O0dBRUc7QUFDSCx5REFBc0Q7QUFDdEQsNkRBQXdEO0FBQ3hELDBFQUF1RTtBQUV2RSxJQUFJLEdBQUcsR0FBRyxtQkFBUSxFQUFFLENBQUM7QUFHckIsSUFBSSxNQUFNLEdBQUcsSUFBSSxvQkFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBR2pDLElBQUksYUFBYSxHQUFHLElBQUksdUNBQWtCLENBQ3RDLDhHQUE4RyxFQUM5RztJQUNJLE9BQU8sRUFBRSxDQUFDO0lBQ1YsT0FBTyxFQUFFLEVBQUU7SUFDWCxJQUFJLEVBQUUsZ0JBQWdCO0NBQ3pCLENBQUMsQ0FBQztBQUVQLElBQUksbUJBQW1CLEdBQUcsSUFBSSx1Q0FBa0IsQ0FDNUMsMEdBQTBHLEVBQzFHO0lBQ0ksT0FBTyxFQUFFLENBQUM7SUFDVixPQUFPLEVBQUUsSUFBSTtJQUNiLElBQUksRUFBRSxzQkFBc0I7Q0FDL0IsQ0FBQyxDQUFDO0FBRVAsSUFBSSxjQUFjLEdBQUcsSUFBSSx1Q0FBa0IsQ0FDdkMsb0dBQW9HLEVBQ3BHO0lBQ0ksT0FBTyxFQUFFLENBQUM7SUFDVixPQUFPLEVBQUUsSUFBSTtJQUNiLElBQUksRUFBRSxXQUFXO0lBQ2pCLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztDQUNsQixDQUFDLENBQUM7QUFFUCxJQUFJLGNBQWMsR0FBRyxJQUFJLHVDQUFrQixDQUN2QyxvR0FBb0csRUFDcEc7SUFDSSxPQUFPLEVBQUUsQ0FBQztJQUNWLE9BQU8sRUFBRSxJQUFJO0lBQ2IsSUFBSSxFQUFFLFdBQVc7SUFDakIsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0NBQ2xCLENBQUMsQ0FBQztBQUVQLEdBQUcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3BDLEdBQUcsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3JDLEdBQUcsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3JDLEdBQUcsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7QUFHMUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNuQyxNQUFNLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFFMUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUNwQyxNQUFNLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gNi8xLzIwMTYuXHJcbiAqL1xyXG5pbXBvcnQge3F1aWNrTWFwfSBmcm9tICcuLi8uLi9zcmMvb2xIZWxwZXJzL3F1aWNrTWFwJztcclxuaW1wb3J0IExheWVyU3dpcGUgZnJvbSAnLi4vLi4vc3JjL29sSGVscGVycy9sYXllclN3aXBlJztcclxuaW1wb3J0IHtMYXllckVzcmlNYXBTZXJ2ZXJ9IGZyb20gJy4uLy4uL3NyYy9sYXllcnMvTGF5ZXJFc3JpTWFwU2VydmVyJztcclxuXHJcbmxldCBtYXAgPSBxdWlja01hcCgpO1xyXG5cclxuXHJcbmxldCBzd2lwZXIgPSBuZXcgTGF5ZXJTd2lwZShtYXApO1xyXG5cclxuXHJcbmxldCB3aXNEb3RSZWdpb25zID0gbmV3IExheWVyRXNyaU1hcFNlcnZlcihcclxuICAgICdodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2FwcGxpY2F0aW9ucy9hcmNnaXMyL3Jlc3Qvc2VydmljZXMvTWV0YU1hbmFnZXIvTWV0YW1hbmFnZXJfcmVnaW9ucy9NYXBTZXJ2ZXInLFxyXG4gICAge1xyXG4gICAgICAgIG1pblpvb206IDYsXHJcbiAgICAgICAgbWF4Wm9vbTogMTIsXHJcbiAgICAgICAgbmFtZTogJ1dpc0RPVCBSZWdpb25zJ1xyXG4gICAgfSk7XHJcblxyXG5sZXQgbWV0YW1hbmFnZXJTZWdtZW50cyA9IG5ldyBMYXllckVzcmlNYXBTZXJ2ZXIoXHJcbiAgICAnaHR0cDovL3RyYW5zcG9ydGFsLmNlZS53aXNjLmVkdS9hcHBsaWNhdGlvbnMvYXJjZ2lzMi9yZXN0L3NlcnZpY2VzL01ldGFNYW5hZ2VyL01NX0FsbF9TZWdtZW50cy9NYXBTZXJ2ZXInLFxyXG4gICAge1xyXG4gICAgICAgIG1pblpvb206IDcsXHJcbiAgICAgICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICBuYW1lOiAnTWV0YW1hbmFnZXIgU2VnbWVudHMnXHJcbiAgICB9KTtcclxuXHJcbmxldCB0cnVja1NwZWVkMjAxNCA9IG5ldyBMYXllckVzcmlNYXBTZXJ2ZXIoXHJcbiAgICAnaHR0cDovL3RyYW5zcG9ydGFsLmNlZS53aXNjLmVkdS9hcHBsaWNhdGlvbnMvYXJjZ2lzMi9yZXN0L3NlcnZpY2VzL05QTVJEUy9jb21wYXJlRHluYW1pYy9NYXBTZXJ2ZXInLFxyXG4gICAge1xyXG4gICAgICAgIG1pblpvb206IDcsXHJcbiAgICAgICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICBuYW1lOiAndHJ1Y2syMDE0JyxcclxuICAgICAgICBzaG93TGF5ZXJzOiBbOF1cclxuICAgIH0pO1xyXG5cclxubGV0IHRydWNrU3BlZWQyMDE1ID0gbmV3IExheWVyRXNyaU1hcFNlcnZlcihcclxuICAgICdodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2FwcGxpY2F0aW9ucy9hcmNnaXMyL3Jlc3Qvc2VydmljZXMvTlBNUkRTL2NvbXBhcmVEeW5hbWljL01hcFNlcnZlcicsXHJcbiAgICB7XHJcbiAgICAgICAgbWluWm9vbTogNyxcclxuICAgICAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgICAgIG5hbWU6ICd0cnVjazIwMTUnLFxyXG4gICAgICAgIHNob3dMYXllcnM6IFs5XVxyXG4gICAgfSk7XHJcblxyXG5tYXAuYWRkTGF5ZXIod2lzRG90UmVnaW9ucy5vbExheWVyKTtcclxubWFwLmFkZExheWVyKHRydWNrU3BlZWQyMDE0Lm9sTGF5ZXIpO1xyXG5tYXAuYWRkTGF5ZXIodHJ1Y2tTcGVlZDIwMTUub2xMYXllcik7XHJcbm1hcC5hZGRMYXllcihtZXRhbWFuYWdlclNlZ21lbnRzLm9sTGF5ZXIpO1xyXG5cclxuXHJcbnN3aXBlci5hZGRMZWZ0TGF5ZXIod2lzRG90UmVnaW9ucyk7XHJcbnN3aXBlci5hZGRSaWdodExheWVyKG1ldGFtYW5hZ2VyU2VnbWVudHMpO1xyXG5cclxuc3dpcGVyLmFkZExlZnRMYXllcih0cnVja1NwZWVkMjAxNCk7XHJcbnN3aXBlci5hZGRSaWdodExheWVyKHRydWNrU3BlZWQyMDE1KTtcclxuIl19 /***/ }) /******/ ]); diff --git a/test/serve/js/compare-test.js.map b/test/serve/js/compare-test.js.map index 759d5db..be43a91 100644 --- a/test/serve/js/compare-test.js.map +++ b/test/serve/js/compare-test.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap b4e25e5e5539f3f3f6dd?fe66*","webpack:///./src/util/provide.ts?5c82*","webpack:///external \"$\"?57aa*","webpack:///external \"ol\"?81ed*","webpack:///./src/util/makeGuid.ts?e80e*","webpack:///./src/olHelpers/mapPopup.ts?5d6c*","webpack:///./src/olHelpers/mapInteractionBase.ts?f419*","webpack:///./src/olHelpers/mapMove.ts?6a2b*","webpack:///./src/olHelpers/quickMap.ts?1069*","webpack:///./src/layers/LayerBase.ts?bf94*","webpack:///./src/util/checkDefined.ts?bcd7*","webpack:///./src/layers/LayerEsriMapServer.ts?9c85","webpack:///./src/olHelpers/mapMoveCls.ts?cd45*","webpack:///./src/olHelpers/mapPopupCls.ts?e3f7*","webpack:///./src/olHelpers/quickMapBase.ts?fb65*","webpack:///./src/olHelpers/zoomResolutionConvert.ts?dd4b*","webpack:///./src/olHelpers/esriToOlStyle.ts?9363","webpack:///./src/olHelpers/layerSwipe.ts","webpack:///./test/demo/compare-test.ts"],"names":[],"mappings":"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","file":"compare-test.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\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 36);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap b4e25e5e5539f3f3f6dd","/**\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","module.exports = $;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"$\"\n// module id = 1\n// module chunks = 0 1 2 3 4 5 6","module.exports = ol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ol\"\n// module id = 2\n// module chunks = 0 1 2 3","/**\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","/**\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\nexport const mapPopup = new MapPopupCls() as MapPopupCls;\r\nexport default mapPopup;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/olHelpers/mapPopup.ts","/**\r\n * Created by gavorhes on 12/8/2015.\r\n */\r\nimport provide from '../util/provide';\r\nimport ol = require('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","/**\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","/**\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 = require('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 {ol.Map} 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 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","import * as zoomResolutionConvert from '../olHelpers/zoomResolutionConvert';\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport makeGuid from '../util/makeGuid';\r\nimport $ = require('jquery');\r\n\r\nconst nm = provide('layers');\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 protected _legendCheckbox: boolean;\r\n protected _url: string;\r\n protected _opacity: number;\r\n protected _minZoom: number;\r\n protected _maxZoom: number;\r\n protected _visible: boolean;\r\n protected _loaded: boolean;\r\n protected _zIndex: number;\r\n protected _legendContent: string;\r\n protected _params: any;\r\n protected _id: string;\r\n protected _name: string;\r\n protected _source: ol.source.Source;\r\n protected _animate: boolean;\r\n protected _legendCollapse: boolean;\r\n protected _maxResolution: number;\r\n protected _minResolution: number;\r\n protected _$legendDiv: JQuery;\r\n loadCallback: Function;\r\n protected _olLayer: ol.layer.Layer;\r\n protected _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 additionalContent - additional content to add to legend\r\n * @private\r\n */\r\n _addLegendContent(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 get id(): string{\r\n return this._id;\r\n }\r\n\r\n set id(newId: string){\r\n this._id = newId;\r\n }\r\n\r\n get animate(): boolean{\r\n return this._animate;\r\n }\r\n\r\n set animate(animate: boolean){\r\n this._animate = animate;\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","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","/**\r\n * Created by gavorhes on 12/7/2015.\r\n */\r\nimport {LayerBase, LayerBaseOptions} from './LayerBase';\r\nimport * as esriToOl from '../olHelpers/esriToOlStyle';\r\nimport mapPopup from '../olHelpers/mapPopup';\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport $ = require('jquery');\r\n\r\nconst nm = provide('layers');\r\n\r\n\r\nexport interface LayerEsriMapServerOptions extends LayerBaseOptions {\r\n addPopup?: boolean;\r\n showLayers?: Array<number>;\r\n}\r\n\r\n/**\r\n * esri mapserver layer\r\n * @augments LayerBase\r\n */\r\nexport class LayerEsriMapServer extends LayerBase {\r\n _esriFormat: ol.format.EsriJSON;\r\n _popupRequest: JQueryXHR;\r\n\r\n /**\r\n * The base layer for all others\r\n * @param {string} url - resource url\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.addPopup=false] if a popup should be added\r\n * @param {undefined|Array<number>} [options.showLayers=undefined] if a popup should be added\r\n */\r\n constructor(url, options: LayerEsriMapServerOptions = {}) {\r\n\r\n super(url, options);\r\n this._source = new ol.source.TileArcGISRest(\r\n {\r\n url: this.url == '' ? undefined : this.url,\r\n params: typeof options.showLayers == 'undefined' ? undefined : {layers: 'show:' + options.showLayers.join(',')}\r\n }\r\n );\r\n\r\n this._olLayer = new ol.layer.Tile({\r\n source: this._source as ol.source.Tile,\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 options.addPopup = typeof options.addPopup == 'boolean' ? options.addPopup : false;\r\n\r\n this._esriFormat = new ol.format.EsriJSON();\r\n this._popupRequest = null;\r\n\r\n this.addLegendContent();\r\n\r\n if (options.addPopup) {\r\n mapPopup.addMapServicePopup(this);\r\n }\r\n }\r\n\r\n /**\r\n * add additional content to the legend\r\n * @param {string} [additionalContent=''] additional content for legend\r\n */\r\n addLegendContent(additionalContent?: string) {\r\n let urlCopy = this.url;\r\n\r\n if (urlCopy[urlCopy.length - 1] !== '/') {\r\n urlCopy += '/';\r\n }\r\n\r\n urlCopy += 'legend?f=pjson&callback=?';\r\n\r\n $.get(urlCopy, {}, (d) => {\r\n let newHtml = esriToOl.makeMapServiceLegend(d);\r\n super.addLegendContent(newHtml);\r\n }, 'json');\r\n }\r\n\r\n\r\n getPopupInfo(queryParams) {\r\n if (!this.visible) {\r\n return;\r\n }\r\n\r\n let urlCopy = this.url;\r\n\r\n if (urlCopy[urlCopy.length - 1] != '/') {\r\n urlCopy += '/';\r\n }\r\n\r\n urlCopy += 'identify?callback=?';\r\n\r\n let __this = this;\r\n\r\n if (this._popupRequest != null) {\r\n this._popupRequest.abort();\r\n }\r\n\r\n\r\n this._popupRequest = $.get(urlCopy, queryParams, function (d) {\r\n for (let r of d['results']) {\r\n\r\n let popupHtml = '<table class=\"esri-popup-table\">';\r\n\r\n for (let a in r['attributes']) {\r\n if (r['attributes'].hasOwnProperty(a)) {\r\n let attrVal = r['attributes'][a];\r\n\r\n if (attrVal == null || attrVal.toString().toLowerCase() == 'null') {\r\n continue;\r\n }\r\n\r\n let attr = a;\r\n if (attr.length > 14) {\r\n attr = attr.slice(0, 11) + '...';\r\n }\r\n\r\n popupHtml += `<tr><td>${attr}</td><td>${attrVal}</td></tr>`;\r\n }\r\n }\r\n\r\n popupHtml += '</table>';\r\n\r\n mapPopup.addMapServicePopupContent(__this._esriFormat.readFeature(r), __this, popupHtml, r['layerName']);\r\n }\r\n }, 'json');\r\n\r\n this._popupRequest.always(function () {\r\n __this._popupRequest = null;\r\n });\r\n\r\n }\r\n\r\n /**\r\n *\r\n * @returns {ol.source.TileArcGISRest} the vector source\r\n */\r\n get source(): ol.source.TileArcGISRest {\r\n return super.getSource() as ol.source.TileArcGISRest;\r\n }\r\n\r\n /**\r\n *\r\n * @returns the ol layer\r\n */\r\n get olLayer(): ol.layer.Tile {\r\n return super.getOlLayer() as ol.layer.Tile;\r\n }\r\n}\r\nnm.LayerEsriMapServer = LayerEsriMapServer;\r\nexport default LayerEsriMapServer;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/layers/LayerEsriMapServer.ts","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 = require('custom-ol');\r\nimport $ = 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<number>;\r\n _mapMoveCallbackTimeout: Array<number>;\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","/**\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 = require('custom-ol');\r\nimport {LayerBaseVector} from \"../layers/LayerBaseVector\";\r\nimport LayerEsriMapServer from \"../layers/LayerEsriMapServer\";\r\nimport $ = 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 private _popupOpen: boolean;\r\n private _passThroughLayerFeatureArray: Array<FeatureLayerProperties>;\r\n private _currentPopupIndex: number;\r\n private _popupContentLength: number;\r\n private _esriMapServiceLayers: Array<LayerEsriMapServer>;\r\n private _$popupCloser: JQuery;\r\n private _$popupContent: JQuery;\r\n private _$popupContainer: JQuery;\r\n private _popupOverlay: ol.Overlay;\r\n private _arrPopupLayers: Array<LayerBaseVector>;\r\n private _popupCoordinate: ol.Coordinate;\r\n private _popupChangedFunctions: Array<popupChangedFunction>;\r\n private _mapClickFunctions: Array<Function>;\r\n private _selectionLayerLookup: Object;\r\n private _arrPopupLayerIds: Array<string>;\r\n private _arrPopupLayerNames: Array<string>;\r\n private _arrPopupOlLayers: Array<ol.layer.Vector>;\r\n private _arrPopupContentFunction: Array<popupCallback>;\r\n private _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: LayerBaseVector, selectionStyle: {color?: string, width?: number, olStyle?: ol.style.Style}): 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?: {color?: string, width?: number, olStyle?: ol.style.Style}) {\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","/**\r\n * Created by gavorhes on 12/15/2015.\r\n */\r\n\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport $ = require('jquery');\r\nconst nm = provide('olHelpers');\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 const controls = ol.control.defaults({\r\n attributionOptions: {collapsible: false}\r\n }\r\n );\r\n\r\n const 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 let map = new ol.Map({\r\n layers: [osmLayer],\r\n target: options.divId,\r\n controls: controls,\r\n view: view\r\n });\r\n\r\n if (options.fullScreen) {\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","/**\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","/**\r\n * Created by gavorhes on 1/4/2016.\r\n */\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nconst nm = provide('olHelpers.esriToOlStyle');\r\n\r\n/**\r\n * This callback is displayed as part of the Requester class.\r\n * @callback styleFunc\r\n * @param {ol.Feature} feat - openlayers feature\r\n * @param {number} resolution - map resolution\r\n */\r\n\r\n/**\r\n *\r\n * @param {Array<number>} colorArray - input color array\r\n * @param {number} opacity - the opacity 0 to 1\r\n * @returns {string} rgba string\r\n * @private\r\n */\r\nfunction _colorArrayToRgba(colorArray, opacity) {\r\n \"use strict\";\r\n\r\n return `rgba(${colorArray[0]},${colorArray[1]},${colorArray[2]},${opacity})`;\r\n}\r\n\r\n/**\r\n * escape html charcters\r\n * @param {string} str - input string\r\n * @returns {string} escaped string\r\n */\r\nfunction htmlEscape(str) {\r\n return String(str)\r\n .replace(/&/g, '&')\r\n .replace(/\"/g, '"')\r\n .replace(/'/g, ''')\r\n .replace(/</g, '<')\r\n .replace(/>/g, '>');\r\n}\r\n\r\nnm.htmlEscape = htmlEscape;\r\n\r\n\r\nexport interface EsriResponse{\r\n drawingInfo: {\r\n renderer: EsriRenderer\r\n },\r\n geometryType: string\r\n}\r\n\r\nexport interface EsriRenderer{\r\n type: string;\r\n symbol: EsriSymbol;\r\n uniqueValueInfos: Array<{label: string, value: any, symbol: EsriSymbol}>;\r\n}\r\n\r\nexport interface EsriSymbol{\r\n size: number;\r\n type: string;\r\n outline:{\r\n color: string;\r\n width: number;\r\n },\r\n color: string;\r\n width: number;\r\n}\r\n\r\n\r\nclass CommonSymbol {\r\n legendHtml: string;\r\n opacity: number;\r\n symbolObj: EsriSymbol;\r\n olStyle: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction;\r\n\r\n /**\r\n *\r\n * @param symbolObj\r\n * @param {number} opacity\r\n */\r\n constructor(symbolObj: EsriSymbol, opacity: number) {\r\n this.symbolObj = symbolObj;\r\n this.opacity = opacity;\r\n this.olStyle = undefined;\r\n this.legendHtml = '';\r\n }\r\n}\r\n\r\ninterface ICommonSymbol{\r\n new (symbolObj: EsriSymbol, opacity: number): CommonSymbol\r\n}\r\n\r\n\r\nclass PointSymbol extends CommonSymbol {\r\n constructor(symbolObj: EsriSymbol, opacity: number) {\r\n super(symbolObj, opacity);\r\n switch (this.symbolObj.type) {\r\n case 'esriSMS':\r\n let innerColor = _colorArrayToRgba(this.symbolObj.color, this.opacity);\r\n let outerColor = _colorArrayToRgba(this.symbolObj.outline.color, this.opacity);\r\n let outlineWidth = this.symbolObj.outline.width;\r\n let radius = this.symbolObj.size;\r\n\r\n\r\n this.olStyle = new ol.style.Style({\r\n image: new ol.style.Circle({\r\n radius: radius,\r\n fill: new ol.style.Fill({\r\n color: innerColor\r\n }),\r\n stroke: new ol.style.Stroke({color: outerColor, width: outlineWidth})\r\n })\r\n });\r\n this.legendHtml = `<span class=\"legend-layer-icon\" style=\"color: ${innerColor}\">●</span>`;\r\n break;\r\n case 'esriPMS':\r\n this.olStyle = new ol.style.Style({\r\n image: new ol.style.Icon({src: `data:image/png;base64,${this.symbolObj['imageData']}`})\r\n });\r\n this.legendHtml = `<img class=\"legend-layer-icon\" height=\"17\" src=\"data:image/png;base64,${this.symbolObj['imageData']}\">`;\r\n break;\r\n default:\r\n console.log(this.symbolObj);\r\n alert('Point symbol does not handle symbol type: ' + this.symbolObj['type']);\r\n }\r\n }\r\n}\r\n\r\nclass LineSymbol extends CommonSymbol {\r\n constructor(symbolObj: EsriSymbol, opacity: number) {\r\n super(symbolObj, opacity);\r\n switch (this.symbolObj.type) {\r\n case 'esriSLS':\r\n let innerColor = _colorArrayToRgba(this.symbolObj.color, this.opacity);\r\n let lineWidth = this.symbolObj.width;\r\n\r\n this.olStyle = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: innerColor,\r\n //lineDash: [4],\r\n width: lineWidth\r\n })\r\n });\r\n\r\n this.legendHtml = `<span class=\"legend-layer-icon\" `;\r\n this.legendHtml += `style=\"`;\r\n this.legendHtml += `background-color: ${innerColor};`;\r\n this.legendHtml += `width: 40px;`;\r\n this.legendHtml += `height: 4px;`;\r\n this.legendHtml += `position: relative;`;\r\n this.legendHtml += `display: inline-block;`;\r\n this.legendHtml += `top: -1px;`;\r\n this.legendHtml += `\"></span>`;\r\n break;\r\n default:\r\n console.log(this.symbolObj);\r\n alert('Line symbol does not handle symbol type: ' + this.symbolObj['type']);\r\n }\r\n }\r\n}\r\n\r\nclass PolygonSymbol extends CommonSymbol {\r\n constructor(symbolObj: EsriSymbol, opacity: number) {\r\n super(symbolObj, opacity);\r\n switch (this.symbolObj['type']) {\r\n case 'esriSFS':\r\n let innerColor = _colorArrayToRgba(this.symbolObj.color, this.opacity);\r\n let outerColor = _colorArrayToRgba(this.symbolObj.outline.color, this.opacity);\r\n let outlineWidth = this.symbolObj.outline.width;\r\n\r\n this.olStyle = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: outerColor,\r\n //lineDash: [4],\r\n width: outlineWidth\r\n }),\r\n fill: new ol.style.Fill({\r\n color: innerColor\r\n })\r\n });\r\n\r\n this.legendHtml = `<span class=\"legend-layer-icon\" `;\r\n this.legendHtml += `style=\"`;\r\n this.legendHtml += `background-color: ${innerColor};`;\r\n this.legendHtml += `border: solid ${outerColor} 1px;`;\r\n this.legendHtml += `width: 40px;`;\r\n this.legendHtml += `height: 9px;`;\r\n this.legendHtml += `position: relative;`;\r\n this.legendHtml += `display: inline-block;`;\r\n this.legendHtml += `top: 2px;`;\r\n this.legendHtml += `\"></span>`;\r\n break;\r\n\r\n default:\r\n console.log(this.symbolObj);\r\n alert('Polygon symbol does handle symbol type: ' + this.symbolObj['type']);\r\n }\r\n }\r\n}\r\n\r\nclass SymbolGenerator {\r\n opacity: number;\r\n renderer: EsriRenderer;\r\n legendHtml: string;\r\n olStyle: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction;\r\n\r\n constructor(esriResponse: EsriResponse) {\r\n this.opacity = (100 - (esriResponse['drawingInfo']['transparency'] || 0)) / 100;\r\n this.renderer = esriResponse.drawingInfo.renderer;\r\n this.olStyle = undefined;\r\n this.legendHtml = '';\r\n }\r\n}\r\n\r\nclass SingleSymbol extends SymbolGenerator {\r\n symbol: EsriSymbol;\r\n /**\r\n *\r\n * @param {object} esriResponse - layer info\r\n * @param SymbolClass - the symbol class to use\r\n */\r\n constructor(esriResponse, SymbolClass: ICommonSymbol) {\r\n super(esriResponse);\r\n this.symbol = this.renderer.symbol;\r\n let symbolObj = new SymbolClass(this.symbol, this.opacity);\r\n this.olStyle = symbolObj.olStyle;\r\n this.legendHtml = symbolObj.legendHtml;\r\n }\r\n}\r\n\r\nclass UniqueValueSymbol extends SymbolGenerator {\r\n\r\n propertyName: string;\r\n defaultSymbol: EsriSymbol;\r\n defaultStyle: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction;\r\n defaultLabelHtml: string;\r\n labelArray: Array<string>;\r\n legendArray: Array<string>;\r\n propertyStyleLookup: Object;\r\n valueArray: Array<any>;\r\n uniqueValueInfos: Array<{label: string, value: any, symbol: EsriSymbol}>;\r\n\r\n /**\r\n *\r\n * @param {object} esriResponse - layer info\r\n * @param SymbolClass - the Symbol class definition\r\n */\r\n constructor(esriResponse: EsriResponse, SymbolClass: ICommonSymbol) {\r\n super(esriResponse);\r\n this.uniqueValueInfos = this.renderer['uniqueValueInfos'];\r\n this.propertyName = this.renderer['field1'];\r\n this.defaultSymbol = this.renderer['defaultSymbol'];\r\n\r\n\r\n if (this.defaultSymbol) {\r\n let symbolObj = new SymbolClass(this.defaultSymbol, this.opacity);\r\n this.defaultStyle = symbolObj.olStyle;\r\n this.defaultLabelHtml = `<span class=\"legend-layer-subitem\">${htmlEscape(this.renderer['defaultLabel'])}</span>` + symbolObj.legendHtml;\r\n } else {\r\n this.defaultStyle = undefined;\r\n this.defaultLabelHtml = 'other';\r\n }\r\n\r\n this.valueArray = [];\r\n this.labelArray = [];\r\n this.legendArray = [];\r\n this.propertyStyleLookup = {};\r\n\r\n for (let uniqueVal of this.uniqueValueInfos) {\r\n this.labelArray.push(uniqueVal['label']);\r\n this.valueArray.push(uniqueVal['value']);\r\n let uniqueSym = new SymbolClass(uniqueVal.symbol, this.opacity);\r\n this.legendArray.push(`<span class=\"legend-layer-subitem\">${htmlEscape(uniqueVal['label'])}</span>` + uniqueSym.legendHtml);\r\n this.propertyStyleLookup[uniqueVal['value']] = uniqueSym.olStyle;\r\n }\r\n\r\n\r\n this.olStyle = (feature: ol.Feature) => {\r\n let checkProperties = feature.getProperties();\r\n let checkProperty = checkProperties[this.propertyName];\r\n\r\n let returnValue;\r\n if (this.propertyStyleLookup[checkProperty] !== undefined) {\r\n returnValue = [this.propertyStyleLookup[checkProperty]];\r\n } else {\r\n returnValue = [this.defaultStyle];\r\n }\r\n\r\n return returnValue;\r\n };\r\n\r\n if (this.defaultLabelHtml !== null) {\r\n this.legendArray.push(this.defaultLabelHtml);\r\n }\r\n\r\n this.legendHtml = '<ul>';\r\n for (let h of this.legendArray) {\r\n this.legendHtml += `<li>${h}</li>`;\r\n }\r\n this.legendHtml += '</ul>';\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * style and legend object\r\n * @typedef {object} styleAndLegend\r\n * @property {styleFunc} style - style function\r\n * @property {string} legend - legend content\r\n */\r\n\r\n/**\r\n *\r\n * @param {object} esriResponse - layer info\r\n * @returns {styleAndLegend} style and legend object\r\n */\r\nexport function makeFeatureServiceLegendAndSymbol(esriResponse: EsriResponse) {\r\n \"use strict\";\r\n let renderer = esriResponse.drawingInfo.renderer;\r\n let symbolLegendOut: SymbolGenerator = null;\r\n\r\n switch (renderer.type) {\r\n case 'simple':\r\n switch (esriResponse.geometryType) {\r\n case 'esriGeometryPoint':\r\n symbolLegendOut = new SingleSymbol(esriResponse, PointSymbol);\r\n break;\r\n case 'esriGeometryPolyline':\r\n symbolLegendOut = new SingleSymbol(esriResponse, LineSymbol);\r\n break;\r\n case 'esriGeometryPolygon':\r\n symbolLegendOut = new SingleSymbol(esriResponse, PolygonSymbol);\r\n break;\r\n default:\r\n console.log(esriResponse);\r\n alert(esriResponse.geometryType + ' not handled');\r\n }\r\n break;\r\n case 'uniqueValue':\r\n switch (esriResponse.geometryType) {\r\n case 'esriGeometryPoint':\r\n symbolLegendOut = new UniqueValueSymbol(esriResponse, PointSymbol);\r\n break;\r\n case 'esriGeometryPolyline':\r\n symbolLegendOut = new UniqueValueSymbol(esriResponse, LineSymbol);\r\n break;\r\n case 'esriGeometryPolygon':\r\n symbolLegendOut = new UniqueValueSymbol(esriResponse, PolygonSymbol);\r\n break;\r\n default:\r\n console.log(esriResponse);\r\n alert(esriResponse['geometryType'] + ' not handled');\r\n }\r\n break;\r\n default:\r\n alert('not handled renderer type: ' + renderer['type']);\r\n }\r\n\r\n if (symbolLegendOut == null) {\r\n return {style: undefined, legend: ''};\r\n } else {\r\n return {style: symbolLegendOut.olStyle, legend: symbolLegendOut.legendHtml};\r\n }\r\n}\r\n\r\nnm.makeFeatureServiceLegendAndSymbol = makeFeatureServiceLegendAndSymbol;\r\n\r\n\r\n/**\r\n *\r\n * @param {object} lyrObject - the layer as defined in the response\r\n * @param {boolean} [skipLayerNameAndExpander=false] use only icons\r\n * @returns {string} legend html\r\n */\r\nfunction mapServiceLegendItem(lyrObject, skipLayerNameAndExpander: boolean = false) {\r\n\r\n\r\n skipLayerNameAndExpander = typeof skipLayerNameAndExpander == 'boolean' ? skipLayerNameAndExpander : false;\r\n let layerName = lyrObject['layerName'];\r\n let legendItems = lyrObject['legend'];\r\n let legendHtml = '';\r\n\r\n if (!skipLayerNameAndExpander) {\r\n legendHtml += `<span class=\"legend-layer-subitem\">${layerName}</span>`;\r\n }\r\n\r\n if (legendItems.length == 1) {\r\n legendHtml = `<img class=\"legend-layer-icon\" height=\"17\" src=\"data:image/png;base64,${legendItems[0]['imageData']}\">`;\r\n } else {\r\n if (!skipLayerNameAndExpander) {\r\n legendHtml += '<span class=\"legend-items-expander\" title=\"Expand/Collapse\">▼</span>';\r\n }\r\n legendHtml += '<ul>';\r\n for (let i = 0; i < legendItems.length; i++) {\r\n legendHtml += `<li>`;\r\n legendHtml += `<span class=\"legend-layer-subitem\">${htmlEscape(legendItems[i]['label'])}</span>`;\r\n legendHtml += `<img class=\"legend-layer-icon\" height=\"17\" src=\"data:image/png;base64,${legendItems[i]['imageData']}\">`;\r\n legendHtml += `</li>`;\r\n }\r\n legendHtml += '</ul>';\r\n }\r\n\r\n if (!skipLayerNameAndExpander) {\r\n legendHtml = `<span class=\"legend-layer-subitem\">${layerName}</span>` + legendHtml;\r\n }\r\n\r\n return legendHtml;\r\n}\r\n\r\n/**\r\n * make map service legent\r\n * @param {object} esriResponse - layer info\r\n * @returns {string} legend content\r\n */\r\nexport function makeMapServiceLegend(esriResponse) {\r\n \"use strict\";\r\n\r\n let newLegendHtml = '';\r\n\r\n let layers = esriResponse['layers'];\r\n\r\n if (layers.length == 1) {\r\n newLegendHtml += mapServiceLegendItem(layers[0], true);\r\n } else {\r\n newLegendHtml += '<ul>';\r\n for (let i = 0; i < layers.length; i++) {\r\n newLegendHtml += '<li>' + mapServiceLegendItem(layers[i]) + '</li>';\r\n }\r\n newLegendHtml += '</ul>';\r\n }\r\n\r\n return newLegendHtml;\r\n}\r\n\r\nnm.makeMapServiceLegend = makeMapServiceLegend;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/olHelpers/esriToOlStyle.ts","/**\r\n * Created by gavorhes on 6/1/2016.\r\n */\r\n\r\n\r\nimport provide from '../util/provide';\r\nimport {LayerBase} from \"../layers/LayerBase\";\r\nimport ol = require('custom-ol');\r\nimport $ = require('jquery');\r\n\r\nlet nm = provide('collections.layerSwipe');\r\n\r\n\r\nclass LayerSwipe {\r\n leftLayers: Array<LayerBase>;\r\n rightLayers: Array<LayerBase>;\r\n _percentRight: number;\r\n _map: ol.Map;\r\n $mapElement: JQuery;\r\n $swiper: JQuery;\r\n dragging: boolean;\r\n offset: number;\r\n /**\r\n *\r\n * @param {ol.Map} map - the map\r\n * @param {string} [sliderContent=''] - additional html to be added inside the slider div\r\n */\r\n constructor(map: ol.Map, sliderContent: string = '') {\r\n\r\n sliderContent = sliderContent || '';\r\n /**\r\n *\r\n * @type {Array<LayerBase>}\r\n */\r\n this.leftLayers = [];\r\n\r\n /**\r\n *\r\n * @type {Array<LayerBase>}\r\n */\r\n this.rightLayers = [];\r\n\r\n this._percentRight = 50;\r\n this.offset = null;\r\n\r\n this._map = map;\r\n this.$mapElement = $(map.getTargetElement());\r\n this.$mapElement.append(`<div class=\"layer-swiper\">${sliderContent}</div>`);\r\n\r\n\r\n this.$swiper = this.$mapElement.find('.layer-swiper');\r\n this.percentRight = this.percentRight;\r\n\r\n this.dragging = false;\r\n\r\n this.$mapElement.mouseleave(() => {\r\n this.dragging = false;\r\n });\r\n\r\n this.$swiper.bind('mousewheel DOMMouseScroll', function(evt){\r\n evt.preventDefault();\r\n });\r\n\r\n this.$swiper.mousedown((evt) => {\r\n this.dragging = true;\r\n this.offset = evt.offsetX;\r\n });\r\n\r\n $(window).mouseup(() => {\r\n this.dragging = false;\r\n });\r\n\r\n this.$mapElement.mousemove((evt) => {\r\n if (this.dragging) {\r\n let mapLeft = this.$mapElement.position().left;\r\n let mapWidth = this.$mapElement.width();\r\n\r\n this.percentRight = 100 * (evt.pageX - this.offset - mapLeft) / mapWidth;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n *\r\n * @param {LayerBase|*} lyr - layer to be added to left side\r\n */\r\n addLeftLayer(lyr) {\r\n\r\n if (this.leftLayers.indexOf(lyr) != -1){\r\n return;\r\n }\r\n\r\n lyr.olLayer.on('precompose', (event) => {\r\n let ctx = event['context'];\r\n let width = ctx.canvas.width * (this.percentRight / 100);\r\n\r\n ctx.save();\r\n ctx.beginPath();\r\n ctx.rect(0, 0, width, ctx.canvas.height);\r\n ctx.clip();\r\n });\r\n\r\n lyr.olLayer.on('postcompose', function (event) {\r\n let ctx = event['context'];\r\n ctx.restore();\r\n });\r\n\r\n\r\n this.leftLayers.push(lyr);\r\n }\r\n\r\n /**\r\n *\r\n * @param {LayerBase|*} lyr - layer to be added to right side\r\n */\r\n addRightLayer(lyr) {\r\n\r\n if (this.rightLayers.indexOf(lyr) != -1){\r\n return;\r\n }\r\n\r\n lyr.olLayer.on('precompose', (event) => {\r\n let ctx = event['context'];\r\n let width = ctx.canvas.width * (this.percentRight / 100);\r\n\r\n ctx.save();\r\n ctx.beginPath();\r\n ctx.rect(width, 0, ctx.canvas.width - width, ctx.canvas.height);\r\n ctx.clip();\r\n });\r\n\r\n lyr.olLayer.on('postcompose', function (event) {\r\n let ctx = event['context'];\r\n ctx.restore();\r\n });\r\n\r\n this.rightLayers.push(lyr);\r\n }\r\n\r\n get percentRight() : number{\r\n return this._percentRight;\r\n }\r\n\r\n set percentRight(percent: number) {\r\n let maxed = this.$swiper.position().left + this.$swiper.width() > this.$mapElement.width();\r\n\r\n if (percent < 0) {\r\n return;\r\n } else if (maxed && percent > this.percentRight) {\r\n return;\r\n }\r\n\r\n this._percentRight = percent;\r\n this.$swiper.css('left', `${this._percentRight.toFixed(2)}%`);\r\n this._map.render();\r\n }\r\n}\r\n\r\nnm.LayerSwipe = LayerSwipe;\r\nexport default LayerSwipe;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/olHelpers/layerSwipe.ts","/**\r\n * Created by gavorhes on 6/1/2016.\r\n */\r\nimport {quickMap} from '../../src/olHelpers/quickMap';\r\nimport LayerSwipe from '../../src/olHelpers/layerSwipe';\r\nimport {LayerEsriMapServer} from '../../src/layers/LayerEsriMapServer';\r\n\r\nlet map = quickMap();\r\n\r\n\r\nlet swiper = new LayerSwipe(map);\r\n\r\n\r\nlet wisDotRegions = new LayerEsriMapServer(\r\n 'http://transportal.cee.wisc.edu/applications/arcgis2/rest/services/MetaManager/Metamanager_regions/MapServer',\r\n {\r\n minZoom: 6,\r\n maxZoom: 12,\r\n name: 'WisDOT Regions'\r\n });\r\n\r\nlet metamanagerSegments = new LayerEsriMapServer(\r\n 'http://transportal.cee.wisc.edu/applications/arcgis2/rest/services/MetaManager/MM_All_Segments/MapServer',\r\n {\r\n minZoom: 7,\r\n visible: true,\r\n name: 'Metamanager Segments'\r\n });\r\n\r\nlet truckSpeed2014 = new LayerEsriMapServer(\r\n 'http://transportal.cee.wisc.edu/applications/arcgis2/rest/services/NPMRDS/compareDynamic/MapServer',\r\n {\r\n minZoom: 7,\r\n visible: true,\r\n name: 'truck2014',\r\n showLayers: [8]\r\n });\r\n\r\nlet truckSpeed2015 = new LayerEsriMapServer(\r\n 'http://transportal.cee.wisc.edu/applications/arcgis2/rest/services/NPMRDS/compareDynamic/MapServer',\r\n {\r\n minZoom: 7,\r\n visible: true,\r\n name: 'truck2015',\r\n showLayers: [9]\r\n });\r\n\r\nmap.addLayer(wisDotRegions.olLayer);\r\nmap.addLayer(truckSpeed2014.olLayer);\r\nmap.addLayer(truckSpeed2015.olLayer);\r\nmap.addLayer(metamanagerSegments.olLayer);\r\n\r\n\r\nswiper.addLeftLayer(wisDotRegions);\r\nswiper.addRightLayer(metamanagerSegments);\r\n\r\nswiper.addLeftLayer(truckSpeed2014);\r\nswiper.addRightLayer(truckSpeed2015);\r\n\n\n\n// WEBPACK FOOTER //\n// ./test/demo/compare-test.ts"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 1b9d70c904b3cb6688ad?eabd*","webpack:///./src/util/provide.ts?76dd*","webpack:///external \"$\"?57aa*","webpack:///external \"ol\"?81ed*","webpack:///./src/util/makeGuid.ts?ca11*","webpack:///./src/olHelpers/mapPopup.ts?2889*","webpack:///./src/olHelpers/mapInteractionBase.ts?6975*","webpack:///./src/olHelpers/mapMove.ts?7a9b*","webpack:///./src/olHelpers/quickMap.ts?b6a4*","webpack:///./src/layers/LayerBase.ts?3803*","webpack:///./src/util/checkDefined.ts?b100*","webpack:///./src/layers/LayerEsriMapServer.ts?77b1","webpack:///./src/olHelpers/mapMoveCls.ts?3191*","webpack:///./src/olHelpers/mapPopupCls.ts?a22b*","webpack:///./src/olHelpers/quickMapBase.ts?b605*","webpack:///./src/olHelpers/zoomResolutionConvert.ts?d53b*","webpack:///./src/olHelpers/esriToOlStyle.ts?420c","webpack:///./src/olHelpers/layerSwipe.ts","webpack:///./test/demo/compare-test.ts"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;AChEA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,2wE;;;;;;AC7B3C,mB;;;;;;ACAA,oB;;;;;;;ACAA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,2CAA2C,u/C;;;;;;;ACpB3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,2CAA2C,mtB;;;;;;;ACZ3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,++H;;;;;;;AC5E3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,2CAA2C,2rB;;;;;;;ACZ3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO,YAAY;AAC9B,WAAW,OAAO;AAClB,WAAW,OAAO,mBAAmB;AACrC,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,u7E;;;;;;;ACnC3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,wBAAwB;AACnE;AACA;AACA,oGAAoG;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,2m0B;;;;;;;AClZ3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uqD;;;;;;;AC1B3C;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,wBAAwB;AACvC;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA,4EAA4E;AAC5E,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,qBAAqB,yBAAyB;AAC9C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,24Y;;;;;;;ACxJ3C;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,m6uB;;;;;;;AC9O3C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,gBAAgB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF,6EAA6E;AAC7E,8FAA8F;AAC9F,sCAAsC,QAAQ;AAC9C,yFAAyF;AACzF,sCAAsC,MAAM,OAAO,MAAM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,6CAA6C,8BAA8B;AAC3E,iDAAiD,wCAAwC;AACzF,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,cAAc;AAC7B,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,gBAAgB;AAC/B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,gBAAgB;AAC/B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,mn1C;;;;;;;AC5a3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,sCAAsC,8BAA8B;AACpE,yCAAyC,gDAAgD,aAAa,EAAE;AACxG,sCAAsC;AACtC,yCAAyC;AACzC;AACA;AACA,mDAAmD,WAAW,WAAW,yBAAyB;AAClG,6CAA6C,aAAa,aAAa,oBAAoB,eAAe,WAAW;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD,4CAA4C,oBAAoB,2BAA2B,oBAAoB;AAC/G;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,+inB;;;;;;;AC3F3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,2uJ;;;;;;;AC3E3C;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,OAAO;AAClB;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,6BAA6B;AAC7B,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qDAAqD,yCAAyC;AAC9F,qBAAqB;AACrB,iBAAiB;AACjB,iHAAiH;AACjH;AACA;AACA;AACA,8CAA8C,sBAAsB,yCAAyC;AAC7G,iBAAiB;AACjB,wGAAwG;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,0EAA0E;AAC1E,iDAAiD;AACjD,iDAAiD;AACjD,wDAAwD;AACxD,2DAA2D;AAC3D,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,0EAA0E;AAC1E,0EAA0E;AAC1E,iDAAiD;AACjD,iDAAiD;AACjD,wDAAwD;AACxD,2DAA2D;AAC3D,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,aAAa,OAAO;AACpB,cAAc,UAAU;AACxB,cAAc,OAAO;AACrB;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,8CAA8C,kCAAkC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA,8FAA8F;AAC9F;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA,+FAA+F;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,u5lC;;;;;;;;;;;;;;;;;ACpX3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA,2CAA2C,m6V;;;;;;;;;;;;;;;AC9H3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,+7H","file":"compare-test.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\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 35);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1b9d70c904b3cb6688ad","/**\r\n * Created by gavorhes on 12/10/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\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 var parts = namespace.split('.');\r\n var nameSpace = window['gv'];\r\n for (var i = 0; i < parts.length; i++) {\r\n var newObject = nameSpace[parts[i]];\r\n if (typeof newObject == 'undefined') {\r\n nameSpace[parts[i]] = {};\r\n }\r\n nameSpace = nameSpace[parts[i]];\r\n }\r\n return nameSpace;\r\n}\r\nprovide('util');\r\nwindow['gv'].util.provide = provide;\r\nexports.default = provide;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3ZpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUdIOzs7O0dBSUc7QUFDSCxpQkFBaUIsU0FBUztJQUN0QixZQUFZLENBQUM7SUFDYixFQUFFLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDO1FBQ2hDLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwQyxFQUFFLENBQUMsQ0FBQyxPQUFPLFNBQVMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1lBQ2pDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUVELFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFFcEMsa0JBQWUsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTAvMjAxNS5cclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIGNyZWF0ZSBhIG5hbWVzcGFjZSBvbiB0aGUgZ3Ygb2JqZWN0XHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UgdG8gY3JlYXRlXHJcbiAqIEByZXR1cm5zIHtvYmplY3R9IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5hbWVzcGFjZVxyXG4gKi9cclxuZnVuY3Rpb24gcHJvdmlkZShuYW1lc3BhY2Upe1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvd1snZ3YnXSA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgd2luZG93WydndiddID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBhcnRzID0gbmFtZXNwYWNlLnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgbmFtZVNwYWNlID0gd2luZG93WydndiddO1xyXG5cclxuICAgIGZvciAobGV0IGk9MDsgaTwgcGFydHMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGxldCBuZXdPYmplY3QgPSBuYW1lU3BhY2VbcGFydHNbaV1dO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG5ld09iamVjdCA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgICAgIG5hbWVTcGFjZVtwYXJ0c1tpXV0gPSB7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5hbWVTcGFjZSA9IG5hbWVTcGFjZVtwYXJ0c1tpXV07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5hbWVTcGFjZTtcclxufVxyXG5cclxucHJvdmlkZSgndXRpbCcpO1xyXG53aW5kb3dbJ2d2J10udXRpbC5wcm92aWRlID0gcHJvdmlkZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHByb3ZpZGU7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/util/provide.ts\n// module id = 0\n// module chunks = 0 1 2 3 4 5 6","module.exports = $;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"$\"\n// module id = 1\n// module chunks = 0 1 2 3 4 5 6","module.exports = ol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ol\"\n// module id = 2\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"./provide\");\r\nvar nm = provide_1.default('util');\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 var r = Math.random() * 16 | 0, v = c == 'x' ? r : r & 0x3 | 0x8;\r\n return v.toString(16);\r\n });\r\n}\r\nnm.makeGuid = makeGuid;\r\nexports.default = makeGuid;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUd1aWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYWtlR3VpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgscUNBQWdDO0FBQ2hDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFHekI7OztHQUdHO0FBQ0g7SUFDUSxNQUFNLENBQUMsc0NBQXNDO1NBQ3hDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUVqRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztBQUVmLENBQUM7QUFDRCxFQUFFLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUN2QixrQkFBZSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8zLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi9wcm92aWRlJztcclxubGV0IG5tID0gcHJvdmlkZSgndXRpbCcpO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBndWlkcyBhcmUgdXNlZCB0byB1bmlxdWVseSBpZGVudGlmeSBncm91cHMgYW5kIGZlYXR1cmVzXHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IGEgbmV3IGd1aWRcclxuICovXHJcbmZ1bmN0aW9uIG1ha2VHdWlkKCkge1xyXG4gICAgICAgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4J1xyXG4gICAgICAgICAgICAucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbiAoYykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHIgPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwLCB2ID0gYyA9PSAneCcgPyByIDogciAmIDB4MyB8IDB4ODtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxufVxyXG5ubS5tYWtlR3VpZCA9IG1ha2VHdWlkO1xyXG5leHBvcnQgZGVmYXVsdCBtYWtlR3VpZDtcclxuXHJcblxyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/util/makeGuid.ts\n// module id = 3\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar mapPopupCls_1 = require(\"./mapPopupCls\");\r\n/**\r\n * The single popup object catch is that it is common to multimap pages\r\n * @type {MapPopupCls}\r\n */\r\nexports.mapPopup = new mapPopupCls_1.default();\r\nexports.default = exports.mapPopup;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwUG9wdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBQb3B1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsNkNBQXdDO0FBRXhDOzs7R0FHRztBQUNVLFFBQUEsUUFBUSxHQUFHLElBQUkscUJBQVcsRUFBaUIsQ0FBQztBQUN6RCxrQkFBZSxnQkFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMy8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBNYXBQb3B1cENscyBmcm9tICcuL21hcFBvcHVwQ2xzJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2luZ2xlIHBvcHVwIG9iamVjdCBjYXRjaCBpcyB0aGF0IGl0IGlzIGNvbW1vbiB0byBtdWx0aW1hcCBwYWdlc1xyXG4gKiBAdHlwZSB7TWFwUG9wdXBDbHN9XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgbWFwUG9wdXAgPSBuZXcgTWFwUG9wdXBDbHMoKSBhcyBNYXBQb3B1cENscztcclxuZXhwb3J0IGRlZmF1bHQgbWFwUG9wdXA7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapPopup.ts\n// module id = 4\n// module chunks = 0 1 2 3","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Created by gavorhes on 12/8/2015.\r\n */\r\nvar provide_1 = require(\"../util/provide\");\r\nvar nm = provide_1.default('olHelpers');\r\n/**\r\n * base interaction\r\n */\r\nvar MapInteractionBase = (function () {\r\n /**\r\n * map interaction base\r\n * @param subtype - the interaction subtype\r\n */\r\n function MapInteractionBase(subtype) {\r\n this._map = null;\r\n this._initialized = false;\r\n this._subtype = subtype;\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 MapInteractionBase.prototype.init = function (theMap) {\r\n if (!this._initialized) {\r\n this._map = theMap;\r\n this._initialized = true;\r\n }\r\n };\r\n Object.defineProperty(MapInteractionBase.prototype, \"map\", {\r\n /**\r\n * get reference to the ol map object\r\n * @returns {ol.Map} the map object\r\n */\r\n get: function () {\r\n return this._map;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(MapInteractionBase.prototype, \"initialized\", {\r\n /**\r\n * get if is initialized\r\n * @returns {boolean} is initialized\r\n */\r\n get: function () {\r\n return this._initialized;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Check the initialization status and throw exception if not valid yet\r\n * @protected\r\n */\r\n MapInteractionBase.prototype._checkInit = function () {\r\n if (!this.initialized) {\r\n var 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 * Check the initialization status and throw exception if not valid yet\r\n */\r\n MapInteractionBase.prototype.checkInit = function () {\r\n this._checkInit();\r\n };\r\n return MapInteractionBase;\r\n}());\r\nexports.MapInteractionBase = MapInteractionBase;\r\nnm.MapInteractionBase = MapInteractionBase;\r\nexports.default = MapInteractionBase;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwSW50ZXJhY3Rpb25CYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWFwSW50ZXJhY3Rpb25CYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7O0dBRUc7QUFDSCwyQ0FBc0M7QUFFdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUloQzs7R0FFRztBQUNIO0lBS0k7OztPQUdHO0lBQ0gsNEJBQVksT0FBZTtRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlDQUFJLEdBQUosVUFBSyxNQUFjO1FBQ2YsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUEsQ0FBQztZQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztZQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQU1ELHNCQUFJLG1DQUFHO1FBSlA7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyQixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDJDQUFXO1FBSmY7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM3QixDQUFDOzs7T0FBQTtJQUVEOzs7T0FHRztJQUNILHVDQUFVLEdBQVY7UUFDSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksR0FBRyxHQUFNLElBQUksQ0FBQyxRQUFRLDRCQUF5QixDQUFDO1lBQ3BELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsTUFBTSxHQUFHLENBQUM7UUFDZCxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0NBQVMsR0FBVDtRQUNJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0wseUJBQUM7QUFBRCxDQUFDLEFBOURELElBOERDO0FBOURZLGdEQUFrQjtBQWdFL0IsRUFBRSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0FBQzNDLGtCQUFlLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvOC8yMDE1LlxyXG4gKi9cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnb2xIZWxwZXJzJyk7XHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiBiYXNlIGludGVyYWN0aW9uXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTWFwSW50ZXJhY3Rpb25CYXNlIHtcclxuICAgIF9tYXA6IG9sLk1hcDtcclxuICAgIF9pbml0aWFsaXplZDogYm9vbGVhbjtcclxuICAgIF9zdWJ0eXBlOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBtYXAgaW50ZXJhY3Rpb24gYmFzZVxyXG4gICAgICogQHBhcmFtIHN1YnR5cGUgLSB0aGUgaW50ZXJhY3Rpb24gc3VidHlwZVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihzdWJ0eXBlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9tYXAgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fc3VidHlwZSA9IHN1YnR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBiYXNlIGluaXRpYWxpemVyLCByZXR1cm5zIHRydWUgZm9yIGFscmVhZHkgaW5pdGlhbGl6ZWRcclxuICAgICAqIEBwYXJhbSB0aGVNYXAgLSB0aGUgb2wgTWFwXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIGZvciBhbHJlYWR5IGluaXRpYWxpemVkXHJcbiAgICAgKi9cclxuICAgIGluaXQodGhlTWFwOiBvbC5NYXApe1xyXG4gICAgICAgIGlmICghdGhpcy5faW5pdGlhbGl6ZWQpe1xyXG4gICAgICAgICAgICB0aGlzLl9tYXAgPSB0aGVNYXA7XHJcbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgcmVmZXJlbmNlIHRvIHRoZSBvbCBtYXAgb2JqZWN0XHJcbiAgICAgKiBAcmV0dXJucyB7b2wuTWFwfSB0aGUgbWFwIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBnZXQgbWFwKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgaWYgaXMgaW5pdGlhbGl6ZWRcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBpcyBpbml0aWFsaXplZFxyXG4gICAgICovXHJcbiAgICBnZXQgaW5pdGlhbGl6ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxpemVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgdGhlIGluaXRpYWxpemF0aW9uIHN0YXR1cyBhbmQgdGhyb3cgZXhjZXB0aW9uIGlmIG5vdCB2YWxpZCB5ZXRcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqL1xyXG4gICAgX2NoZWNrSW5pdCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgbGV0IG1zZyA9IGAke3RoaXMuX3N1YnR5cGV9IG9iamVjdCBub3QgaW5pdGlhbGl6ZWRgO1xyXG4gICAgICAgICAgICBhbGVydChtc2cpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhtc2cpO1xyXG4gICAgICAgICAgICB0aHJvdyBtc2c7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgdGhlIGluaXRpYWxpemF0aW9uIHN0YXR1cyBhbmQgdGhyb3cgZXhjZXB0aW9uIGlmIG5vdCB2YWxpZCB5ZXRcclxuICAgICAqL1xyXG4gICAgY2hlY2tJbml0KCl7XHJcbiAgICAgICAgdGhpcy5fY2hlY2tJbml0KCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbm5tLk1hcEludGVyYWN0aW9uQmFzZSA9IE1hcEludGVyYWN0aW9uQmFzZTtcclxuZXhwb3J0IGRlZmF1bHQgTWFwSW50ZXJhY3Rpb25CYXNlO1xyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapInteractionBase.ts\n// module id = 5\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar mapMoveCls_1 = require(\"./mapMoveCls\");\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\nexports.mapMove = new mapMoveCls_1.default();\r\nexports.default = exports.mapMove;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwTW92ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hcE1vdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUVILDJDQUFzQztBQUV0Qzs7O0dBR0c7QUFFVSxRQUFBLE9BQU8sR0FBRyxJQUFJLG9CQUFVLEVBQUUsQ0FBQztBQUN4QyxrQkFBZSxlQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8zLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IE1hcE1vdmVDbHMgZnJvbSAnLi9tYXBNb3ZlQ2xzJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2luZ2xlIG1hcCBtb3ZlIG9iamVjdCBjYXRjaCBpcyB0aGF0IGl0IGlzIGNvbW1vbiB0byBtdWx0aW1hcCBwYWdlc1xyXG4gKiBAdHlwZSB7TWFwTW92ZUNsc31cclxuICovXHJcblxyXG5leHBvcnQgY29uc3QgbWFwTW92ZSA9IG5ldyBNYXBNb3ZlQ2xzKCk7XHJcbmV4cG9ydCBkZWZhdWx0IG1hcE1vdmU7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapMove.ts\n// module id = 6\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 12/15/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar quickMapBase_1 = require(\"./quickMapBase\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar mapMove_1 = require(\"./mapMove\");\r\nvar mapPopup_1 = require(\"./mapPopup\");\r\nvar nm = provide_1.default('olHelpers');\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 {ol.Map} the ol map\r\n */\r\nfunction quickMap(options) {\r\n var m = quickMapBase_1.quickMapBase(options);\r\n mapMove_1.default.init(m);\r\n mapPopup_1.default.init(m);\r\n return m;\r\n}\r\nexports.quickMap = quickMap;\r\nnm.quickMap = quickMap;\r\nexports.default = quickMap;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2tNYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJxdWlja01hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsK0NBQTZEO0FBQzdELDJDQUFzQztBQUN0QyxxQ0FBZ0M7QUFDaEMsdUNBQWtDO0FBRWxDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFOUI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsa0JBQXlCLE9BQTBCO0lBQy9DLElBQUksQ0FBQyxHQUFHLDJCQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsaUJBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEIsa0JBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNiLENBQUM7QUFMRCw0QkFLQztBQUdELEVBQUUsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3ZCLGtCQUFlLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzE1LzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtxdWlja01hcE9wdGlvbnMsIHF1aWNrTWFwQmFzZX0gZnJvbSAnLi9xdWlja01hcEJhc2UnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFwTW92ZSBmcm9tICcuL21hcE1vdmUnO1xyXG5pbXBvcnQgbWFwUG9wdXAgZnJvbSAnLi9tYXBQb3B1cCc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5sZXQgbm0gPSBwcm92aWRlKCdvbEhlbHBlcnMnKTtcclxuXHJcbi8qKlxyXG4gKiBTZXRzIHVwIGEgbWFwIHdpdGggc29tZSBkZWZhdWx0IHBhcmFtZXRlcnMgYW5kIGluaXRpYWxpemVzXHJcbiAqIG1hcE1vdmUgYW5kIG1hcFBvcHVwXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucz17fV0gY29uZmlnIG9wdGlvbnNcclxuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmRpdklkPW1hcF0gbWFwIGRpdiBpZFxyXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMuY2VudGVyPXt9XSBjZW50ZXIgY29uZmlnIG9iamVjdFxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuY2VudGVyLng9LTEwMDE4Mzc4XSBjZW50ZXIgeCwgd2ViIG1lcmNhdG9yIHggb3IgbG9uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5jZW50ZXIueT01NTc0OTEwXSBjZW50ZXIgeSwgd2ViIG1lcmNhdG9yIHkgb3IgbGF0XHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56b29tPTddIHpvb20gbGV2ZWxcclxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSBtaW4gem9vbVxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIG1heCB6b29tXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuYmFzZVN3aXRjaGVyPXRydWVdIGlmIGFkZCBiYXNlIG1hcCBzd2l0Y2hlclxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmZ1bGxTY3JlZW49ZmFsc2VdIGlmIGFkZCBiYXNlIG1hcCBzd2l0Y2hlclxyXG4gKiBAcmV0dXJucyB7b2wuTWFwfSB0aGUgb2wgbWFwXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcXVpY2tNYXAob3B0aW9ucz8gOiBxdWlja01hcE9wdGlvbnMpOiBvbC5NYXAge1xyXG4gICAgbGV0IG0gPSBxdWlja01hcEJhc2Uob3B0aW9ucyk7XHJcbiAgICBtYXBNb3ZlLmluaXQobSk7XHJcbiAgICBtYXBQb3B1cC5pbml0KG0pO1xyXG4gICAgcmV0dXJuIG07XHJcbn1cclxuXHJcblxyXG5ubS5xdWlja01hcCA9IHF1aWNrTWFwO1xyXG5leHBvcnQgZGVmYXVsdCBxdWlja01hcDtcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/quickMap.ts\n// module id = 7\n// module chunks = 0 1 2 3","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar zoomResolutionConvert = require(\"../olHelpers/zoomResolutionConvert\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar makeGuid_1 = require(\"../util/makeGuid\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('layers');\r\n/**\r\n * The base layer class\r\n * @abstract\r\n */\r\nvar LayerBase = (function () {\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 function LayerBase(url, options) {\r\n if (options === void 0) { options = {}; }\r\n options = options || {};\r\n if (typeof url !== 'string') {\r\n throw 'Invalid URL';\r\n }\r\n this._url = url;\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 this.id = options.id || makeGuid_1.default();\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 if (this._opacity > 1) {\r\n this._opacity = 1;\r\n }\r\n else if (this._opacity < 0) {\r\n this._opacity = 0;\r\n }\r\n this._visible = typeof options.visible === 'boolean' ? options.visible : true;\r\n this._source = undefined;\r\n /**\r\n *\r\n * @protected\r\n */\r\n this._olLayer = undefined;\r\n this._loaded = false;\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 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 this.loadCallback = typeof options.loadCallback == 'function' ? options.loadCallback : function () {\r\n };\r\n this._legendContent = '';\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 }\r\n else {\r\n this._legendContent += \"<label class=\\\"legend-layer-name\\\">\" + this.name + \"</label>\";\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 * 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 LayerBase.prototype._load = function () {\r\n if (this.loaded == true) {\r\n return true;\r\n }\r\n else {\r\n this._loaded = true;\r\n return false;\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 LayerBase.prototype.getLegendDiv = function () {\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 * @param additionalContent - additional content to add to legend\r\n * @private\r\n */\r\n LayerBase.prototype._addLegendContent = function (additionalContent) {\r\n if (additionalContent === void 0) { additionalContent = ''; }\r\n var addCollapse = additionalContent.indexOf('<ul>') > -1;\r\n if (addCollapse) {\r\n additionalContent = '<span class=\"legend-items-expander\" title=\"Expand/Collapse\">▼</span>' + additionalContent;\r\n }\r\n this._legendContent += additionalContent;\r\n this._$legendDiv = $(\"#\" + this.id + \"-legend-layer-div\");\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 * add additional content to the legend\r\n * @param {string} [additionalContent=] - additonal content to add\r\n */\r\n LayerBase.prototype.addLegendContent = function (additionalContent) {\r\n this._addLegendContent(additionalContent);\r\n };\r\n LayerBase.prototype.applyCollapse = function () {\r\n if (this._applyCollapseCalled) {\r\n console.log('collapse already applied');\r\n return undefined;\r\n }\r\n this._$legendDiv = $(\"#\" + this.id + \"-legend-layer-div\");\r\n if (this._$legendDiv.length > 0) {\r\n var $expander = this._$legendDiv.find('.legend-items-expander');\r\n if ($expander.length > 0) {\r\n this._applyCollapseCalled = true;\r\n $expander.click(function () {\r\n var $this = $(this);\r\n $this.siblings('ul').slideToggle();\r\n if ($this.hasClass('legend-layer-group-collapsed')) {\r\n $this.removeClass('legend-layer-group-collapsed');\r\n $this.html('▼');\r\n }\r\n else {\r\n $this.addClass('legend-layer-group-collapsed');\r\n $this.html('▶');\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 * trick to refresh the layer\r\n */\r\n LayerBase.prototype.refresh = function () {\r\n if (this.source) {\r\n this.source.refresh();\r\n }\r\n };\r\n Object.defineProperty(LayerBase.prototype, \"id\", {\r\n get: function () {\r\n return this._id;\r\n },\r\n set: function (newId) {\r\n this._id = newId;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"animate\", {\r\n get: function () {\r\n return this._animate;\r\n },\r\n set: function (animate) {\r\n this._animate = animate;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"legendContent\", {\r\n /**\r\n * get the legend content\r\n * @type {string}\r\n */\r\n get: function () {\r\n return this._legendContent;\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: function (newVal) {\r\n this._legendContent = newVal;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"params\", {\r\n /**\r\n * get the map get params\r\n * @type {object}\r\n */\r\n get: function () {\r\n return this._params;\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: function (newParams) {\r\n this._params = newParams;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"minResolution\", {\r\n /**\r\n * get the minimum resolution\r\n * @type {number|*}\r\n */\r\n get: function () {\r\n return this._minResolution;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"maxResolution\", {\r\n /**\r\n * get the maximum resolution\r\n * @type {number|*}\r\n */\r\n get: function () {\r\n return this._maxResolution;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"minZoom\", {\r\n /**\r\n * get min zoom\r\n * @type {number|*}\r\n */\r\n get: function () {\r\n return this._minZoom;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"maxZoom\", {\r\n /**\r\n * get max zoom\r\n * @type {number|*}\r\n */\r\n get: function () {\r\n return this._maxZoom;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"url\", {\r\n /**\r\n * get the url\r\n * @type {string}\r\n */\r\n get: function () {\r\n return this._url;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"visible\", {\r\n /**\r\n * Get the layer visibility\r\n * @type {boolean}\r\n */\r\n get: function () {\r\n return this._visible;\r\n },\r\n /**\r\n * set the visibility\r\n * @param visibility\r\n */\r\n set: function (visibility) {\r\n this.setVisible(visibility);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LayerBase.prototype.setVisible = function (visibility) {\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 Object.defineProperty(LayerBase.prototype, \"opacity\", {\r\n /**\r\n * Get the layer opacity\r\n * @type {number}\r\n */\r\n get: function () {\r\n return this._opacity;\r\n },\r\n /**\r\n * Set the layer opacity\r\n * @param {number} opacity - layer opacity\r\n */\r\n set: function (opacity) {\r\n this._opacity = opacity;\r\n if (this.olLayer) {\r\n this.olLayer.setOpacity(this._opacity);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"name\", {\r\n /**\r\n * Get the layer name\r\n * @type {string}\r\n */\r\n get: function () {\r\n return this._name;\r\n },\r\n /**\r\n * set the layer name\r\n * @param {string} newName - the new name\r\n */\r\n set: function (newName) {\r\n this._name = newName;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"loaded\", {\r\n /**\r\n * Check if the layer is loaded\r\n * @type {boolean}\r\n */\r\n get: function () {\r\n return this._loaded;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"source\", {\r\n /**\r\n * get the layer source\r\n * @type {*}\r\n */\r\n get: function () {\r\n return this.getSource();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LayerBase.prototype.getSource = function () {\r\n return this._source;\r\n };\r\n Object.defineProperty(LayerBase.prototype, \"zIndex\", {\r\n /**\r\n * get the z index\r\n */\r\n get: function () {\r\n return this._zIndex;\r\n },\r\n /**\r\n * set the z index\r\n */\r\n set: function (newZ) {\r\n this._zIndex = newZ;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LayerBase.prototype.setZIndex = function (newZ) {\r\n };\r\n Object.defineProperty(LayerBase.prototype, \"olLayer\", {\r\n /**\r\n * the the ol layer\r\n */\r\n get: function () {\r\n return this.getOlLayer();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LayerBase.prototype.getOlLayer = function () {\r\n return this._olLayer;\r\n };\r\n return LayerBase;\r\n}());\r\nexports.LayerBase = LayerBase;\r\nnm.LayerBase = LayerBase;\r\nexports.default = LayerBase;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMEVBQTRFO0FBQzVFLDJDQUFzQztBQUV0Qyw2Q0FBd0M7QUFDeEMsMEJBQTZCO0FBRTdCLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFtQjdCOzs7R0FHRztBQUNIO0lBMEJJOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsbUJBQVksR0FBVyxFQUFFLE9BQThCO1FBQTlCLHdCQUFBLEVBQUEsWUFBOEI7UUFDbkQsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFzQixDQUFDO1FBRTVDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxhQUFhLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBR2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxPQUFPLENBQUMsTUFBTSxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUN2RSxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sT0FBTyxDQUFDLGNBQWMsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDbkcsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxjQUFjLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBRWxHLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxrQkFBUSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLGVBQWUsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMs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QixDQUFDOzs7T0FBQTtJQUVTLDhCQUFVLEdBQXBCO1FBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUNMLGdCQUFDO0FBQUQsQ0FBQyxBQXhaRCxJQXdaQztBQXhacUIsOEJBQVM7QUEwWi9CLEVBQUUsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0FBQ3pCLGtCQUFlLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHpvb21SZXNvbHV0aW9uQ29udmVydCBmcm9tICcuLi9vbEhlbHBlcnMvem9vbVJlc29sdXRpb25Db252ZXJ0JztcclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCBtYWtlR3VpZCBmcm9tICcuLi91dGlsL21ha2VHdWlkJztcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckJhc2VPcHRpb25ze1xyXG4gICAgaWQ/OiBzdHJpbmc7XHJcbiAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgb3BhY2l0eT86IG51bWJlcjtcclxuICAgIHZpc2libGU/OiBib29sZWFuO1xyXG4gICAgbWluWm9vbT86IG51bWJlcjtcclxuICAgIG1heFpvb20/OiBudW1iZXI7XHJcbiAgICBwYXJhbXM/OiBhbnk7XHJcbiAgICB6SW5kZXg/OiBudW1iZXI7XHJcbiAgICBsb2FkQ2FsbGJhY2s/OiBGdW5jdGlvbjtcclxuICAgIGxlZ2VuZENvbGxhcHNlPzogYm9vbGVhbjtcclxuICAgIGxlZ2VuZENoZWNrYm94PzogYm9vbGVhbjtcclxuICAgIGxlZ2VuZENvbnRlbnQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGhlIGJhc2UgbGF5ZXIgY2xhc3NcclxuICogQGFic3RyYWN0XHJcbiAqL1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGF5ZXJCYXNlIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgX2xlZ2VuZENoZWNrYm94OiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF91cmw6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBfb3BhY2l0eTogbnVtYmVyO1xyXG4gICAgcHJvdGVjdGVkIF9taW5ab29tOiBudW1iZXI7XHJcbiAgICBwcm90ZWN0ZWQgX21heFpvb206IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCBfdmlzaWJsZTogYm9vbGVhbjtcclxuICAgIHByb3RlY3RlZCBfbG9hZGVkOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF96SW5kZXg6IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCBfbGVnZW5kQ29udGVudDogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIF9wYXJhbXM6IGFueTtcclxuICAgIHByb3RlY3RlZCBfaWQ6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBfbmFtZTogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIF9zb3VyY2U6IG9sLnNvdXJjZS5Tb3VyY2U7XHJcbiAgICBwcm90ZWN0ZWQgX2FuaW1hdGU6IGJvb2xlYW47XHJcbiAgICBwcm90ZWN0ZWQgX2xlZ2VuZENvbGxhcHNlOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF9tYXhSZXNvbHV0aW9uOiBudW1iZXI7XHJcbiAgICBwcm90ZWN0ZWQgX21pblJlc29sdXRpb246IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCAgXyRsZWdlbmREaXY6IEpRdWVyeTtcclxuICAgIGxvYWRDYWxsYmFjazogRnVuY3Rpb247XHJcbiAgICBwcm90ZWN0ZWQgX29sTGF5ZXI6IG9sLmxheWVyLkxheWVyO1xyXG4gICAgcHJvdGVjdGVkIF9hcHBseUNvbGxhcHNlQ2FsbGVkOiBib29sZWFuO1xyXG5cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYmFzZSBsYXllciBmb3IgYWxsIG90aGVyc1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIHVybCBmb3Igc291cmNlXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmlkPW1ha2VHdWlkKCldIC0gbGF5ZXIgaWRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5uYW1lPVVubmFtZWQgTGF5ZXJdIC0gbGF5ZXIgbmFtZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm9wYWNpdHk9MV0gLSBvcGFjaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnZpc2libGU9dHJ1ZV0gLSBkZWZhdWx0IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5ab29tPXVuZGVmaW5lZF0gLSBtaW4gem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIC0gbWF4IHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnBhcmFtcz17fV0gLSB0aGUgZ2V0IHBhcmFtZXRlcnMgdG8gaW5jbHVkZSB0byByZXRyaWV2ZSB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56SW5kZXg9MF0gLSB0aGUgeiBpbmRleCBmb3IgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy5sb2FkQ2FsbGJhY2tdIC0gZnVuY3Rpb24gdG8gY2FsbCBvbiBsb2FkLCBjb250ZXh0IHRoaXMgaXMgdGhlIGxheWVyIG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb2xsYXBzZT1mYWxzZV0gLSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGJlIGluaXRpYWxseSBjb2xsYXBzZWRcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ2hlY2tib3g9dHJ1ZV0gLSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGhhdmUgYSBjaGVja2JveCBmb3IgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb250ZW50PXVuZGVmaW5lZF0gLSBhZGRpdGlvbmFsIGNvbnRlbnQgdG8gYWRkIHRvIHRoZSBsZWdlbmRcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IodXJsOiBzdHJpbmcsIG9wdGlvbnM6IExheWVyQmFzZU9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9IGFzIExheWVyQmFzZU9wdGlvbnM7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdXJsICE9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB0aHJvdyAnSW52YWxpZCBVUkwnO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl91cmwgPSB1cmw7XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9wYXJhbXMgPSB0eXBlb2Ygb3B0aW9ucy5wYXJhbXMgPT0gJ29iamVjdCcgPyBvcHRpb25zLnBhcmFtcyA6IHt9O1xyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbGxhcHNlID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kQ29sbGFwc2UgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5sZWdlbmRDb2xsYXBzZSA6IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENoZWNrYm94ID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kQ2hlY2tib3ggPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5sZWdlbmRDaGVja2JveCA6IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuaWQgPSBvcHRpb25zLmlkIHx8IG1ha2VHdWlkKCk7XHJcbiAgICAgICAgdGhpcy5fbmFtZSA9IG9wdGlvbnMubmFtZSB8fCAnVW5uYW1lZCBMYXllcic7XHJcbiAgICAgICAgdGhpcy5hbmltYXRlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IHR5cGVvZiBvcHRpb25zLm9wYWNpdHkgPT0gJ251bWJlcicgPyBvcHRpb25zLm9wYWNpdHkgOiAxO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fb3BhY2l0eSA+IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5fb3BhY2l0eSA9IDE7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9vcGFjaXR5IDwgMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9vcGFjaXR5ID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB0eXBlb2Ygb3B0aW9ucy52aXNpYmxlID09PSAnYm9vbGVhbicgPyBvcHRpb25zLnZpc2libGUgOiB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLl9zb3VyY2UgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByb3RlY3RlZFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuX21heFJlc29sdXRpb24gPSB6b29tUmVzb2x1dGlvbkNvbnZlcnQuem9vbVRvUmVzb2x1dGlvbihvcHRpb25zLm1pblpvb20pO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5fbWF4UmVzb2x1dGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5fbWF4UmVzb2x1dGlvbiArPSAwLjAwMDAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9taW5SZXNvbHV0aW9uID0gem9vbVJlc29sdXRpb25Db252ZXJ0Lnpvb21Ub1Jlc29sdXRpb24ob3B0aW9ucy5tYXhab29tKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWluWm9vbSA9IHR5cGVvZiBvcHRpb25zLm1pblpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLm1pblpvb20gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbWF4Wm9vbSA9IHR5cGVvZiBvcHRpb25zLm1heFpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLm1heFpvb20gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fekluZGV4ID0gdHlwZW9mIG9wdGlvbnMuekluZGV4ID09ICdudW1iZXInID8gb3B0aW9ucy56SW5kZXggOiAwO1xyXG5cclxuICAgICAgICB0aGlzLmxvYWRDYWxsYmFjayA9IHR5cGVvZiBvcHRpb25zLmxvYWRDYWxsYmFjayA9PSAnZnVuY3Rpb24nID8gb3B0aW9ucy5sb2FkQ2FsbGJhY2sgOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgfTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgPSAnJztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2xlZ2VuZENoZWNrYm94KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgKz0gYDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiAke3RoaXMudmlzaWJsZSA/ICdjaGVja2VkJyA6ICcnfSBgICtcclxuICAgICAgICAgICAgICAgIGBjbGFzcz1cImxlZ2VuZC1jaGVja1wiIGlkPVwiJHt0aGlzLmlkfS1sZWdlbmQtbGF5ZXItY2hlY2tcIj48c3Bhbj48L3NwYW4+YDtcclxuICAgICAgICAgICAgdGhpcy5fbGVnZW5kQ29udGVudCArPSBgPGxhYmVsIGZvcj1cIiR7dGhpcy5pZH0tbGVnZW5kLWxheWVyLWNoZWNrXCIgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbmFtZVwiPiR7dGhpcy5uYW1lfTwvbGFiZWw+YDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9sZWdlbmRDb250ZW50ICs9IGA8bGFiZWwgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbmFtZVwiPiR7dGhpcy5uYW1lfTwvbGFiZWw+YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuXyRsZWdlbmREaXYgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2FwcGx5Q29sbGFwc2VDYWxsZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9hZGRMZWdlbmRDb250ZW50KHR5cGVvZiBvcHRpb25zLmxlZ2VuZENvbnRlbnQgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5sZWdlbmRDb250ZW50IDogdW5kZWZpbmVkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGJhc2UgbG9hZCBmdW5jdGlvbiwgc2V0cyBfbG9hZGVkID0gdHJ1ZSBpZiBpdCBpcyBub3QgYWxyZWFkeVxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IGlmIGFscmVhZHkgbG9hZGVkXHJcbiAgICAgKi9cclxuICAgIF9sb2FkKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmxvYWRlZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHRoZSBsZWdlbmQgaHRtbCwgYmUgc3VyZSB0byBvbmx5IGFkZCB0byB0aGUgRE9NIG9uY2VcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IGh0bWwgZm9yIGxheWVyIHdyYXBwZWQgaW4gYSBkaXZcclxuICAgICAqL1xyXG4gICAgZ2V0TGVnZW5kRGl2KCkge1xyXG4gICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImxlZ2VuZC1sYXllci1kaXZcIiBpZD1cIiR7dGhpcy5pZH0tbGVnZW5kLWxheWVyLWRpdlwiPiR7dGhpcy5fbGVnZW5kQ29udGVudH08L2Rpdj5gO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBhZGRpdGlvbmFsQ29udGVudCAtIGFkZGl0aW9uYWwgY29udGVudCB0byBhZGQgdG8gbGVnZW5kXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBfYWRkTGVnZW5kQ29udGVudChhZGRpdGlvbmFsQ29udGVudD0nJykge1xyXG5cclxuICAgICAgICBsZXQgYWRkQ29sbGFwc2UgPSBhZGRpdGlvbmFsQ29udGVudC5pbmRleE9mKCc8dWw+JykgPiAtMTtcclxuXHJcbiAgICAgICAgaWYgKGFkZENvbGxhcHNlKSB7XHJcbiAgICAgICAgICAgIGFkZGl0aW9uYWxDb250ZW50ID0gJzxzcGFuIGNsYXNzPVwibGVnZW5kLWl0ZW1zLWV4cGFuZGVyXCIgdGl0bGU9XCJFeHBhbmQvQ29sbGFwc2VcIj4mIzk2NjA7PC9zcGFuPicgKyBhZGRpdGlvbmFsQ29udGVudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgKz0gYWRkaXRpb25hbENvbnRlbnQ7XHJcblxyXG4gICAgICAgIHRoaXMuXyRsZWdlbmREaXYgPSAkKGAjJHt0aGlzLmlkfS1sZWdlbmQtbGF5ZXItZGl2YCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl8kbGVnZW5kRGl2Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5fJGxlZ2VuZERpdi5hcHBlbmQoYWRkaXRpb25hbENvbnRlbnQpO1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5Q29sbGFwc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhZGQgYWRkaXRpb25hbCBjb250ZW50IHRvIHRoZSBsZWdlbmRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbYWRkaXRpb25hbENvbnRlbnQ9XSAtIGFkZGl0b25hbCBjb250ZW50IHRvIGFkZFxyXG4gICAgICovXHJcbiAgICBhZGRMZWdlbmRDb250ZW50KGFkZGl0aW9uYWxDb250ZW50KSB7XHJcbiAgICAgICAgdGhpcy5fYWRkTGVnZW5kQ29udGVudChhZGRpdGlvbmFsQ29udGVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXBwbHlDb2xsYXBzZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5fYXBwbHlDb2xsYXBzZUNhbGxlZCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY29sbGFwc2UgYWxyZWFkeSBhcHBsaWVkJyk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fJGxlZ2VuZERpdiA9ICQoYCMke3RoaXMuaWR9LWxlZ2VuZC1sYXllci1kaXZgKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuXyRsZWdlbmREaXYubGVuZ3RoID4gMCkge1xyXG5cclxuICAgICAgICAgICAgbGV0ICRleHBhbmRlciA9IHRoaXMuXyRsZWdlbmREaXYuZmluZCgnLmxlZ2VuZC1pdGVtcy1leHBhbmRlcicpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCRleHBhbmRlci5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hcHBseUNvbGxhcHNlQ2FsbGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAkZXhwYW5kZXIuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCAkdGhpcyA9ICQodGhpcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICR0aGlzLnNpYmxpbmdzKCd1bCcpLnNsaWRlVG9nZ2xlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy5oYXNDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLnJlbW92ZUNsYXNzKCdsZWdlbmQtbGF5ZXItZ3JvdXAtY29sbGFwc2VkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLmh0bWwoJyYjOTY2MDsnKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5hZGRDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5odG1sKCcmIzk2NTQ7Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2xlZ2VuZENvbGxhcHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJGV4cGFuZGVyLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmljayB0byByZWZyZXNoIHRoZSBsYXllclxyXG4gICAgICovXHJcbiAgICByZWZyZXNoKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNvdXJjZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNvdXJjZS5yZWZyZXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBpZCgpOiBzdHJpbmd7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lkO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBpZChuZXdJZDogc3RyaW5nKXtcclxuICAgICAgICB0aGlzLl9pZCA9IG5ld0lkO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhbmltYXRlKCk6IGJvb2xlYW57XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FuaW1hdGU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGFuaW1hdGUoYW5pbWF0ZTogYm9vbGVhbil7XHJcbiAgICAgICAgdGhpcy5fYW5pbWF0ZSA9IGFuaW1hdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIGxlZ2VuZCBjb250ZW50XHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICovXHJcbiAgICBnZXQgbGVnZW5kQ29udGVudCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbGVnZW5kQ29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgbGVnZW5kIGNvbnRlbnQgZGlyZWN0bHlcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuZXdWYWwgLSBuZXcgY29udGVudFxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICovXHJcbiAgICBzZXQgbGVnZW5kQ29udGVudChuZXdWYWwpIHtcclxuICAgICAgICB0aGlzLl9sZWdlbmRDb250ZW50ID0gbmV3VmFsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtYXAgZ2V0IHBhcmFtc1xyXG4gICAgICogQHR5cGUge29iamVjdH1cclxuICAgICAqL1xyXG4gICAgZ2V0IHBhcmFtcygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IHRoZSBtYXAgZ2V0IHBhcmFtc1xyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IG5ld1BhcmFtcyAtIG5ldyBnZXQgcGFyYW1zXHJcbiAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgKi9cclxuICAgIHNldCBwYXJhbXMobmV3UGFyYW1zKSB7XHJcbiAgICAgICAgdGhpcy5fcGFyYW1zID0gbmV3UGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtaW5pbXVtIHJlc29sdXRpb25cclxuICAgICAqIEB0eXBlIHtudW1iZXJ8Kn1cclxuICAgICAqL1xyXG4gICAgZ2V0IG1pblJlc29sdXRpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pblJlc29sdXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIG1heGltdW0gcmVzb2x1dGlvblxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWF4UmVzb2x1dGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4UmVzb2x1dGlvbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCBtaW4gem9vbVxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWluWm9vbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWluWm9vbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCBtYXggem9vbVxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWF4Wm9vbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4Wm9vbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgdXJsXHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICovXHJcbiAgICBnZXQgdXJsKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91cmw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGxheWVyIHZpc2liaWxpdHlcclxuICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHZpc2liaWxpdHlcclxuICAgICAqL1xyXG4gICAgc2V0IHZpc2libGUodmlzaWJpbGl0eTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuc2V0VmlzaWJsZSh2aXNpYmlsaXR5KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0VmlzaWJsZSh2aXNpYmlsaXR5OiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZpc2liaWxpdHk7XHJcbiAgICAgICAgaWYgKHRoaXMub2xMYXllcikge1xyXG4gICAgICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0VmlzaWJsZSh0aGlzLl92aXNpYmxlKTtcclxuICAgICAgICAgICAgaWYgKHZpc2liaWxpdHkgJiYgIXRoaXMuX2xvYWRlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCB0aGUgbGF5ZXIgb3BhY2l0eVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqL1xyXG4gICAgZ2V0IG9wYWNpdHkoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wYWNpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIGxheWVyIG9wYWNpdHlcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvcGFjaXR5IC0gbGF5ZXIgb3BhY2l0eVxyXG4gICAgICovXHJcbiAgICBzZXQgb3BhY2l0eShvcGFjaXR5KSB7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IG9wYWNpdHk7XHJcbiAgICAgICAgaWYgKHRoaXMub2xMYXllcikge1xyXG4gICAgICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0T3BhY2l0eSh0aGlzLl9vcGFjaXR5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGxheWVyIG5hbWVcclxuICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgKi9cclxuICAgIGdldCBuYW1lKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9uYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IHRoZSBsYXllciBuYW1lXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3TmFtZSAtIHRoZSBuZXcgbmFtZVxyXG4gICAgICovXHJcbiAgICBzZXQgbmFtZShuZXdOYW1lKSB7XHJcbiAgICAgICAgdGhpcy5fbmFtZSA9IG5ld05hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGUgbGF5ZXIgaXMgbG9hZGVkXHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqL1xyXG4gICAgZ2V0IGxvYWRlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBsYXllciBzb3VyY2VcclxuICAgICAqIEB0eXBlIHsqfVxyXG4gICAgICovXHJcbiAgICBnZXQgc291cmNlKCk6IG9sLnNvdXJjZS5Tb3VyY2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNvdXJjZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0U291cmNlKCk6IG9sLnNvdXJjZS5Tb3VyY2V7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgeiBpbmRleFxyXG4gICAgICovXHJcbiAgICBnZXQgekluZGV4KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3pJbmRleDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgeiBpbmRleFxyXG4gICAgICovXHJcbiAgICBzZXQgekluZGV4KG5ld1o6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX3pJbmRleCA9IG5ld1o7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHNldFpJbmRleChuZXdaOiBudW1iZXIpe1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHRoZSB0aGUgb2wgbGF5ZXJcclxuICAgICAqL1xyXG4gICAgZ2V0IG9sTGF5ZXIoKTogb2wubGF5ZXIuTGF5ZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE9sTGF5ZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0T2xMYXllcigpOiBvbC5sYXllci5MYXllcntcclxuICAgICAgICByZXR1cm4gdGhpcy5fb2xMYXllcjtcclxuICAgIH1cclxufVxyXG5cclxubm0uTGF5ZXJCYXNlID0gTGF5ZXJCYXNlO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckJhc2U7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/layers/LayerBase.ts\n// module id = 8\n// module chunks = 0 1 2 3","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"./provide\");\r\nvar nm = provide_1.default('util.checkDefined');\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\nfunction undefinedOrNull(input) {\r\n \"use strict\";\r\n return (typeof input === 'undefined' || input === null);\r\n}\r\nexports.undefinedOrNull = undefinedOrNull;\r\nnm.undefinedOrNull = undefinedOrNull;\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\nfunction definedAndNotNull(input) {\r\n \"use strict\";\r\n return !(undefinedOrNull(input));\r\n}\r\nexports.definedAndNotNull = definedAndNotNull;\r\nnm.definedAndNotNull = definedAndNotNull;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tEZWZpbmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2hlY2tEZWZpbmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscUNBQWdDO0FBQ2hDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUV0Qzs7OztHQUlHO0FBQ0gseUJBQWlDLEtBQUs7SUFDbEMsWUFBWSxDQUFDO0lBRWIsTUFBTSxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBSkQsMENBSUM7QUFFRCxFQUFFLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztBQUdyQzs7OztHQUlHO0FBQ0gsMkJBQW1DLEtBQVU7SUFDekMsWUFBWSxDQUFDO0lBRWIsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBSkQsOENBSUM7QUFFRCxFQUFFLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcHJvdmlkZSBmcm9tICcuL3Byb3ZpZGUnO1xyXG5sZXQgbm0gPSBwcm92aWRlKCd1dGlsLmNoZWNrRGVmaW5lZCcpO1xyXG5cclxuLyoqXHJcbiAqIGNoZWNrIGlmIHRoZSBpbnB1dCBpcyB1bmRlZmluZWQgb3IgbnVsbFxyXG4gKiBAcGFyYW0gaW5wdXQgLSBpbnB1dCBwb2ludGVyXHJcbiAqIEByZXR1cm5zIHRydWUgdW5kZWZpbmVkIG9yIG51bGxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1bmRlZmluZWRPck51bGwgKGlucHV0KTogYm9vbGVhbntcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG5cclxuICAgIHJldHVybiAodHlwZW9mIGlucHV0ID09PSAndW5kZWZpbmVkJyB8fCBpbnB1dCA9PT0gbnVsbCk7XHJcbn1cclxuXHJcbm5tLnVuZGVmaW5lZE9yTnVsbCA9IHVuZGVmaW5lZE9yTnVsbDtcclxuXHJcblxyXG4vKipcclxuICogY2hlY2sgaWYgdGhlIGlucHV0IGlzIGRlZmluZWQgYW5kIG5vdCBudWxsXHJcbiAqIEBwYXJhbSBpbnB1dCAtIGlucHV0IHBvaW50ZXJcclxuICogQHJldHVybnMgdHJ1ZSBkZWZpbmVkIGFuZCBub3QgbnVsbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZWRBbmROb3ROdWxsIChpbnB1dDogYW55KTogYm9vbGVhbntcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG5cclxuICAgIHJldHVybiAhKHVuZGVmaW5lZE9yTnVsbChpbnB1dCkpO1xyXG59XHJcblxyXG5ubS5kZWZpbmVkQW5kTm90TnVsbCA9IGRlZmluZWRBbmROb3ROdWxsO1xyXG5cclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/util/checkDefined.ts\n// module id = 9\n// module chunks = 0 1 2 3","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Created by gavorhes on 12/7/2015.\r\n */\r\nvar LayerBase_1 = require(\"./LayerBase\");\r\nvar esriToOl = require(\"../olHelpers/esriToOlStyle\");\r\nvar mapPopup_1 = require(\"../olHelpers/mapPopup\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('layers');\r\n/**\r\n * esri mapserver layer\r\n * @augments LayerBase\r\n */\r\nvar LayerEsriMapServer = (function (_super) {\r\n __extends(LayerEsriMapServer, _super);\r\n /**\r\n * The base layer for all others\r\n * @param {string} url - resource url\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.addPopup=false] if a popup should be added\r\n * @param {undefined|Array<number>} [options.showLayers=undefined] if a popup should be added\r\n */\r\n function LayerEsriMapServer(url, options) {\r\n if (options === void 0) { options = {}; }\r\n var _this = _super.call(this, url, options) || this;\r\n _this._source = new ol.source.TileArcGISRest({\r\n url: _this.url == '' ? undefined : _this.url,\r\n params: typeof options.showLayers == 'undefined' ? undefined : { layers: 'show:' + options.showLayers.join(',') }\r\n });\r\n _this._olLayer = new ol.layer.Tile({\r\n source: _this._source,\r\n visible: _this.visible,\r\n opacity: _this.opacity,\r\n minResolution: _this._minResolution,\r\n maxResolution: _this._maxResolution\r\n });\r\n _this._olLayer.setZIndex(_this._zIndex);\r\n options.addPopup = typeof options.addPopup == 'boolean' ? options.addPopup : false;\r\n _this._esriFormat = new ol.format.EsriJSON();\r\n _this._popupRequest = null;\r\n _this.addLegendContent();\r\n if (options.addPopup) {\r\n mapPopup_1.default.addMapServicePopup(_this);\r\n }\r\n return _this;\r\n }\r\n /**\r\n * add additional content to the legend\r\n * @param {string} [additionalContent=''] additional content for legend\r\n */\r\n LayerEsriMapServer.prototype.addLegendContent = function (additionalContent) {\r\n var _this = this;\r\n var urlCopy = this.url;\r\n if (urlCopy[urlCopy.length - 1] !== '/') {\r\n urlCopy += '/';\r\n }\r\n urlCopy += 'legend?f=pjson&callback=?';\r\n $.get(urlCopy, {}, function (d) {\r\n var newHtml = esriToOl.makeMapServiceLegend(d);\r\n _super.prototype.addLegendContent.call(_this, newHtml);\r\n }, 'json');\r\n };\r\n LayerEsriMapServer.prototype.getPopupInfo = function (queryParams) {\r\n if (!this.visible) {\r\n return;\r\n }\r\n var urlCopy = this.url;\r\n if (urlCopy[urlCopy.length - 1] != '/') {\r\n urlCopy += '/';\r\n }\r\n urlCopy += 'identify?callback=?';\r\n var __this = this;\r\n if (this._popupRequest != null) {\r\n this._popupRequest.abort();\r\n }\r\n this._popupRequest = $.get(urlCopy, queryParams, function (d) {\r\n for (var _i = 0, _a = d['results']; _i < _a.length; _i++) {\r\n var r = _a[_i];\r\n var popupHtml = '<table class=\"esri-popup-table\">';\r\n for (var a in r['attributes']) {\r\n if (r['attributes'].hasOwnProperty(a)) {\r\n var attrVal = r['attributes'][a];\r\n if (attrVal == null || attrVal.toString().toLowerCase() == 'null') {\r\n continue;\r\n }\r\n var attr = a;\r\n if (attr.length > 14) {\r\n attr = attr.slice(0, 11) + '...';\r\n }\r\n popupHtml += \"<tr><td>\" + attr + \"</td><td>\" + attrVal + \"</td></tr>\";\r\n }\r\n }\r\n popupHtml += '</table>';\r\n mapPopup_1.default.addMapServicePopupContent(__this._esriFormat.readFeature(r), __this, popupHtml, r['layerName']);\r\n }\r\n }, 'json');\r\n this._popupRequest.always(function () {\r\n __this._popupRequest = null;\r\n });\r\n };\r\n Object.defineProperty(LayerEsriMapServer.prototype, \"source\", {\r\n /**\r\n *\r\n * @returns {ol.source.TileArcGISRest} the vector source\r\n */\r\n get: function () {\r\n return _super.prototype.getSource.call(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerEsriMapServer.prototype, \"olLayer\", {\r\n /**\r\n *\r\n * @returns the ol layer\r\n */\r\n get: function () {\r\n return _super.prototype.getOlLayer.call(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return LayerEsriMapServer;\r\n}(LayerBase_1.LayerBase));\r\nexports.LayerEsriMapServer = LayerEsriMapServer;\r\nnm.LayerEsriMapServer = LayerEsriMapServer;\r\nexports.default = LayerEsriMapServer;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJFc3JpTWFwU2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJFc3JpTWFwU2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gseUNBQXdEO0FBQ3hELHFEQUF1RDtBQUN2RCxrREFBNkM7QUFDN0MsMkNBQXNDO0FBQ3RDLDhCQUFpQztBQUNqQywwQkFBNkI7QUFFN0IsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQVE3Qjs7O0dBR0c7QUFDSDtJQUF3QyxzQ0FBUztJQUk3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Ba0JHO0lBQ0gsNEJBQVksR0FBRyxFQUFFLE9BQXVDO1FBQXZDLHdCQUFBLEVBQUEsWUFBdUM7UUFBeEQsWUFFSSxrQkFBTSxHQUFHLEVBQUUsT0FBTyxDQUFDLFNBNEJ0QjtRQTNCRyxLQUFJLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3ZDO1lBQ0ksR0FBRyxFQUFFLEtBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLFNBQVMsR0FBRyxLQUFJLENBQUMsR0FBRztZQUMxQyxNQUFNLEVBQUUsT0FBTyxPQUFPLENBQUMsVUFBVSxJQUFJLFdBQVcsR0FBRyxTQUFTLEdBQUcsRUFBQyxNQUFNLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFDO1NBQ2xILENBQ0osQ0FBQztRQUVGLEtBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM5QixNQUFNLEVBQUUsS0FBSSxDQUFDLE9BQXlCO1lBQ3RDLE9BQU8sRUFBRSxLQUFJLENBQUMsT0FBTztZQUNyQixPQUFPLEVBQUUsS0FBSSxDQUFDLE9BQU87WUFDckIsYUFBYSxFQUFFLEtBQUksQ0FBQyxjQUFjO1lBQ2xDLGFBQWEsRUFBRSxL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QUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMi83LzIwMTUuXHJcbiAqL1xyXG5pbXBvcnQge0xheWVyQmFzZSwgTGF5ZXJCYXNlT3B0aW9uc30gZnJvbSAnLi9MYXllckJhc2UnO1xyXG5pbXBvcnQgKiBhcyBlc3JpVG9PbCBmcm9tICcuLi9vbEhlbHBlcnMvZXNyaVRvT2xTdHlsZSc7XHJcbmltcG9ydCBtYXBQb3B1cCBmcm9tICcuLi9vbEhlbHBlcnMvbWFwUG9wdXAnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgb2wgPSByZXF1aXJlKCdjdXN0b20tb2wnKTtcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckVzcmlNYXBTZXJ2ZXJPcHRpb25zIGV4dGVuZHMgTGF5ZXJCYXNlT3B0aW9ucyB7XHJcbiAgICBhZGRQb3B1cD86IGJvb2xlYW47XHJcbiAgICBzaG93TGF5ZXJzPzogQXJyYXk8bnVtYmVyPjtcclxufVxyXG5cclxuLyoqXHJcbiAqIGVzcmkgbWFwc2VydmVyIGxheWVyXHJcbiAqIEBhdWdtZW50cyBMYXllckJhc2VcclxuICovXHJcbmV4cG9ydCBjbGFzcyBMYXllckVzcmlNYXBTZXJ2ZXIgZXh0ZW5kcyBMYXllckJhc2Uge1xyXG4gICAgX2VzcmlGb3JtYXQ6IG9sLmZvcm1hdC5Fc3JpSlNPTjtcclxuICAgIF9wb3B1cFJlcXVlc3Q6IEpRdWVyeVhIUjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBiYXNlIGxheWVyIGZvciBhbGwgb3RoZXJzXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gcmVzb3VyY2UgdXJsXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdIC0gY29uZmlnXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuaWRdIC0gbGF5ZXIgaWRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5uYW1lPVVubmFtZWQgTGF5ZXJdIC0gbGF5ZXIgbmFtZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm9wYWNpdHk9MV0gLSBvcGFjaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnZpc2libGU9dHJ1ZV0gLSBkZWZhdWx0IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5ab29tPXVuZGVmaW5lZF0gLSBtaW4gem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIC0gbWF4IHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnBhcmFtcz17fV0gdGhlIGdldCBwYXJhbWV0ZXJzIHRvIGluY2x1ZGUgdG8gcmV0cmlldmUgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuekluZGV4PTBdIHRoZSB6IGluZGV4IGZvciB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtvcHRpb25zLmxvYWRDYWxsYmFja10gZnVuY3Rpb24gdG8gY2FsbCBvbiBsb2FkLCBjb250ZXh0IHRoaXMgaXMgdGhlIGxheWVyIG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb2xsYXBzZT1mYWxzZV0gaWYgdGhlIGxlZ2VuZCBpdGVtIHNob3VsZCBiZSBpbml0aWFsbHkgY29sbGFwc2VkXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENoZWNrYm94PXRydWVdIGlmIHRoZSBsZWdlbmQgaXRlbSBzaG91bGQgaGF2ZSBhIGNoZWNrYm94IGZvciB2aXNpYmlsaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENvbnRlbnRdIGFkZGl0aW9uYWwgY29udGVudCB0byBhZGQgdG8gdGhlIGxlZ2VuZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5hZGRQb3B1cD1mYWxzZV0gaWYgYSBwb3B1cCBzaG91bGQgYmUgYWRkZWRcclxuICAgICAqIEBwYXJhbSB7dW5kZWZpbmVkfEFycmF5PG51bWJlcj59IFtvcHRpb25zLnNob3dMYXllcnM9dW5kZWZpbmVkXSBpZiBhIHBvcHVwIHNob3VsZCBiZSBhZGRlZFxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcih1cmwsIG9wdGlvbnM6IExheWVyRXNyaU1hcFNlcnZlck9wdGlvbnMgPSB7fSkge1xyXG5cclxuICAgICAgICBzdXBlcih1cmwsIG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuX3NvdXJjZSA9IG5ldyBvbC5zb3VyY2UuVGlsZUFyY0dJU1Jlc3QoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHVybDogdGhpcy51cmwgPT0gJycgPyB1bmRlZmluZWQgOiB0aGlzLnVybCxcclxuICAgICAgICAgICAgICAgIHBhcmFtczogdHlwZW9mIG9wdGlvbnMuc2hvd0xheWVycyA9PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IHtsYXllcnM6ICdzaG93OicgKyBvcHRpb25zLnNob3dMYXllcnMuam9pbignLCcpfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5fb2xMYXllciA9IG5ldyBvbC5sYXllci5UaWxlKHtcclxuICAgICAgICAgICAgc291cmNlOiB0aGlzLl9zb3VyY2UgYXMgb2wuc291cmNlLlRpbGUsXHJcbiAgICAgICAgICAgIHZpc2libGU6IHRoaXMudmlzaWJsZSxcclxuICAgICAgICAgICAgb3BhY2l0eTogdGhpcy5vcGFjaXR5LFxyXG4gICAgICAgICAgICBtaW5SZXNvbHV0aW9uOiB0aGlzLl9taW5SZXNvbHV0aW9uLFxyXG4gICAgICAgICAgICBtYXhSZXNvbHV0aW9uOiB0aGlzLl9tYXhSZXNvbHV0aW9uXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIuc2V0WkluZGV4KHRoaXMuX3pJbmRleCk7XHJcblxyXG4gICAgICAgIG9wdGlvbnMuYWRkUG9wdXAgPSB0eXBlb2Ygb3B0aW9ucy5hZGRQb3B1cCA9PSAnYm9vbGVhbicgPyBvcHRpb25zLmFkZFBvcHVwIDogZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuX2VzcmlGb3JtYXQgPSBuZXcgb2wuZm9ybWF0LkVzcmlKU09OKCk7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBSZXF1ZXN0ID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5hZGRMZWdlbmRDb250ZW50KCk7XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmFkZFBvcHVwKSB7XHJcbiAgICAgICAgICAgIG1hcFBvcHVwLmFkZE1hcFNlcnZpY2VQb3B1cCh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhZGQgYWRkaXRpb25hbCBjb250ZW50IHRvIHRoZSBsZWdlbmRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbYWRkaXRpb25hbENvbnRlbnQ9JyddIGFkZGl0aW9uYWwgY29udGVudCBmb3IgbGVnZW5kXHJcbiAgICAgKi9cclxuICAgIGFkZExlZ2VuZENvbnRlbnQoYWRkaXRpb25hbENvbnRlbnQ/OiBzdHJpbmcpIHtcclxuICAgICAgICBsZXQgdXJsQ29weSA9IHRoaXMudXJsO1xyXG5cclxuICAgICAgICBpZiAodXJsQ29weVt1cmxDb3B5Lmxlbmd0aCAtIDFdICE9PSAnLycpIHtcclxuICAgICAgICAgICAgdXJsQ29weSArPSAnLyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1cmxDb3B5ICs9ICdsZWdlbmQ/Zj1wanNvbiZjYWxsYmFjaz0/JztcclxuXHJcbiAgICAgICAgJC5nZXQodXJsQ29weSwge30sIChkKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBuZXdIdG1sID0gZXNyaVRvT2wubWFrZU1hcFNlcnZpY2VMZWdlbmQoZCk7XHJcbiAgICAgICAgICAgIHN1cGVyLmFkZExlZ2VuZENvbnRlbnQobmV3SHRtbCk7XHJcbiAgICAgICAgfSwgJ2pzb24nKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgZ2V0UG9wdXBJbmZvKHF1ZXJ5UGFyYW1zKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHVybENvcHkgPSB0aGlzLnVybDtcclxuXHJcbiAgICAgICAgaWYgKHVybENvcHlbdXJsQ29weS5sZW5ndGggLSAxXSAhPSAnLycpIHtcclxuICAgICAgICAgICAgdXJsQ29weSArPSAnLyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1cmxDb3B5ICs9ICdpZGVudGlmeT9jYWxsYmFjaz0/JztcclxuXHJcbiAgICAgICAgbGV0IF9fdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9wb3B1cFJlcXVlc3QgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cFJlcXVlc3QuYWJvcnQoKTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9wb3B1cFJlcXVlc3QgPSAkLmdldCh1cmxDb3B5LCBxdWVyeVBhcmFtcywgZnVuY3Rpb24gKGQpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgciBvZiBkWydyZXN1bHRzJ10pIHtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgcG9wdXBIdG1sID0gJzx0YWJsZSBjbGFzcz1cImVzcmktcG9wdXAtdGFibGVcIj4nO1xyXG5cclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGEgaW4gclsnYXR0cmlidXRlcyddKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJbJ2F0dHJpYnV0ZXMnXS5oYXNPd25Qcm9wZXJ0eShhKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXR0clZhbCA9IHJbJ2F0dHJpYnV0ZXMnXVthXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdHRyVmFsID09IG51bGwgfHwgYXR0clZhbC50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT0gJ251bGwnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGF0dHIgPSBhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ci5sZW5ndGggPiAxNCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ciA9IGF0dHIuc2xpY2UoMCwgMTEpICsgJy4uLic7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcHVwSHRtbCArPSBgPHRyPjx0ZD4ke2F0dHJ9PC90ZD48dGQ+JHthdHRyVmFsfTwvdGQ+PC90cj5gO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzwvdGFibGU+JztcclxuXHJcbiAgICAgICAgICAgICAgICBtYXBQb3B1cC5hZGRNYXBTZXJ2aWNlUG9wdXBDb250ZW50KF9fdGhpcy5fZXNyaUZvcm1hdC5yZWFkRmVhdHVyZShyKSwgX190aGlzLCBwb3B1cEh0bWwsIHJbJ2xheWVyTmFtZSddKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sICdqc29uJyk7XHJcblxyXG4gICAgICAgIHRoaXMuX3BvcHVwUmVxdWVzdC5hbHdheXMoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBfX3RoaXMuX3BvcHVwUmVxdWVzdCA9IG51bGw7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtvbC5zb3VyY2UuVGlsZUFyY0dJU1Jlc3R9IHRoZSB2ZWN0b3Igc291cmNlXHJcbiAgICAgKi9cclxuICAgIGdldCBzb3VyY2UoKTogb2wuc291cmNlLlRpbGVBcmNHSVNSZXN0IHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0U291cmNlKCkgYXMgb2wuc291cmNlLlRpbGVBcmNHSVNSZXN0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHRoZSBvbCBsYXllclxyXG4gICAgICovXHJcbiAgICBnZXQgb2xMYXllcigpOiBvbC5sYXllci5UaWxlIHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0T2xMYXllcigpIGFzIG9sLmxheWVyLlRpbGU7XHJcbiAgICB9XHJcbn1cclxubm0uTGF5ZXJFc3JpTWFwU2VydmVyID0gTGF5ZXJFc3JpTWFwU2VydmVyO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckVzcmlNYXBTZXJ2ZXI7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/layers/LayerEsriMapServer.ts\n// module id = 10\n// module chunks = 0 2 3","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar mapInteractionBase_1 = require(\"./mapInteractionBase\");\r\nvar checkDefined = require(\"../util/checkDefined\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar makeGuid_1 = require(\"../util/makeGuid\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('olHelpers');\r\n/**\r\n * assists with map move interactions, trigger callback functions\r\n * @augments MapInteractionBase\r\n */\r\nvar MapMoveCls = (function (_super) {\r\n __extends(MapMoveCls, _super);\r\n /**\r\n * constructor called implicitly\r\n */\r\n function MapMoveCls() {\r\n var _this = _super.call(this, 'map move') || this;\r\n _this._arrLyrRequest = [];\r\n _this._arrLyrTimeout = [];\r\n _this._arrLayer = [];\r\n _this._lookupLayer = {};\r\n _this._mapMoveCallbacks = [];\r\n _this._mapMoveCallbacksLookup = {};\r\n _this._mapMoveCallbackDelays = [];\r\n _this._mapMoveCallbackContext = [];\r\n _this._mapMoveCallbackTimeout = [];\r\n _this._mapExtent = undefined;\r\n _this._zoomLevel = undefined;\r\n return _this;\r\n }\r\n /**\r\n * initialize the map move object\r\n * @param theMap - the ol map\r\n */\r\n MapMoveCls.prototype.init = function (theMap) {\r\n var _this = this;\r\n _super.prototype.init.call(this, theMap);\r\n this.map.getView().on(['change:center', 'change:resolution'], function (e) {\r\n _this._updateMapExtent();\r\n // trigger the layer updates\r\n for (var i = 0; i < _this._arrLayer.length; i++) {\r\n _this.triggerLyrLoad(_this._arrLayer[i], i, e.type);\r\n }\r\n // trigger the map callbacks\r\n for (var i = 0; i < _this._mapMoveCallbacks.length; i++) {\r\n _this.triggerMoveCallback(i, e.type);\r\n }\r\n });\r\n };\r\n MapMoveCls.prototype._updateMapExtent = function () {\r\n var theView = this.map.getView();\r\n this._zoomLevel = theView.getZoom();\r\n var extentArray = theView.calculateExtent(this.map.getSize());\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 Object.defineProperty(MapMoveCls.prototype, \"mapExtent\", {\r\n /**\r\n * return the map extent\r\n */\r\n get: function () {\r\n if (!this._mapExtent) {\r\n this._updateMapExtent();\r\n }\r\n return this._mapExtent;\r\n },\r\n enumerable: true,\r\n configurable: true\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 MapMoveCls.prototype.triggerLyrLoad = function (lyr, index, eventType) {\r\n if (checkDefined.undefinedOrNull(lyr) && checkDefined.undefinedOrNull(index)) {\r\n throw 'need to define lyr or index';\r\n }\r\n else if (checkDefined.definedAndNotNull(lyr) && checkDefined.undefinedOrNull(index)) {\r\n index = this._arrLayer.indexOf(lyr);\r\n }\r\n else if (checkDefined.undefinedOrNull(lyr) && checkDefined.definedAndNotNull(index)) {\r\n lyr = this._arrLayer[index];\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 // 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 // dummy callback used if before load returns false\r\n var callbackFunc = function () { };\r\n if (lyr.mapMoveBefore(this._zoomLevel, eventType)) {\r\n lyr.mapMoveMakeGetParams(this._mapExtent, this._zoomLevel);\r\n var __this_1 = this;\r\n callbackFunc = function () {\r\n function innerFunction(theLayer, theIndex) {\r\n var _innerThis = this;\r\n this._arrLyrRequest[theIndex] = $.get(theLayer.url, theLayer.mapMoveParams, function (d) {\r\n /**\r\n * @type {LayerBaseVector}\r\n */\r\n theLayer.mapMoveCallback(d);\r\n theLayer.loadCallback();\r\n }, 'json').fail(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(function () {\r\n _innerThis._arrLyrTimeout[theIndex] = null;\r\n _innerThis._arrLyrRequest[theIndex] = null;\r\n });\r\n }\r\n innerFunction.call(__this_1, lyr, index);\r\n };\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 * 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 MapMoveCls.prototype.triggerMoveCallback = function (ind, eventType, functionId) {\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 if (typeof ind !== 'number') {\r\n ind = this._mapMoveCallbacks.indexOf(this._mapMoveCallbacksLookup[functionId]);\r\n }\r\n if (ind < 0) {\r\n console.log('function not found');\r\n return;\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 var ctx = this._mapMoveCallbackContext[ind];\r\n var theFunc = this._mapMoveCallbacks[ind];\r\n var __this = this;\r\n var f = function () {\r\n if (ctx !== null) {\r\n theFunc.call(ctx, __this._mapExtent, __this._zoomLevel, eventType);\r\n }\r\n else {\r\n theFunc(__this._mapExtent, __this._zoomLevel, eventType);\r\n }\r\n };\r\n this._mapMoveCallbackTimeout[ind] = setTimeout(f, this._mapMoveCallbackDelays[ind]);\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 MapMoveCls.prototype.addVectorLayer = function (lyr, triggerOnAdd) {\r\n if (triggerOnAdd === void 0) { triggerOnAdd = true; }\r\n if (this._arrLayer.indexOf(lyr) > -1) {\r\n console.log('already added ' + lyr.name + ' to map move');\r\n return;\r\n }\r\n this._checkInit();\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 triggerOnAdd = typeof triggerOnAdd == 'boolean' ? triggerOnAdd : true;\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 * 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 MapMoveCls.prototype.addCallback = function (func, context, delay, triggerOnAdd, functionId) {\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_1.default();\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 triggerOnAdd = typeof triggerOnAdd == 'boolean' ? triggerOnAdd : true;\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 return MapMoveCls;\r\n}(mapInteractionBase_1.default));\r\nexports.MapMoveCls = MapMoveCls;\r\nnm.MapMoveCls = MapMoveCls;\r\nexports.default = MapMoveCls;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwTW92ZUNscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hcE1vdmVDbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EsMkRBQXNEO0FBQ3RELG1EQUFxRDtBQUNyRCwyQ0FBc0M7QUFDdEMsNkNBQXdDO0FBRXhDLDBCQUE2QjtBQUM3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBcUJoQzs7O0dBR0c7QUFDSDtJQUFnQyw4QkFBa0I7SUFhOUM7O09BRUc7SUFDSDtRQUFBLFlBQ0ksa0JBQU0sVUFBVSxDQUFDLFNBZXBCO1FBZEcsS0FBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsS0FBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsS0FBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFFdkIsS0FBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixLQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLEtBQUksQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7UUFDakMsS0FBSSxDQUFDLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUNsQyxLQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBRWxDLEtBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLEtBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDOztJQUVoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gseUJBQUksR0FBSixVQUFLLE1BQWM7UUFBbkIsaUJBaUJDO1FBaEJHLGlCQUFNLElBQUksWUFBQyxNQUFNLENBQUMsQ0FBQztRQUVuQixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLFVBQUMsQ0FBQztZQUU3RCxLQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUV2Qiw0QkFBNEI7WUFDNUIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUM3QyxLQUFJLENBQUMsY0FBYyxDQUFDLEtBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0RCxDQUFDO1lBRUQsNEJBQTRCO1lBQzVCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNyRCxLQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQscUNBQWdCLEdBQWhCO1FBQ0ksSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVwQyxJQUFJLFdBQVcsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2QsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDcEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDcEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDcEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDdkIsQ0FBQztJQUNOLENBQUM7SUFLRCxzQkFBSSxpQ0FBUztRQUhiOztXQUVHO2FBQ0g7WUFDSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM1QixDQUFDO1lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDM0IsQ0FBQzs7O09BQUE7SUFFRDs7Ozs7T0FLRztJQUNILG1DQUFjLEdBQWQsVUFBZSxHQUFvQixFQUFFLEtBQWMsRUFBRSxTQUFrQjtRQUVuRSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFlBQVksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNFLE1BQU0sNkJBQTZCLENBQUM7UUFDeEMsQ0FBQztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksWUFBWSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEYsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxZQUFZLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BGLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxvQkFBb0I7UUFDcEIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdEMsQ0FBQztRQUVELDJDQUEyQztRQUMzQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN0QyxDQUFDO1FBRUQsbURBQW1EO1FBQ25ELElBQUksWUFBWSxHQUFHLGNBQWEsQ0FBQyxDQUFDO1FBRWxDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEQsR0FBRyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRTNELElBQUksUUFBTSxHQUFHLElBQUksQ0FBQztZQUVsQixZQUFZLEdBQUc7Z0JBQ1gsdUJBQXVCLFFBQVEsRUFBRSxRQUFRO29CQUNyQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUM7b0JBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FDakMsUUFBUSxDQUFDLEdBQUcsRUFDWixRQUFRLENBQUMsYUFBYSxFQUN0QixVQUFVLENBQUM7d0JBQ1A7OzJCQUVHO3dCQUNILFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQzVCLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDNUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDZixVQUFVLEtBQUs7d0JBQ1gsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDOzRCQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDOzRCQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQzs0QkFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7d0JBQ3hDLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUNUO3dCQUNJLFVBQVUsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDO3dCQUMzQyxVQUFVLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQztvQkFDL0MsQ0FBQyxDQUFDLENBQUM7Z0JBQ1gsQ0FBQztnQkFDRCxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDO1FBQ04sQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLFVBQVUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHdDQUFtQixHQUFuQixVQUFvQixHQUFXLEVBQUUsU0FBa0IsRUFBRSxVQUFtQjtRQUVwRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxXQUFXLElBQUksT0FBTyxVQUFVLElBQUksV0FBVyxDQUFDLENBQUEsQ0FBQztZQUMvRCxNQUFNLHFEQUFxRCxDQUFDO1FBQ2hFLENBQUM7UUFFRCxFQUFFLENBQUMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQSxDQUFDO1lBQ3pCLEdBQUcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ25GLENBQUM7UUFFRCxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUEsQ0FBQztZQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUVsQyxNQUFNLENBQUM7UUFDWCxDQUFDO1FBRUQsb0JBQW9CO1FBQ3BCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzVDLFlBQVksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzdDLENBQUM7UUFFRCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTFDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztRQUVsQixJQUFJLENBQUMsR0FBRztZQUNKLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN2RSxDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ0osT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM3RCxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxtQ0FBYyxHQUFkLFVBQWUsR0FBb0IsRUFBRSxZQUE0QjtRQUE1Qiw2QkFBQSxFQUFBLG1CQUE0QjtRQUM3RCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQyxDQUFDO1lBRTFELE1BQU0sQ0FBQztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBRWhDLFlBQVksR0FBRyxPQUFPLFlBQVksSUFBSSxTQUFTLEdBQUcsWUFBWSxHQUFHLElBQUksQ0FBQztRQUV0RSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ2YsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM1QixDQUFDO1lBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDeEQsQ0FBQztJQUNMLENBQUM7SUFHRDs7Ozs7OztPQU9HO0lBQ0gsZ0NBQVcsR0FBWCxVQUFZLElBQTZCLEVBQUUsT0FBYSxFQUFFLEtBQWMsRUFBRSxZQUF1QixFQUFFLFVBQW1CO1FBRWxILEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMseUNBQXlDLENBQUMsQ0FBQztZQUN2RCxNQUFNLENBQUM7UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUEsQ0FBQztZQUNiLFVBQVUsR0FBRyxrQkFBUSxFQUFFLENBQUM7UUFDNUIsQ0FBQztRQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxHQUFHLFVBQVUsQ0FBQztRQUN0RCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLFFBQVEsR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEMsWUFBWSxHQUFHLE9BQU8sWUFBWSxJQUFJLFNBQVMsR0FBRyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBRXRFLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDZixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzVCLENBQUM7WUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0wsQ0FBQztJQUNMLGlCQUFDO0FBQUQsQ0FBQyxBQWxRRCxDQUFnQyw0QkFBa0IsR0FrUWpEO0FBbFFZLGdDQUFVO0FBb1F2QixFQUFFLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztBQUMzQixrQkFBZSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGF5ZXJCYXNlVmVjdG9yIGZyb20gXCIuLi9sYXllcnMvTGF5ZXJCYXNlVmVjdG9yXCI7XHJcbmltcG9ydCBNYXBJbnRlcmFjdGlvbkJhc2UgZnJvbSAnLi9tYXBJbnRlcmFjdGlvbkJhc2UnO1xyXG5pbXBvcnQgKiBhcyBjaGVja0RlZmluZWQgZnJvbSAnLi4vdXRpbC9jaGVja0RlZmluZWQnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFrZUd1aWQgZnJvbSAnLi4vdXRpbC9tYWtlR3VpZCc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycycpO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgZXh0ZW50T2JqZWN0e1xyXG4gICAgbWluWDogbnVtYmVyO1xyXG4gICAgbWluWTogbnVtYmVyO1xyXG4gICAgbWF4WDogbnVtYmVyO1xyXG4gICAgbWF4WTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIG1hcE1vdmVDYWxsYmFja0Z1bmN0aW9ue1xyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGV4dGVudCBleHRlbnQgYXMgcHJlZGVmaW5lZCBvYmplY3QgbWluWCwgbWluWCwgbWF4WCwgbWF4WVxyXG4gICAgICogQHBhcmFtIHpvb21MZXZlbCBjdXJyZW50IHpvb20gbGV2ZWxcclxuICAgICAqIEBwYXJhbSBldnRUeXBlIHRoZSBldmVudCB0eXBlICdjaGFuZ2U6Y2VudGVyJywgJ2NoYW5nZTpyZXNvbHV0aW9uJ1xyXG4gICAgICovXHJcbiAgICAoZXh0ZW50OiBleHRlbnRPYmplY3QsIHpvb21MZXZlbDogbnVtYmVyLCBldnRUeXBlPzogc3RyaW5nKTogYW55XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogYXNzaXN0cyB3aXRoIG1hcCBtb3ZlIGludGVyYWN0aW9ucywgdHJpZ2dlciBjYWxsYmFjayBmdW5jdGlvbnNcclxuICogQGF1Z21lbnRzIE1hcEludGVyYWN0aW9uQmFzZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIE1hcE1vdmVDbHMgZXh0ZW5kcyBNYXBJbnRlcmFjdGlvbkJhc2Uge1xyXG4gICAgX21hcEV4dGVudDogZXh0ZW50T2JqZWN0O1xyXG4gICAgX3pvb21MZXZlbDogbnVtYmVyO1xyXG4gICAgX2xvb2t1cExheWVyOiBPYmplY3Q7XHJcbiAgICBfYXJyTGF5ZXI6IEFycmF5PExheWVyQmFzZVZlY3Rvcj47XHJcbiAgICBfYXJyTHlyVGltZW91dDogQXJyYXk8bnVtYmVyPjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0OiBBcnJheTxudW1iZXI+O1xyXG4gICAgX21hcE1vdmVDYWxsYmFja0RlbGF5czogQXJyYXk8bnVtYmVyPjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tzTG9va3VwOiBPYmplY3Q7XHJcbiAgICBfbWFwTW92ZUNhbGxiYWNrQ29udGV4dDogQXJyYXk8T2JqZWN0PjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tzOiBBcnJheTxtYXBNb3ZlQ2FsbGJhY2tGdW5jdGlvbj47XHJcbiAgICBfYXJyTHlyUmVxdWVzdDogQXJyYXk8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGNvbnN0cnVjdG9yIGNhbGxlZCBpbXBsaWNpdGx5XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCdtYXAgbW92ZScpO1xyXG4gICAgICAgIHRoaXMuX2Fyckx5clJlcXVlc3QgPSBbXTtcclxuICAgICAgICB0aGlzLl9hcnJMeXJUaW1lb3V0ID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyTGF5ZXIgPSBbXTtcclxuICAgICAgICB0aGlzLl9sb29rdXBMYXllciA9IHt9O1xyXG5cclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzID0gW107XHJcbiAgICAgICAgdGhpcy5fbWFwTW92ZUNhbGxiYWNrc0xvb2t1cCA9IHt9O1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja0RlbGF5cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja0NvbnRleHQgPSBbXTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0ID0gW107XHJcblxyXG4gICAgICAgIHRoaXMuX21hcEV4dGVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl96b29tTGV2ZWwgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogaW5pdGlhbGl6ZSB0aGUgbWFwIG1vdmUgb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0gdGhlTWFwIC0gdGhlIG9sIG1hcFxyXG4gICAgICovXHJcbiAgICBpbml0KHRoZU1hcDogb2wuTWFwKXtcclxuICAgICAgICBzdXBlci5pbml0KHRoZU1hcCk7XHJcblxyXG4gICAgICAgIHRoaXMubWFwLmdldFZpZXcoKS5vbihbJ2NoYW5nZTpjZW50ZXInLCAnY2hhbmdlOnJlc29sdXRpb24nXSwgKGUpID0+e1xyXG5cclxuICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHRyaWdnZXIgdGhlIGxheWVyIHVwZGF0ZXNcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9hcnJMYXllci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyTHlyTG9hZCh0aGlzLl9hcnJMYXllcltpXSwgaSwgZS50eXBlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gdHJpZ2dlciB0aGUgbWFwIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX21hcE1vdmVDYWxsYmFja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlck1vdmVDYWxsYmFjayhpLCBlLnR5cGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgX3VwZGF0ZU1hcEV4dGVudCgpIHtcclxuICAgICAgICBsZXQgdGhlVmlldyA9IHRoaXMubWFwLmdldFZpZXcoKTtcclxuICAgICAgICB0aGlzLl96b29tTGV2ZWwgPSB0aGVWaWV3LmdldFpvb20oKTtcclxuXHJcbiAgICAgICAgbGV0IGV4dGVudEFycmF5ID0gdGhlVmlldy5jYWxjdWxhdGVFeHRlbnQodGhpcy5tYXAuZ2V0U2l6ZSgpKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWFwRXh0ZW50ID0ge1xyXG4gICAgICAgICAgICBtaW5YOiBleHRlbnRBcnJheVswXSxcclxuICAgICAgICAgICAgbWluWTogZXh0ZW50QXJyYXlbMV0sXHJcbiAgICAgICAgICAgIG1heFg6IGV4dGVudEFycmF5WzJdLFxyXG4gICAgICAgICAgICBtYXhZOiBleHRlbnRBcnJheVszXVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiByZXR1cm4gdGhlIG1hcCBleHRlbnRcclxuICAgICAqL1xyXG4gICAgZ2V0IG1hcEV4dGVudCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX21hcEV4dGVudCkge1xyXG4gICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXBFeHRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUcmlnZ2VyIHRoZSBsYXllciBsb2FkXHJcbiAgICAgKiBAcGFyYW0gbHlyIHRoZSBsYXllciBiZWluZyBhY3RlZCBvblxyXG4gICAgICogQHBhcmFtIGluZGV4IGluZGV4IG9mIHRoZSBsYXllclxyXG4gICAgICogQHBhcmFtIGV2ZW50VHlwZSB0aGUgZXZlbnQgdHJpZ2dlcmluZyB0aGUgbG9hZCwgYXMgJ2NoYW5nZTpjZW50ZXInIG9yICdjaGFuZ2U6cmVzb2x1dGlvbidcclxuICAgICAqL1xyXG4gICAgdHJpZ2dlckx5ckxvYWQobHlyOiBMYXllckJhc2VWZWN0b3IsIGluZGV4PzogbnVtYmVyLCBldmVudFR5cGU/OiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgaWYgKGNoZWNrRGVmaW5lZC51bmRlZmluZWRPck51bGwobHlyKSAmJiBjaGVja0RlZmluZWQudW5kZWZpbmVkT3JOdWxsKGluZGV4KSkge1xyXG4gICAgICAgICAgICB0aHJvdyAnbmVlZCB0byBkZWZpbmUgbHlyIG9yIGluZGV4JztcclxuICAgICAgICB9IGVsc2UgaWYgKGNoZWNrRGVmaW5lZC5kZWZpbmVkQW5kTm90TnVsbChseXIpICYmIGNoZWNrRGVmaW5lZC51bmRlZmluZWRPck51bGwoaW5kZXgpKSB7XHJcbiAgICAgICAgICAgIGluZGV4ID0gdGhpcy5fYXJyTGF5ZXIuaW5kZXhPZihseXIpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY2hlY2tEZWZpbmVkLnVuZGVmaW5lZE9yTnVsbChseXIpICYmIGNoZWNrRGVmaW5lZC5kZWZpbmVkQW5kTm90TnVsbChpbmRleCkpIHtcclxuICAgICAgICAgICAgbHlyID0gdGhpcy5fYXJyTGF5ZXJbaW5kZXhdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gY2xlYXIgdGhlIHRpbWVvdXRcclxuICAgICAgICBpZiAodGhpcy5fYXJyTHlyVGltZW91dFtpbmRleF0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fYXJyTHlyVGltZW91dFtpbmRleF0pO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJUaW1lb3V0W2luZGV4XSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBhYm9ydCBpZiBuZWNlc3NhcnkgYW5kIGNsZWFyIHRoZSByZXF1ZXN0XHJcbiAgICAgICAgaWYgKHRoaXMuX2Fyckx5clJlcXVlc3RbaW5kZXhdICE9IG51bGwgJiYgdGhpcy5fYXJyTHlyUmVxdWVzdFtpbmRleF0gIT0gNCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0W2luZGV4XS5hYm9ydCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0W2luZGV4XSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBkdW1teSBjYWxsYmFjayB1c2VkIGlmIGJlZm9yZSBsb2FkIHJldHVybnMgZmFsc2VcclxuICAgICAgICBsZXQgY2FsbGJhY2tGdW5jID0gZnVuY3Rpb24gKCkge307XHJcblxyXG4gICAgICAgIGlmIChseXIubWFwTW92ZUJlZm9yZSh0aGlzLl96b29tTGV2ZWwsIGV2ZW50VHlwZSkpIHtcclxuICAgICAgICAgICAgbHlyLm1hcE1vdmVNYWtlR2V0UGFyYW1zKHRoaXMuX21hcEV4dGVudCwgdGhpcy5fem9vbUxldmVsKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBfX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICAgICAgY2FsbGJhY2tGdW5jID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gaW5uZXJGdW5jdGlvbih0aGVMYXllciwgdGhlSW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgX2lubmVyVGhpcyA9IHRoaXM7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXJyTHlyUmVxdWVzdFt0aGVJbmRleF0gPSAkLmdldChcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlTGF5ZXIudXJsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5tYXBNb3ZlUGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBAdHlwZSB7TGF5ZXJCYXNlVmVjdG9yfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5tYXBNb3ZlQ2FsbGJhY2soZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5sb2FkQ2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgJ2pzb24nKS5mYWlsKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoanFYSFIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqcVhIUi5zdGF0dXNUZXh0ICE9ICdhYm9ydCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZmFpbGVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhlTGF5ZXIudXJsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGVMYXllci5tYXBNb3ZlUGFyYW1zKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSkuYWx3YXlzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5uZXJUaGlzLl9hcnJMeXJUaW1lb3V0W3RoZUluZGV4XSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5uZXJUaGlzLl9hcnJMeXJSZXF1ZXN0W3RoZUluZGV4XSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaW5uZXJGdW5jdGlvbi5jYWxsKF9fdGhpcywgbHlyLCBpbmRleCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbHlyLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2Fyckx5clRpbWVvdXRbaW5kZXhdID0gc2V0VGltZW91dChjYWxsYmFja0Z1bmMsIGx5ci5vbkRlbWFuZERlbGF5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyaWdnZXIgdGhlIG1hcCBtb3ZlIGNhbGwgYmFjayBhdCB0aGUgZ2l2ZW4gaW5kZXhcclxuICAgICAqIEBwYXJhbSBpbmQgLSB0aGUgaW5kZXggb2YgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gZXZlbnRUeXBlPXVuZGVmaW5lZCB0aGUgZXZlbnQgdHJpZ2dlcmluZyB0aGUgbG9hZCBhcyAnY2hhbmdlOmNlbnRlcicgb3IgJ2NoYW5nZTpyZXNvbHV0aW9uJ1xyXG4gICAgICogQHBhcmFtIGZ1bmN0aW9uSWQ9dW5kZWZpbmVkIHRoZSBmdW5jdGlvbiBpZCB1c2VkIHRvIHJlZmVyZW5jZSB0aGUgYWRkZWQgY2FsbGJhY2sgZnVuY3Rpb25cclxuICAgICAqL1xyXG4gICAgdHJpZ2dlck1vdmVDYWxsYmFjayhpbmQ6IG51bWJlciwgZXZlbnRUeXBlPzogc3RyaW5nLCBmdW5jdGlvbklkPzogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgaW5kID09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBmdW5jdGlvbklkID09ICd1bmRlZmluZWQnKXtcclxuICAgICAgICAgICAgdGhyb3cgJ2VpdGhlciB0aGUgZnVuY3Rpb24gaW5kZXggb3IgdGhlIGlkIG11c3QgYmUgZGVmaW5lZCc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIGluZCAhPT0gJ251bWJlcicpe1xyXG4gICAgICAgICAgICBpbmQgPSB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzLmluZGV4T2YodGhpcy5fbWFwTW92ZUNhbGxiYWNrc0xvb2t1cFtmdW5jdGlvbklkXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaW5kIDwgMCl7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdmdW5jdGlvbiBub3QgZm91bmQnKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGNsZWFyIHRoZSB0aW1lb3V0XHJcbiAgICAgICAgaWYgKHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXRbaW5kXSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0W2luZF0pO1xyXG4gICAgICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0W2luZF0gPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGN0eCA9IHRoaXMuX21hcE1vdmVDYWxsYmFja0NvbnRleHRbaW5kXTtcclxuICAgICAgICBsZXQgdGhlRnVuYyA9IHRoaXMuX21hcE1vdmVDYWxsYmFja3NbaW5kXTtcclxuXHJcbiAgICAgICAgbGV0IF9fdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIGxldCBmID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAoY3R4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGVGdW5jLmNhbGwoY3R4LCBfX3RoaXMuX21hcEV4dGVudCwgX190aGlzLl96b29tTGV2ZWwsIGV2ZW50VHlwZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGVGdW5jKF9fdGhpcy5fbWFwRXh0ZW50LCBfX3RoaXMuX3pvb21MZXZlbCwgZXZlbnRUeXBlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXRbaW5kXSA9IHNldFRpbWVvdXQoZiwgdGhpcy5fbWFwTW92ZUNhbGxiYWNrRGVsYXlzW2luZF0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIGEgbGF5ZXIgdG8gdGhlIGludGVyYWN0aW9uXHJcbiAgICAgKiBAcGFyYW0gIGx5ciAtIGxheWVyIHRvIGFkZFxyXG4gICAgICogQHBhcmFtIHRyaWdnZXJPbkFkZCAtIGlmIHRoZSBsYXllciBzaG91bGQgYmUgbG9hZGVkIG9uIGFkZFxyXG4gICAgICovXHJcbiAgICBhZGRWZWN0b3JMYXllcihseXI6IExheWVyQmFzZVZlY3RvciwgdHJpZ2dlck9uQWRkOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgICAgIGlmICh0aGlzLl9hcnJMYXllci5pbmRleE9mKGx5cikgPiAtMSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnYWxyZWFkeSBhZGRlZCAnICsgbHlyLm5hbWUgKyAnIHRvIG1hcCBtb3ZlJyk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2NoZWNrSW5pdCgpO1xyXG5cclxuICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0LnB1c2gobnVsbCk7XHJcbiAgICAgICAgdGhpcy5fYXJyTHlyVGltZW91dC5wdXNoKG51bGwpO1xyXG4gICAgICAgIHRoaXMuX2FyckxheWVyLnB1c2gobHlyKTtcclxuICAgICAgICB0aGlzLl9sb29rdXBMYXllcltseXIuaWRdID0gbHlyO1xyXG5cclxuICAgICAgICB0cmlnZ2VyT25BZGQgPSB0eXBlb2YgdHJpZ2dlck9uQWRkID09ICdib29sZWFuJyA/IHRyaWdnZXJPbkFkZCA6IHRydWU7XHJcblxyXG4gICAgICAgIGlmICh0cmlnZ2VyT25BZGQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX21hcEV4dGVudCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJMeXJMb2FkKGx5ciwgdGhpcy5fYXJyTGF5ZXIubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIGFkZCBhIGNhbGxiYWNrIHRvIHRoZSBtYXAgbW92ZSBldmVudFxyXG4gICAgICogQHBhcmFtIGZ1bmMgLSBjYWxsYmFjayBmdW5jdGlvblxyXG4gICAgICogQHBhcmFtIGNvbnRleHQgLSB0aGUgY29udGV4dCB0byB1c2UgZm9yIHRoaXMgZnVuY3Rpb25cclxuICAgICAqIEBwYXJhbSBkZWxheT01MCB0aGUgZGVsYXkgYmVmb3JlIGNhbGwgbG9hZFxyXG4gICAgICogQHBhcmFtIHRyaWdnZXJPbkFkZCBpZiB0aGUgbGF5ZXIgc2hvdWxkIGJlIGxvYWRlZCBvbiBhZGQgdG8gbWFwTW92ZVxyXG4gICAgICogQHBhcmFtIGZ1bmN0aW9uSWQgb3B0aW9uYWwgaWQgdG8gcmVmZXJlbmNlIHRoZSBmdW5jdGlvbiBsYXRlciBmb3Igb3V0c2lkZSB0cmlnZ2VyaW5nXHJcbiAgICAgKi9cclxuICAgIGFkZENhbGxiYWNrKGZ1bmM6IG1hcE1vdmVDYWxsYmFja0Z1bmN0aW9uLCBjb250ZXh0PzogYW55LCBkZWxheT86IG51bWJlciwgdHJpZ2dlck9uQWRkPyA6IGJvb2xlYW4sIGZ1bmN0aW9uSWQ/OiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX21hcE1vdmVDYWxsYmFja3MuaW5kZXhPZihmdW5jKSA+IC0xKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCd0aGlzIGZ1bmN0aW9uIGFscmVhZHkgYWRkZWQgdG8gbWFwIG1vdmUnKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICBpZiAoIWZ1bmN0aW9uSWQpe1xyXG4gICAgICAgICAgICBmdW5jdGlvbklkID0gbWFrZUd1aWQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja3MucHVzaChmdW5jKTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzTG9va3VwW2Z1bmN0aW9uSWRdID0gZnVuY3Rpb25JZDtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tEZWxheXMucHVzaCh0eXBlb2YgZGVsYXkgPT0gJ251bWJlcicgPyBkZWxheSA6IDUwKTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tDb250ZXh0LnB1c2goY2hlY2tEZWZpbmVkLmRlZmluZWRBbmROb3ROdWxsKGNvbnRleHQpID8gY29udGV4dCA6IG51bGwpO1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXQucHVzaChudWxsKTtcclxuXHJcbiAgICAgICAgdHJpZ2dlck9uQWRkID0gdHlwZW9mIHRyaWdnZXJPbkFkZCA9PSAnYm9vbGVhbicgPyB0cmlnZ2VyT25BZGQgOiB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodHJpZ2dlck9uQWRkKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9tYXBFeHRlbnQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTWFwRXh0ZW50KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy50cmlnZ2VyTW92ZUNhbGxiYWNrKHRoaXMuX21hcE1vdmVDYWxsYmFja3MubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5ubS5NYXBNb3ZlQ2xzID0gTWFwTW92ZUNscztcclxuZXhwb3J0IGRlZmF1bHQgTWFwTW92ZUNscztcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapMoveCls.ts\n// module id = 11\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar mapInteractionBase_1 = require(\"./mapInteractionBase\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('olHelpers');\r\nvar FeatureLayerProperties = (function () {\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 function FeatureLayerProperties(feature, layer, layerIndex, selectionLayer, esriLayerName) {\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 Object.defineProperty(FeatureLayerProperties.prototype, \"layerName\", {\r\n get: function () {\r\n if (typeof this.esriLayerName == 'string') {\r\n return this.esriLayerName;\r\n }\r\n else {\r\n return this.layer.name;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return FeatureLayerProperties;\r\n}());\r\nexports.FeatureLayerProperties = FeatureLayerProperties;\r\n/**\r\n * map popup class\r\n * @augments MapInteractionBase\r\n */\r\nvar MapPopupCls = (function (_super) {\r\n __extends(MapPopupCls, _super);\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 * map popup constructor\r\n */\r\n function MapPopupCls() {\r\n var _this = _super.call(this, 'map popup') || this;\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 //let a = function($jqueryContent){console.log($jqueryContent)};\r\n //this._popupChangedLookup = {'a': a};\r\n _this._popupChangedFunctions = [];\r\n _this._esriMapServiceLayers = [];\r\n _this._popupOpen = false;\r\n _this._popupCoordinate = null;\r\n _this._passThroughLayerFeatureArray = [];\r\n _this._currentPopupIndex = -1;\r\n _this._popupContentLength = 0;\r\n return _this;\r\n }\r\n /**\r\n * map popup initialization\r\n * @param {ol.Map} theMap - the ol map\r\n */\r\n MapPopupCls.prototype.init = function (theMap) {\r\n var _this = this;\r\n _super.prototype.init.call(this, theMap);\r\n var $map;\r\n var target = this.map.getTarget();\r\n if (typeof target == 'string') {\r\n $map = $('#' + target);\r\n }\r\n else {\r\n $map = $(target);\r\n }\r\n $map.append('<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 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 var _ease = function (n) {\r\n return ol.easing.inAndOut(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 this._map.addOverlay(this._popupOverlay);\r\n this._$popupCloser.click(function (evt) {\r\n _this.closePopup();\r\n });\r\n // display popup on click\r\n this._map.on('singleclick', function (evt) {\r\n _this.closePopup();\r\n _this._popupCoordinate = evt['coordinate'];\r\n // esri map service layers\r\n if (_this._esriMapServiceLayers.length > 0) {\r\n var 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()).join(','),\r\n imageDisplay: _this._map.getSize().join(',') + ',96',\r\n returnGeometry: true,\r\n tolerance: 15,\r\n f: 'pjson'\r\n };\r\n for (var _i = 0, _a = _this._esriMapServiceLayers; _i < _a.length; _i++) {\r\n var l = _a[_i];\r\n l.getPopupInfo(queryParams);\r\n }\r\n }\r\n var layerFeatureObjectArray = _this._featuresAtPixel(evt['pixel']);\r\n _this._passThroughLayerFeatureArray = [];\r\n _this._currentPopupIndex = -1;\r\n for (var i = 0; i < layerFeatureObjectArray.length; i++) {\r\n var featObj = layerFeatureObjectArray[i];\r\n var props = featObj.feature.getProperties();\r\n var popupContentResponse = _this._arrPopupContentFunction[featObj.layerIndex](props, _this._$popupContent);\r\n //skip if return was false\r\n if (popupContentResponse === false) {\r\n //continue;\r\n }\r\n else if (typeof popupContentResponse == 'string') {\r\n featObj.popupContent = popupContentResponse;\r\n _this._passThroughLayerFeatureArray.push(featObj);\r\n }\r\n else {\r\n featObj.selectionLayer.getSource().addFeature(featObj.feature);\r\n }\r\n }\r\n _this._popupContentLength = _this._passThroughLayerFeatureArray.length;\r\n _this._currentPopupIndex = -1;\r\n var 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 popupHtml += '</div>';\r\n _this._$popupContent.html(popupHtml);\r\n _this._$popupContent.find('.previous-popup').click(function () {\r\n if (_this._popupContentLength == 1) {\r\n return;\r\n }\r\n if (_this._currentPopupIndex == 0) {\r\n _this._currentPopupIndex = _this._popupContentLength - 1;\r\n }\r\n else {\r\n _this._currentPopupIndex--;\r\n }\r\n _this._triggerFeatSelect();\r\n });\r\n var nextPopup = _this._$popupContent.find('.next-popup');\r\n nextPopup.click(function () {\r\n if (_this._popupContentLength == 1 && _this._currentPopupIndex > -1) {\r\n return;\r\n }\r\n if (_this._currentPopupIndex == _this._popupContentLength - 1) {\r\n _this._currentPopupIndex = 0;\r\n }\r\n else {\r\n _this._currentPopupIndex++;\r\n }\r\n _this._triggerFeatSelect();\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 //change mouse cursor when over marker\r\n this._map.on('pointermove', function (evt) {\r\n if (evt['dragging']) {\r\n return;\r\n }\r\n var pixel = _this.map.getEventPixel(evt['originalEvent']);\r\n var hit = _this.map.hasFeatureAtPixel(pixel, function (lyrCandidate) {\r\n for (var _i = 0, _a = _this._arrPopupOlLayers; _i < _a.length; _i++) {\r\n var olLayer = _a[_i];\r\n if (lyrCandidate == olLayer) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n });\r\n var mapElement = _this.map.getTargetElement();\r\n mapElement.style.cursor = hit ? 'pointer' : '';\r\n });\r\n return true;\r\n };\r\n /**\r\n * helper to select features\r\n * @private\r\n */\r\n MapPopupCls.prototype._triggerFeatSelect = function () {\r\n var $currentPopupItemNumber = this._$popupContent.find('.current-popup-item-number');\r\n var $innerPopup = this._$popupContent.find('.ol-popup-inner');\r\n var $layerNameSpan = this._$popupContent.find('.current-popup-layer-name');\r\n this.clearSelection();\r\n var 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 (var _i = 0, _a = this._popupChangedFunctions; _i < _a.length; _i++) {\r\n var f = _a[_i];\r\n f(this._$popupContent);\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 MapPopupCls.prototype.addMapServicePopupContent = function (feature, lyr, popupContent, esriName) {\r\n var featLayerObject = new FeatureLayerProperties(feature, lyr, this._popupContentLength, this._selectionLayerLookup[lyr.id], esriName);\r\n featLayerObject.popupContent = popupContent;\r\n this._passThroughLayerFeatureArray.push(featLayerObject);\r\n this._popupContentLength++;\r\n $('.popup-content-length').html(this._popupContentLength.toFixed());\r\n if (!this._popupOpen) {\r\n this._$popupContent.find('.next-popup').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 *\r\n * @param pixel - the ol pixel\r\n * @returns feature layer properties\r\n * @private\r\n */\r\n MapPopupCls.prototype._featuresAtPixel = function (pixel) {\r\n var _this = this;\r\n var layerFeatureObjectArray = [];\r\n this.map.forEachFeatureAtPixel(pixel, function (feature, layer) {\r\n var lyrIndex = _this._arrPopupOlLayers.indexOf(layer);\r\n if (lyrIndex > -1) {\r\n layerFeatureObjectArray.push(new FeatureLayerProperties(feature, _this._arrPopupLayers[lyrIndex], lyrIndex, _this._selectionLayers[lyrIndex]));\r\n }\r\n });\r\n return layerFeatureObjectArray;\r\n };\r\n MapPopupCls.prototype.closePopup = function () {\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 return false;\r\n };\r\n ;\r\n /**\r\n *\r\n * @param chgFunction - popup change function\r\n */\r\n MapPopupCls.prototype.addPopupChangedFunction = function (chgFunction) {\r\n this._popupChangedFunctions.push(chgFunction);\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 MapPopupCls.prototype._addPopupLayer = function (lyr, selectionStyle) {\r\n this._checkInit();\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 var theStyle;\r\n if (selectionStyle.olStyle) {\r\n theStyle = selectionStyle.olStyle;\r\n }\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 var selectionLayer = new ol.layer.Vector({\r\n source: new ol.source.Vector(),\r\n style: theStyle\r\n });\r\n selectionLayer.setZIndex(100);\r\n this._selectionLayers.push(selectionLayer);\r\n this._selectionLayerLookup[lyr.id] = selectionLayer;\r\n this.map.addLayer(selectionLayer);\r\n return selectionLayer;\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 MapPopupCls.prototype.addVectorPopup = function (lyr, popupContentFunction, selectionStyle) {\r\n var 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 return selectionLayer;\r\n };\r\n ;\r\n /**\r\n *\r\n * @param {LayerBase} lyr - layer\r\n */\r\n MapPopupCls.prototype.removeVectorPopup = function (lyr) {\r\n var idx = this._arrPopupLayerIds.indexOf(lyr.id);\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 * @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 MapPopupCls.prototype.addMapServicePopup = function (lyr, selectionStyle) {\r\n var selectionLayer = this._addPopupLayer(lyr, selectionStyle);\r\n this._esriMapServiceLayers.push(lyr);\r\n return selectionLayer;\r\n };\r\n MapPopupCls.prototype.clearSelection = function () {\r\n this._checkInit();\r\n for (var i = 0; i < this._selectionLayers.length; i++) {\r\n this._selectionLayers[i].getSource().clear();\r\n }\r\n for (var _i = 0, _a = this._mapClickFunctions; _i < _a.length; _i++) {\r\n var f = _a[_i];\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 MapPopupCls.prototype.addMapClickFunction = function (func) {\r\n this._mapClickFunctions.push(func);\r\n };\r\n return MapPopupCls;\r\n}(mapInteractionBase_1.default));\r\nexports.MapPopupCls = MapPopupCls;\r\nnm.MapPopupCls = MapPopupCls;\r\nexports.default = MapPopupCls;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwUG9wdXBDbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBQb3B1cENscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7Ozs7Ozs7Ozs7OztBQUVILDJEQUFzRDtBQUV0RCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBR2pDLDBCQUE2QjtBQUU3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBMEJoQztJQVNJOzs7Ozs7O09BT0c7SUFDSCxnQ0FBWSxPQUFtQixFQUFFLEtBQXlDLEVBQUUsVUFBa0IsRUFBRSxjQUErQixFQUFFLGFBQXNCO1FBQ25KLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxhQUFhLElBQUksUUFBUSxHQUFHLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDdEYsQ0FBQztJQUVELHNCQUFJLDZDQUFTO2FBQWI7WUFDSSxFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDOUIsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUMzQixDQUFDO1FBQ0wsQ0FBQzs7O09BQUE7SUFDTCw2QkFBQztBQUFELENBQUMsQUFqQ0QsSUFpQ0M7QUFqQ1ksd0RBQXNCO0FBbUNuQzs7O0dBR0c7QUFDSDtJQUFpQywrQkFBa0I7SUFxQi9DOzs7OztPQUtHO0lBR0g7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QWtCLEdBeWNsRDtBQXpjWSxrQ0FBVztBQTBjeEIsRUFBRSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDN0Isa0JBQWUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMy8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBNYXBJbnRlcmFjdGlvbkJhc2UgZnJvbSAnLi9tYXBJbnRlcmFjdGlvbkJhc2UnO1xyXG5pbXBvcnQgcHJvcGVydGllc1pvb21TdHlsZSBmcm9tICcuLi9vbEhlbHBlcnMvcHJvcGVydGllc1pvb21TdHlsZSc7XHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQge0xheWVyQmFzZVZlY3Rvcn0gZnJvbSBcIi4uL2xheWVycy9MYXllckJhc2VWZWN0b3JcIjtcclxuaW1wb3J0IExheWVyRXNyaU1hcFNlcnZlciBmcm9tIFwiLi4vbGF5ZXJzL0xheWVyRXNyaU1hcFNlcnZlclwiO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5cclxuY29uc3Qgbm0gPSBwcm92aWRlKCdvbEhlbHBlcnMnKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgcG9wdXBDaGFuZ2VkRnVuY3Rpb24ge1xyXG4gICAgKCRwb3BDb250ZW50OiBKUXVlcnkpOiBhbnk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBwb3B1cENhbGxiYWNrIHtcclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRoZSBwb3B1cFxyXG4gICAgICogQHBhcmFtIGZlYXR1cmVQcm9wZXJ0aWVzXHJcbiAgICAgKiBAcGFyYW0ganFSZWZcclxuICAgICAqL1xyXG4gICAgKGZlYXR1cmVQcm9wZXJ0aWVzOiBPYmplY3QsIGpxUmVmPzogSlF1ZXJ5KTogc3RyaW5nIHwgYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIG1hcEV2ZW50IHtcclxuICAgIGNvb3JkaW5hdGU6IG9sLkNvb3JkaW5hdGU7XHJcbiAgICBwaXhlbDogb2wuUGl4ZWw7XHJcbiAgICBkcmFnZ2luZzogYm9vbGVhbnxhbnk7XHJcbiAgICBvcmlnaW5hbEV2ZW50OiBFdmVudDtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlTGF5ZXJQcm9wZXJ0aWVzIHtcclxuXHJcbiAgICBmZWF0dXJlOiBvbC5GZWF0dXJlO1xyXG4gICAgbGF5ZXI6IExheWVyQmFzZVZlY3RvcnxMYXllckVzcmlNYXBTZXJ2ZXI7XHJcbiAgICBsYXllckluZGV4OiBudW1iZXI7XHJcbiAgICBzZWxlY3Rpb25MYXllcjogb2wubGF5ZXIuVmVjdG9yO1xyXG4gICAgcG9wdXBDb250ZW50OiBzdHJpbmc7XHJcbiAgICBlc3JpTGF5ZXJOYW1lOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGZlYXR1cmUgdGhlIGZlYXR1cmVcclxuICAgICAqIEBwYXJhbSBsYXllciAtIHRoZSBsYXllciBpbiB0aGUgcG9wdXBcclxuICAgICAqIEBwYXJhbSBsYXllckluZGV4IC0gaW5kZXggb2YgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gc2VsZWN0aW9uTGF5ZXIgLSB0aGUgb2wgc2VsZWN0aW9uIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gW2VzcmlMYXllck5hbWU9dW5kZWZpbmVkXSAtIGVzcmkgbGF5ZXIgbmFtZVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihmZWF0dXJlOiBvbC5GZWF0dXJlLCBsYXllcjogTGF5ZXJCYXNlVmVjdG9yfExheWVyRXNyaU1hcFNlcnZlciwgbGF5ZXJJbmRleDogbnVtYmVyLCBzZWxlY3Rpb25MYXllcjogb2wubGF5ZXIuVmVjdG9yLCBlc3JpTGF5ZXJOYW1lPzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5mZWF0dXJlID0gZmVhdHVyZTtcclxuICAgICAgICB0aGlzLmxheWVyID0gbGF5ZXI7XHJcbiAgICAgICAgdGhpcy5sYXllckluZGV4ID0gbGF5ZXJJbmRleDtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbkxheWVyID0gc2VsZWN0aW9uTGF5ZXI7XHJcbiAgICAgICAgdGhpcy5wb3B1cENvbnRlbnQgPSAnJztcclxuICAgICAgICB0aGlzLmVzcmlMYXllck5hbWUgPSB0eXBlb2YgZXNyaUxheWVyTmFtZSA9PSAnc3RyaW5nJyA/IGVzcmlMYXllck5hbWUgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGxheWVyTmFtZSgpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXNyaUxheWVyTmFtZSA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lc3JpTGF5ZXJOYW1lO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxheWVyLm5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogbWFwIHBvcHVwIGNsYXNzXHJcbiAqIEBhdWdtZW50cyBNYXBJbnRlcmFjdGlvbkJhc2VcclxuICovXHJcbmV4cG9ydCBjbGFzcyBNYXBQb3B1cENscyBleHRlbmRzIE1hcEludGVyYWN0aW9uQmFzZSB7XHJcbiAgICBwcml2YXRlIF9wb3B1cE9wZW46IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIF9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5OiBBcnJheTxGZWF0dXJlTGF5ZXJQcm9wZXJ0aWVzPjtcclxuICAgIHByaXZhdGUgX2N1cnJlbnRQb3B1cEluZGV4OiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9wb3B1cENvbnRlbnRMZW5ndGg6IG51bWJlcjtcclxuICAgIHByaXZhdGUgX2VzcmlNYXBTZXJ2aWNlTGF5ZXJzOiBBcnJheTxMYXllckVzcmlNYXBTZXJ2ZXI+O1xyXG4gICAgcHJpdmF0ZSBfJHBvcHVwQ2xvc2VyOiBKUXVlcnk7XHJcbiAgICBwcml2YXRlIF8kcG9wdXBDb250ZW50OiBKUXVlcnk7XHJcbiAgICBwcml2YXRlIF8kcG9wdXBDb250YWluZXI6IEpRdWVyeTtcclxuICAgIHByaXZhdGUgX3BvcHVwT3ZlcmxheTogb2wuT3ZlcmxheTtcclxuICAgIHByaXZhdGUgX2FyclBvcHVwTGF5ZXJzOiBBcnJheTxMYXllckJhc2VWZWN0b3I+O1xyXG4gICAgcHJpdmF0ZSBfcG9wdXBDb29yZGluYXRlOiBvbC5Db29yZGluYXRlO1xyXG4gICAgcHJpdmF0ZSBfcG9wdXBDaGFuZ2VkRnVuY3Rpb25zOiBBcnJheTxwb3B1cENoYW5nZWRGdW5jdGlvbj47XHJcbiAgICBwcml2YXRlIF9tYXBDbGlja0Z1bmN0aW9uczogQXJyYXk8RnVuY3Rpb24+O1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uTGF5ZXJMb29rdXA6IE9iamVjdDtcclxuICAgIHByaXZhdGUgX2FyclBvcHVwTGF5ZXJJZHM6IEFycmF5PHN0cmluZz47XHJcbiAgICBwcml2YXRlIF9hcnJQb3B1cExheWVyTmFtZXM6IEFycmF5PHN0cmluZz47XHJcbiAgICBwcml2YXRlIF9hcnJQb3B1cE9sTGF5ZXJzOiBBcnJheTxvbC5sYXllci5WZWN0b3I+O1xyXG4gICAgcHJpdmF0ZSBfYXJyUG9wdXBDb250ZW50RnVuY3Rpb246IEFycmF5PHBvcHVwQ2FsbGJhY2s+O1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uTGF5ZXJzOiBBcnJheTxvbC5sYXllci5WZWN0b3I+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5pdGlvbiBmb3Igb3BlbmxheWVycyBzdHlsZSBmdW5jdGlvblxyXG4gICAgICogQGNhbGxiYWNrIG9sU3R5bGVGdW5jdGlvblxyXG4gICAgICogJnBhcmFtIGZlYXR1cmUgdGhlIG9wZW5sYXllcnMgdmVjdG9yIGZlYXR1cmVcclxuICAgICAqICRwYXJhbVxyXG4gICAgICovXHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIHBvcHVwIGNvbnN0cnVjdG9yXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCdtYXAgcG9wdXAnKTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cExheWVySWRzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcnMgPSBbXTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb24gPSBbXTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250YWluZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ29udGVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDbG9zZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVycyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVyTG9va3VwID0ge307XHJcbiAgICAgICAgdGhpcy5fbWFwQ2xpY2tGdW5jdGlvbnMgPSBbXTtcclxuXHJcbiAgICAgICAgLy9sZXQgYSA9IGZ1bmN0aW9uKCRqcXVlcnlDb250ZW50KXtjb25zb2xlLmxvZygkanF1ZXJ5Q29udGVudCl9O1xyXG4gICAgICAgIC8vdGhpcy5fcG9wdXBDaGFuZ2VkTG9va3VwID0geydhJzogYX07XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDaGFuZ2VkRnVuY3Rpb25zID0gW107XHJcbiAgICAgICAgdGhpcy5fZXNyaU1hcFNlcnZpY2VMYXllcnMgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5fcG9wdXBPcGVuID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDb29yZGluYXRlID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5fcGFzc1Rocm91Z2hMYXllckZlYXR1cmVBcnJheSA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IC0xO1xyXG4gICAgICAgIHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCA9IDA7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIHBvcHVwIGluaXRpYWxpemF0aW9uXHJcbiAgICAgKiBAcGFyYW0ge29sLk1hcH0gdGhlTWFwIC0gdGhlIG9sIG1hcFxyXG4gICAgICovXHJcbiAgICBpbml0KHRoZU1hcDogb2wuTWFwKSB7XHJcbiAgICAgICAgc3VwZXIuaW5pdCh0aGVNYXApO1xyXG5cclxuICAgICAgICBsZXQgJG1hcDtcclxuICAgICAgICBsZXQgdGFyZ2V0ID0gdGhpcy5tYXAuZ2V0VGFyZ2V0KCk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgICRtYXAgPSAkKCcjJyArIHRhcmdldCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAkbWFwID0gJCh0YXJnZXQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJG1hcC5hcHBlbmQoXHJcbiAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwib2wtcG9wdXBcIj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwib2wtcG9wdXAtY2xvc2VyXCI+WDwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+PC9kaXY+JyArXHJcbiAgICAgICAgICAgICc8L2Rpdj4nXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ29udGFpbmVyID0gJG1hcC5maW5kKCcub2wtcG9wdXAnKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250ZW50ID0gJG1hcC5maW5kKCcucG9wdXAtY29udGVudCcpO1xyXG4gICAgICAgIHRoaXMuXyRwb3B1cENsb3NlciA9ICRtYXAuZmluZCgnLm9sLXBvcHVwLWNsb3NlcicpO1xyXG5cclxuICAgICAgICBsZXQgX2Vhc2UgPSAobjogbnVtYmVyKTogbnVtYmVyID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG9sLmVhc2luZy5pbkFuZE91dChuKTtcclxuICAgICAgICB9O1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5ID0gbmV3IG9sLk92ZXJsYXkoe1xyXG4gICAgICAgICAgICBlbGVtZW50OiB0aGlzLl8kcG9wdXBDb250YWluZXJbMF0sXHJcbiAgICAgICAgICAgIGF1dG9QYW46IHRydWUsXHJcbiAgICAgICAgICAgIGF1dG9QYW5BbmltYXRpb246IHtcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyNTAsXHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IHRoZU1hcC5nZXRWaWV3KCkuZ2V0Q2VudGVyKCksXHJcbiAgICAgICAgICAgICAgICBlYXNpbmc6IF9lYXNlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWFwLmFkZE92ZXJsYXkodGhpcy5fcG9wdXBPdmVybGF5KTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ2xvc2VyLmNsaWNrKChldnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIGRpc3BsYXkgcG9wdXAgb24gY2xpY2tcclxuICAgICAgICB0aGlzLl9tYXAub24oJ3NpbmdsZWNsaWNrJywgKGV2dCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwQ29vcmRpbmF0ZSA9IGV2dFsnY29vcmRpbmF0ZSddO1xyXG5cclxuICAgICAgICAgICAgLy8gZXNyaSBtYXAgc2VydmljZSBsYXllcnNcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2VzcmlNYXBTZXJ2aWNlTGF5ZXJzLmxlbmd0aCA+IDApIHtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgcXVlcnlQYXJhbXMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZ2VvbWV0cnk6IGV2dFsnY29vcmRpbmF0ZSddLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgICAgICBnZW9tZXRyeVR5cGU6ICdlc3JpR2VvbWV0cnlQb2ludCcsXHJcbiAgICAgICAgICAgICAgICAgICAgbGF5ZXJzOiAnYWxsJyxcclxuICAgICAgICAgICAgICAgICAgICBzcjogdGhpcy5fbWFwLmdldFZpZXcoKS5nZXRQcm9qZWN0aW9uKCkuZ2V0Q29kZSgpLnNwbGl0KCc6JylbMV0sXHJcbiAgICAgICAgICAgICAgICAgICAgbWFwRXh0ZW50OiAodGhpcy5fbWFwLmdldFZpZXcoKS5jYWxjdWxhdGVFeHRlbnQodGhpcy5fbWFwLmdldFNpemUoKSkgYXMgbnVtYmVyW10pLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZURpc3BsYXk6ICh0aGlzLl9tYXAuZ2V0U2l6ZSgpIGFzIG51bWJlcltdKS5qb2luKCcsJykgKyAnLDk2JyxcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm5HZW9tZXRyeTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICB0b2xlcmFuY2U6IDE1LFxyXG4gICAgICAgICAgICAgICAgICAgIGY6ICdwanNvbidcclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgbCBvZiB0aGlzLl9lc3JpTWFwU2VydmljZUxheWVycykge1xyXG4gICAgICAgICAgICAgICAgICAgIGwuZ2V0UG9wdXBJbmZvKHF1ZXJ5UGFyYW1zKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IGxheWVyRmVhdHVyZU9iamVjdEFycmF5ID0gdGhpcy5fZmVhdHVyZXNBdFBpeGVsKGV2dFsncGl4ZWwnXSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID0gLTE7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxheWVyRmVhdHVyZU9iamVjdEFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZmVhdE9iaiA9IGxheWVyRmVhdHVyZU9iamVjdEFycmF5W2ldO1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCBwcm9wcyA9IGZlYXRPYmouZmVhdHVyZS5nZXRQcm9wZXJ0aWVzKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHBvcHVwQ29udGVudFJlc3BvbnNlID0gdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb25bZmVhdE9iai5sYXllckluZGV4XShwcm9wcywgdGhpcy5fJHBvcHVwQ29udGVudCk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy9za2lwIGlmIHJldHVybiB3YXMgZmFsc2VcclxuICAgICAgICAgICAgICAgIGlmIChwb3B1cENvbnRlbnRSZXNwb25zZSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL2NvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcG9wdXBDb250ZW50UmVzcG9uc2UgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICBmZWF0T2JqLnBvcHVwQ29udGVudCA9IHBvcHVwQ29udGVudFJlc3BvbnNlIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5LnB1c2goZmVhdE9iaik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGZlYXRPYmouc2VsZWN0aW9uTGF5ZXIuZ2V0U291cmNlKCkuYWRkRmVhdHVyZShmZWF0T2JqLmZlYXR1cmUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cENvbnRlbnRMZW5ndGggPSB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID0gLTE7XHJcblxyXG4gICAgICAgICAgICBsZXQgcG9wdXBIdG1sID0gJzxkaXYgY2xhc3M9XCJvbC1wb3B1cC1uYXZcIj4nO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzxzcGFuIGNsYXNzPVwicHJldmlvdXMtcG9wdXAgb2wtcG9wdXAtbmF2LWFycm93XCI+JiM5NjY0Ozwvc3Bhbj4nO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzxzcGFuIGNsYXNzPVwibmV4dC1wb3B1cCBvbC1wb3B1cC1uYXYtYXJyb3dcIj4mIzk2NTQ7PC9zcGFuPic7XHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSBgPHNwYW4gY2xhc3M9XCJjdXJyZW50LXBvcHVwLWl0ZW0tbnVtYmVyXCIgc3R5bGU9XCJmb250LXdlaWdodDogYm9sZDtcIj48L3NwYW4+YDtcclxuICAgICAgICAgICAgcG9wdXBIdG1sICs9IGA8c3Bhbj4mbmJzcDtvZiZuYnNwOzwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gYDxzcGFuIGNsYXNzPVwicG9wdXAtY29udGVudC1sZW5ndGhcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkO1wiPiR7dGhpcy5fcG9wdXBDb250ZW50TGVuZ3RofTwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gYDxzcGFuPiZuYnNwOyZuYnNwOy0mbmJzcDsmbmJzcDs8L3NwYW4+YDtcclxuICAgICAgICAgICAgcG9wdXBIdG1sICs9IGA8c3BhbiBjbGFzcz1cImN1cnJlbnQtcG9wdXAtbGF5ZXItbmFtZVwiPjwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzwvZGl2Pic7XHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSAnPGRpdiBjbGFzcz1cIm9sLXBvcHVwLWlubmVyXCI+JztcclxuXHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSAnPC9kaXY+JztcclxuXHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuaHRtbChwb3B1cEh0bWwpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fJHBvcHVwQ29udGVudC5maW5kKCcucHJldmlvdXMtcG9wdXAnKS5jbGljaygoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4LS07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyRmVhdFNlbGVjdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGxldCBuZXh0UG9wdXAgPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5uZXh0LXBvcHVwJyk7XHJcblxyXG4gICAgICAgICAgICBuZXh0UG9wdXAuY2xpY2soKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCA9PSAxICYmIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID09IHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IDA7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyRmVhdFNlbGVjdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgbmV4dFBvcHVwLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9wb3B1cE92ZXJsYXkuc2V0UG9zaXRpb24odGhpcy5fcG9wdXBDb29yZGluYXRlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuc2Nyb2xsVG9wKDApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcG9wdXBPcGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvL2NoYW5nZSBtb3VzZSBjdXJzb3Igd2hlbiBvdmVyIG1hcmtlclxyXG4gICAgICAgIHRoaXMuX21hcC5vbigncG9pbnRlcm1vdmUnLCAoZXZ0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChldnRbJ2RyYWdnaW5nJ10pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgcGl4ZWwgPSB0aGlzLm1hcC5nZXRFdmVudFBpeGVsKGV2dFsnb3JpZ2luYWxFdmVudCddKTtcclxuICAgICAgICAgICAgbGV0IGhpdCA9IHRoaXMubWFwLmhhc0ZlYXR1cmVBdFBpeGVsKHBpeGVsLCAobHlyQ2FuZGlkYXRlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBvbExheWVyIG9mIHRoaXMuX2FyclBvcHVwT2xMYXllcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobHlyQ2FuZGlkYXRlID09IG9sTGF5ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGxldCBtYXBFbGVtZW50ID0gdGhpcy5tYXAuZ2V0VGFyZ2V0RWxlbWVudCgpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICBtYXBFbGVtZW50LnN0eWxlLmN1cnNvciA9IGhpdCA/ICdwb2ludGVyJyA6ICcnO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGhlbHBlciB0byBzZWxlY3QgZmVhdHVyZXNcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIF90cmlnZ2VyRmVhdFNlbGVjdCgpIHtcclxuICAgICAgICBsZXQgJGN1cnJlbnRQb3B1cEl0ZW1OdW1iZXIgPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5jdXJyZW50LXBvcHVwLWl0ZW0tbnVtYmVyJyk7XHJcbiAgICAgICAgbGV0ICRpbm5lclBvcHVwID0gdGhpcy5fJHBvcHVwQ29udGVudC5maW5kKCcub2wtcG9wdXAtaW5uZXInKTtcclxuICAgICAgICBsZXQgJGxheWVyTmFtZVNwYW4gPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5jdXJyZW50LXBvcHVwLWxheWVyLW5hbWUnKTtcclxuICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICAgICAgbGV0IGx5ckZlYXRPYmogPSB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5W3RoaXMuX2N1cnJlbnRQb3B1cEluZGV4XTtcclxuICAgICAgICAkY3VycmVudFBvcHVwSXRlbU51bWJlci5odG1sKCh0aGlzLl9jdXJyZW50UG9wdXBJbmRleCArIDEpLnRvRml4ZWQoKSk7XHJcbiAgICAgICAgJGxheWVyTmFtZVNwYW4uaHRtbChseXJGZWF0T2JqLmxheWVyTmFtZSk7XHJcbiAgICAgICAgJGlubmVyUG9wdXAuaHRtbChseXJGZWF0T2JqLnBvcHVwQ29udGVudCk7XHJcbiAgICAgICAgbHlyRmVhdE9iai5zZWxlY3Rpb25MYXllci5nZXRTb3VyY2UoKS5hZGRGZWF0dXJlKGx5ckZlYXRPYmouZmVhdHVyZSk7XHJcbiAgICAgICAgZm9yIChsZXQgZiBvZiB0aGlzLl9wb3B1cENoYW5nZWRGdW5jdGlvbnMpIHtcclxuICAgICAgICAgICAgZih0aGlzLl8kcG9wdXBDb250ZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBmZWF0dXJlIC0gdGhlIG9sIGZlYXR1cmVcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJFc3JpTWFwU2VydmVyfSBseXIgLSB0aGUgbWFwIHNlcnZlciBsYXllclxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHBvcHVwQ29udGVudCAtIHBvcHVwIGNvbnRlbnRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBlc3JpTmFtZSAtIGVzcmkgbGF5ZXIgbmFtZVxyXG4gICAgICovXHJcbiAgICBhZGRNYXBTZXJ2aWNlUG9wdXBDb250ZW50KGZlYXR1cmU6IG9sLkZlYXR1cmUsIGx5cjogTGF5ZXJFc3JpTWFwU2VydmVyLCBwb3B1cENvbnRlbnQ6IHN0cmluZywgZXNyaU5hbWU6IHN0cmluZykge1xyXG5cclxuICAgICAgICBsZXQgZmVhdExheWVyT2JqZWN0ID0gbmV3IEZlYXR1cmVMYXllclByb3BlcnRpZXMoXHJcbiAgICAgICAgICAgIGZlYXR1cmUsIGx5ciwgdGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoLCB0aGlzLl9zZWxlY3Rpb25MYXllckxvb2t1cFtseXIuaWRdLCBlc3JpTmFtZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgZmVhdExheWVyT2JqZWN0LnBvcHVwQ29udGVudCA9IHBvcHVwQ29udGVudDtcclxuXHJcbiAgICAgICAgdGhpcy5fcGFzc1Rocm91Z2hMYXllckZlYXR1cmVBcnJheS5wdXNoKGZlYXRMYXllck9iamVjdCk7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoKys7XHJcblxyXG4gICAgICAgICQoJy5wb3B1cC1jb250ZW50LWxlbmd0aCcpLmh0bWwodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoLnRvRml4ZWQoKSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fcG9wdXBPcGVuKSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuZmluZCgnLm5leHQtcG9wdXAnKS50cmlnZ2VyKCdjbGljaycpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5LnNldFBvc2l0aW9uKHRoaXMuX3BvcHVwQ29vcmRpbmF0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuc2Nyb2xsVG9wKDApO1xyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cE9wZW4gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gIHBpeGVsIC0gdGhlIG9sIHBpeGVsXHJcbiAgICAgKiBAcmV0dXJucyAgZmVhdHVyZSBsYXllciBwcm9wZXJ0aWVzXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBfZmVhdHVyZXNBdFBpeGVsKHBpeGVsOiBvbC5QaXhlbCk6IEFycmF5PEZlYXR1cmVMYXllclByb3BlcnRpZXM+IHtcclxuICAgICAgICBsZXQgbGF5ZXJGZWF0dXJlT2JqZWN0QXJyYXkgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5tYXAuZm9yRWFjaEZlYXR1cmVBdFBpeGVsKHBpeGVsLCAoZmVhdHVyZTogb2wuRmVhdHVyZSwgbGF5ZXI6IG9sLmxheWVyLlZlY3RvcikgPT4ge1xyXG4gICAgICAgICAgICBsZXQgbHlySW5kZXggPSB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzLmluZGV4T2YobGF5ZXIpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGx5ckluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIGxheWVyRmVhdHVyZU9iamVjdEFycmF5LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAgbmV3IEZlYXR1cmVMYXllclByb3BlcnRpZXMoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZlYXR1cmUsIHRoaXMuX2FyclBvcHVwTGF5ZXJzW2x5ckluZGV4XSwgbHlySW5kZXgsIHRoaXMuX3NlbGVjdGlvbkxheWVyc1tseXJJbmRleF0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gbGF5ZXJGZWF0dXJlT2JqZWN0QXJyYXk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VQb3B1cCgpIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICB0aGlzLl9wb3B1cE9wZW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9wb3B1cE92ZXJsYXkuc2V0UG9zaXRpb24odW5kZWZpbmVkKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDbG9zZXJbMF0uYmx1cigpO1xyXG4gICAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24oKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250ZW50Lmh0bWwoJycpO1xyXG5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY2hnRnVuY3Rpb24gLSBwb3B1cCBjaGFuZ2UgZnVuY3Rpb25cclxuICAgICAqL1xyXG4gICAgYWRkUG9wdXBDaGFuZ2VkRnVuY3Rpb24oY2hnRnVuY3Rpb246IHBvcHVwQ2hhbmdlZEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDaGFuZ2VkRnVuY3Rpb25zLnB1c2goY2hnRnVuY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJCYXNlfCp9IGx5ciAtIHRoZSBsYXllciBiZWluZyBhY3RlZCBvblxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtzZWxlY3Rpb25TdHlsZT17fV0gdGhlIHNlbGVjdGlvbiBzdHlsZSBjb25maWd1cmF0aW9uXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3NlbGVjdGlvblN0eWxlLmNvbG9yPXJnYmEoMjU1LDE3MCwwLDAuNSldIHRoZSBzZWxlY3Rpb24gY29sb3JcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc2VsZWN0aW9uU3R5bGUud2lkdGg9MTBdIHRoZSBzZWxlY3Rpb24gd2lkdGggZm9yIGxpbmVhciBmZWF0dXJlc1xyXG4gICAgICogQHBhcmFtIHtvYmplY3R8ZnVuY3Rpb259IFtzZWxlY3Rpb25TdHlsZS5vbFN0eWxlPXVuZGVmaW5lZF0gYW4gb3BlbmxheWVycyBzdHlsZSBvYmplY3Qgb3IgZnVuY3Rpb25cclxuICAgICAqIEByZXR1cm5zICB0aGUgbmV3IHNlbGVjdGlvbiBsYXllclxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgX2FkZFBvcHVwTGF5ZXIobHlyOiBMYXllckJhc2VWZWN0b3IsIHNlbGVjdGlvblN0eWxlOiB7Y29sb3I/OiBzdHJpbmcsIHdpZHRoPzogbnVtYmVyLCBvbFN0eWxlPzogb2wuc3R5bGUuU3R5bGV9KTogb2wubGF5ZXIuVmVjdG9yIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuXHJcbiAgICAgICAgc2VsZWN0aW9uU3R5bGUgPSBzZWxlY3Rpb25TdHlsZSB8fCB7fTtcclxuICAgICAgICBzZWxlY3Rpb25TdHlsZS5jb2xvciA9IHNlbGVjdGlvblN0eWxlLmNvbG9yIHx8ICdyZ2JhKDI1NSwxNzAsMCwwLjUpJztcclxuICAgICAgICBzZWxlY3Rpb25TdHlsZS53aWR0aCA9IHNlbGVjdGlvblN0eWxlLndpZHRoIHx8IDEwO1xyXG5cclxuICAgICAgICBsZXQgdGhlU3R5bGU7XHJcblxyXG4gICAgICAgIGlmIChzZWxlY3Rpb25TdHlsZS5vbFN0eWxlKSB7XHJcbiAgICAgICAgICAgIHRoZVN0eWxlID0gc2VsZWN0aW9uU3R5bGUub2xTdHlsZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGVTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICBzdHJva2U6IG5ldyBvbC5zdHlsZS5TdHJva2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzZWxlY3Rpb25TdHlsZS5jb2xvcixcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogc2VsZWN0aW9uU3R5bGUud2lkdGhcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5DaXJjbGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHJhZGl1czogNyxcclxuICAgICAgICAgICAgICAgICAgICBmaWxsOiBuZXcgb2wuc3R5bGUuRmlsbCh7Y29sb3I6IHNlbGVjdGlvblN0eWxlLmNvbG9yfSksXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiBuZXcgb2wuc3R5bGUuU3Ryb2tlKHtjb2xvcjogc2VsZWN0aW9uU3R5bGUuY29sb3IsIHdpZHRoOiAxfSlcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgZmlsbDogbmV3IG9sLnN0eWxlLkZpbGwoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzZWxlY3Rpb25TdHlsZS5jb2xvclxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgc2VsZWN0aW9uTGF5ZXIgPSBuZXcgb2wubGF5ZXIuVmVjdG9yKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IG5ldyBvbC5zb3VyY2UuVmVjdG9yKCksXHJcbiAgICAgICAgICAgICAgICBzdHlsZTogdGhlU3R5bGVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHNlbGVjdGlvbkxheWVyLnNldFpJbmRleCgxMDApO1xyXG5cclxuICAgICAgICB0aGlzLl9zZWxlY3Rpb25MYXllcnMucHVzaChzZWxlY3Rpb25MYXllcik7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uTGF5ZXJMb29rdXBbbHlyLmlkXSA9IHNlbGVjdGlvbkxheWVyO1xyXG4gICAgICAgIHRoaXMubWFwLmFkZExheWVyKHNlbGVjdGlvbkxheWVyKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHNlbGVjdGlvbkxheWVyO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBwb3B1cCB0byB0aGUgbWFwXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyQmFzZXwqfSBseXIgVGhlIGxheWVyIHRoYXQgdGhlIHBvcHVwIHdpdGggYWN0IG9uXHJcbiAgICAgKiBAcGFyYW0ge3BvcHVwQ2FsbGJhY2t9IHBvcHVwQ29udGVudEZ1bmN0aW9uIC0gcG9wdXAgY29udGVudCBmdW5jdGlvbiB0aGF0IG1ha2VzIHBvcHVwIGluZm9cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbc2VsZWN0aW9uU3R5bGU9e31dIHRoZSBzZWxlY3Rpb24gc3R5bGUgY29uZmlndXJhdGlvblxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzZWxlY3Rpb25TdHlsZS5jb2xvcj1yZ2JhKDI1NSwxNzAsMCwwLjUpXSB0aGUgc2VsZWN0aW9uIGNvbG9yXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3NlbGVjdGlvblN0eWxlLndpZHRoPTEwXSB0aGUgc2VsZWN0aW9uIHdpZHRoIGZvciBsaW5lYXIgZmVhdHVyZXNcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fGZ1bmN0aW9ufSBbc2VsZWN0aW9uU3R5bGUub2xTdHlsZT11bmRlZmluZWRdIGFuIG9wZW5sYXllcnMgc3R5bGUgb2JqZWN0IG9yIGZ1bmN0aW9uXHJcbiAgICAgKiBAcmV0dXJucyB7b2JqZWN0fSBhIHJlZmVyZW5jZSB0byB0aGUgb2wgc2VsZWN0aW9uIGxheWVyXHJcbiAgICAgKi9cclxuICAgIGFkZFZlY3RvclBvcHVwKGx5cjogTGF5ZXJCYXNlVmVjdG9yLCBwb3B1cENvbnRlbnRGdW5jdGlvbjogcG9wdXBDYWxsYmFjayxcclxuICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblN0eWxlPzoge2NvbG9yPzogc3RyaW5nLCB3aWR0aD86IG51bWJlciwgb2xTdHlsZT86IG9sLnN0eWxlLlN0eWxlfSkge1xyXG4gICAgICAgIGxldCBzZWxlY3Rpb25MYXllciA9IHRoaXMuX2FkZFBvcHVwTGF5ZXIobHlyLCBzZWxlY3Rpb25TdHlsZSk7XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcklkcy5wdXNoKGx5ci5pZCk7XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzLnB1c2gobHlyLm5hbWUpO1xyXG4gICAgICAgIHRoaXMuX2FyclBvcHVwTGF5ZXJzLnB1c2gobHlyKTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzLnB1c2gobHlyLm9sTGF5ZXIpO1xyXG4gICAgICAgIHRoaXMuX2FyclBvcHVwQ29udGVudEZ1bmN0aW9uLnB1c2gocG9wdXBDb250ZW50RnVuY3Rpb24pO1xyXG5cclxuICAgICAgICByZXR1cm4gc2VsZWN0aW9uTGF5ZXI7XHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyQmFzZX0gbHlyIC0gbGF5ZXJcclxuICAgICAqL1xyXG4gICAgcmVtb3ZlVmVjdG9yUG9wdXAobHlyKSB7XHJcbiAgICAgICAgbGV0IGlkeCA9IHRoaXMuX2FyclBvcHVwTGF5ZXJJZHMuaW5kZXhPZihseXIuaWQpO1xyXG5cclxuICAgICAgICBpZiAoaWR4ID4gLTEpIHtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcklkcy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzLnNwbGljZShpZHgsIDEpO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJQb3B1cExheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBPbExheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb24uc3BsaWNlKGlkeCwgMSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NlbGVjdGlvbkxheWVyTG9va3VwW2x5ci5pZF07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJFc3JpTWFwU2VydmVyfSBseXIgLSBtYXAgc2VydmVyIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW3NlbGVjdGlvblN0eWxlPXt9XSB0aGUgc2VsZWN0aW9uIHN0eWxlIGNvbmZpZ3VyYXRpb25cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc2VsZWN0aW9uU3R5bGUuY29sb3I9cmdiYSgyNTUsMTcwLDAsMC41KV0gdGhlIHNlbGVjdGlvbiBjb2xvclxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzZWxlY3Rpb25TdHlsZS53aWR0aD0xMF0gdGhlIHNlbGVjdGlvbiB3aWR0aCBmb3IgbGluZWFyIGZlYXR1cmVzXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdHxmdW5jdGlvbn0gW3NlbGVjdGlvblN0eWxlLm9sU3R5bGU9dW5kZWZpbmVkXSBhbiBvcGVubGF5ZXJzIHN0eWxlIG9iamVjdCBvciBmdW5jdGlvblxyXG4gICAgICogQHJldHVybnMge29iamVjdH0gYSByZWZlcmVuY2UgdG8gdGhlIG9sIHNlbGVjdGlvbiBsYXllclxyXG4gICAgICovXHJcbiAgICBhZGRNYXBTZXJ2aWNlUG9wdXAobHlyLCBzZWxlY3Rpb25TdHlsZT86IG9sLnN0eWxlLlN0eWxlfEFycmF5PG9sLnN0eWxlLlN0eWxlPnxvbC5TdHlsZUZ1bmN0aW9uKSB7XHJcbiAgICAgICAgbGV0IHNlbGVjdGlvbkxheWVyID0gdGhpcy5fYWRkUG9wdXBMYXllcihseXIsIHNlbGVjdGlvblN0eWxlKTtcclxuICAgICAgICB0aGlzLl9lc3JpTWFwU2VydmljZUxheWVycy5wdXNoKGx5cik7XHJcblxyXG4gICAgICAgIHJldHVybiBzZWxlY3Rpb25MYXllcjtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhclNlbGVjdGlvbigpIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3NlbGVjdGlvbkxheWVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25MYXllcnNbaV0uZ2V0U291cmNlKCkuY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgZiBvZiB0aGlzLl9tYXBDbGlja0Z1bmN0aW9ucykge1xyXG4gICAgICAgICAgICBmKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBtYXAgaXMgY2xpY2tlZCBidXQgYmVmb3JlIGFueSBwb3B1cHMgYXJlIGltcGxlbWVudGVkXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIC0gdGhlIG1hcCBjbGljayBmdW5jdGlvblxyXG4gICAgICovXHJcbiAgICBhZGRNYXBDbGlja0Z1bmN0aW9uKGZ1bmM6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fbWFwQ2xpY2tGdW5jdGlvbnMucHVzaChmdW5jKTtcclxuICAgIH1cclxufVxyXG5ubS5NYXBQb3B1cENscyA9IE1hcFBvcHVwQ2xzO1xyXG5leHBvcnQgZGVmYXVsdCBNYXBQb3B1cENscztcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapPopupCls.ts\n// module id = 12\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 12/15/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('olHelpers');\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\nfunction quickMapBase(options) {\r\n options = options || {};\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 var $mapDiv = $('#' + options.divId);\r\n $mapDiv.css('position', 'relative');\r\n var 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 var 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 var 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 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 if (options.zoom < 0 || options.zoom > 28) {\r\n throw 'zoom out of range';\r\n }\r\n if (options.center.x >= -180 && options.center.x <= 180 && options.center.y >= -90 && options.center.y <= 90) {\r\n var p = new ol.geom.Point([options.center.x, options.center.y]);\r\n new ol.proj.Projection({ code: \"EPSG:4326\" });\r\n p.transform(new ol.proj.Projection({ code: \"EPSG:4326\" }), new ol.proj.Projection({ code: \"EPSG:3857\" }));\r\n var coordinates = p.getCoordinates();\r\n options.center.x = coordinates[0];\r\n options.center.y = coordinates[1];\r\n }\r\n var controls = ol.control.defaults({\r\n attributionOptions: { collapsible: false }\r\n });\r\n var 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 var map = new ol.Map({\r\n layers: [osmLayer],\r\n target: options.divId,\r\n controls: controls,\r\n view: view\r\n });\r\n if (options.fullScreen) {\r\n map.addControl(new ol.control.FullScreen({}));\r\n }\r\n return map;\r\n}\r\nexports.quickMapBase = quickMapBase;\r\nnm.quickMapBase = quickMapBase;\r\nexports.default = quickMapBase;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2tNYXBCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicXVpY2tNYXBCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFFSCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBQ2pDLDBCQUE2QjtBQUM3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBWWhDOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILHNCQUE2QixPQUF5QjtJQUNsRCxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQXFCLENBQUM7SUFDM0MsT0FBTyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztJQUN2QyxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBQyxDQUFDO0lBQzlELE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxPQUFPLENBQUMsSUFBSSxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNsRSxPQUFPLENBQUMsWUFBWSxHQUFHLE9BQU8sT0FBTyxDQUFDLFlBQVksSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDOUYsT0FBTyxDQUFDLFVBQVUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxVQUFVLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBR3pGLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXBDLElBQUksUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVB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RUgsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDckIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUM7QUFDZixDQUFDO0FBNUVELG9DQTRFQztBQUVELEVBQUUsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0FBQy9CLGtCQUFlLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzE1LzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnb2xIZWxwZXJzJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIHF1aWNrTWFwT3B0aW9ucyB7XHJcbiAgICBkaXZJZD86IHN0cmluZztcclxuICAgIGNlbnRlcj86IHt4OiBudW1iZXIsIHk6IG51bWJlcn07XHJcbiAgICB6b29tPzogbnVtYmVyO1xyXG4gICAgbWluWm9vbT86IG51bWJlcjtcclxuICAgIG1heFpvb20/OiBudW1iZXI7XHJcbiAgICBiYXNlU3dpdGNoZXI/OiBib29sZWFuO1xyXG4gICAgZnVsbFNjcmVlbj86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXRzIHVwIGEgbWFwIHdpdGggc29tZSBkZWZhdWx0IHBhcmFtZXRlcnMgYW5kIGluaXRpYWxpemVzXHJcbiAqIG1hcE1vdmUgYW5kIG1hcFBvcHVwXHJcbiAqXHJcbiAqIEBwYXJhbSBbb3B0aW9ucz17fV0gY29uZmlnIG9wdGlvbnNcclxuICogQHBhcmFtIFtvcHRpb25zLmRpdklkPW1hcF0gbWFwIGRpdiBpZFxyXG4gKiBAcGFyYW0gW29wdGlvbnMuY2VudGVyPXt9XSBjZW50ZXIgY29uZmlnIG9iamVjdFxyXG4gKiBAcGFyYW0gW29wdGlvbnMuY2VudGVyLng9LTEwMDE4Mzc4XSBjZW50ZXIgeCwgd2ViIG1lcmNhdG9yIHggb3IgbG9uXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5jZW50ZXIueT01NTc0OTEwXSBjZW50ZXIgeSwgd2ViIG1lcmNhdG9yIHkgb3IgbGF0XHJcbiAqIEBwYXJhbSBbb3B0aW9ucy56b29tPTddIHpvb20gbGV2ZWxcclxuICogQHBhcmFtIFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSBtaW4gem9vbVxyXG4gKiBAcGFyYW0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIG1heCB6b29tXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5iYXNlU3dpdGNoZXI9dHJ1ZV0gaWYgYWRkIGJhc2UgbWFwIHN3aXRjaGVyXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5mdWxsU2NyZWVuPWZhbHNlXSBpZiBhZGQgYmFzZSBtYXAgc3dpdGNoZXJcclxuICogQHJldHVybnMgdGhlIG9sIG1hcFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHF1aWNrTWFwQmFzZShvcHRpb25zPzogcXVpY2tNYXBPcHRpb25zKTogb2wuTWFwIHtcclxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9IGFzIHF1aWNrTWFwT3B0aW9ucztcclxuICAgIG9wdGlvbnMuZGl2SWQgPSBvcHRpb25zLmRpdklkIHx8ICdtYXAnO1xyXG4gICAgb3B0aW9ucy5jZW50ZXIgPSBvcHRpb25zLmNlbnRlciB8fCB7eDogLTEwMDE4Mzc4LCB5OiA1NTc0OTEwfTtcclxuICAgIG9wdGlvbnMuem9vbSA9IHR5cGVvZiBvcHRpb25zLnpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLnpvb20gOiA3O1xyXG4gICAgb3B0aW9ucy5iYXNlU3dpdGNoZXIgPSB0eXBlb2Ygb3B0aW9ucy5iYXNlU3dpdGNoZXIgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5iYXNlU3dpdGNoZXIgOiB0cnVlO1xyXG4gICAgb3B0aW9ucy5mdWxsU2NyZWVuID0gdHlwZW9mIG9wdGlvbnMuZnVsbFNjcmVlbiA9PSAnYm9vbGVhbicgPyBvcHRpb25zLmZ1bGxTY3JlZW4gOiBmYWxzZTtcclxuXHJcblxyXG4gICAgbGV0ICRtYXBEaXYgPSAkKCcjJyArIG9wdGlvbnMuZGl2SWQpO1xyXG4gICAgJG1hcERpdi5jc3MoJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XHJcblxyXG4gICAgbGV0IG9zbUxheWVyID0gbmV3IG9sLmxheWVyLlRpbGUoe3NvdXJjZTogbmV3IG9sLnNvdXJjZS5PU00oKX0pO1xyXG4gICAgLy8gbGV0IHNhdExheWVyID0gbmV3IG9sLmxheWVyLlRpbGUoe3Zpc2libGU6IGZhbHNlLCBzb3VyY2U6IG5ldyBvbC5zb3VyY2UuTWFwUXVlc3Qoe2xheWVyOiAnc2F0J30pfSk7XHJcblxyXG4gICAgbGV0IG9zbUNzcyA9IFwidXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURBQUFBQXdDQU1BQUFCZzNBbTFBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFNQVVFeFVSUUFBQURRMU5EazVPVVJGUkV0TFMxRkhTRmxaV0dKUlZHSmlZV2RtWld4c2JIUm1hWEJwYW5OMGMzVjBkSHA1ZVg1K2ZJVnpkNEYzZWVWMGp1ZDVqdVo4azRhSGhvbUhob3lHaDVlR2o1T1ZsSmlWbFppWWw1cVptSnlkbktPVGxhS1ptcUtkbmFPaW9hcXFxS3V6c2JPdnJyU3lzTGEzdGJXNHVMbTZ1YjI3dWIrL3ZiR1h3YkNad2JDZ3hMS2x4ck9xeUxTdHliTzN5clN4eXJXenpiVzJ5N2ExemJLNHk3VzZ6Ylc4eTc2MHlyVEF6YlRGenJQS3pyTE96clRKenJUT3pyN0N3YlhDMExYSzBMVE8wTDNJMGJQUXo3VFF6N1BTMGJYUTBMblIwYnJXMWJ6VDByN1UwNzdWMUx6YzJkcU5xdGVVc2R5WHNjYXF1dU9IbmVhR211ZUhuT2VKbnVpQmxlaUtuK2VOb09pT29PV1VwT2lSbytpU3BlaVVwZXFZcHVtYXFPbWRyUFN5bmVtZ3J1U3F0T21pc09tbHN1dXF0ZXF1dU9XMXZPdXh1K3V4dk9xMXZlK3h2UEswcHZXM28vVzVwZk81cXZTN3FmQ3d2TU91d2MyL3dOZW54Tnl5ek5lLzBOcTMxTnE1MWR5NzJPeTN3T3U0d091K3hleTR3Tys2eE8yK3hmVEFyL1RDc3ZmRnRQSEx2dlRKdU1QRHdNZkh4Y1hLeWMzRHhNdkZ5TXZMeU0zUHpjRFYwOERWMU1UWDFjYlkxczdYMXNqWjFzcmEyTW5kM003YjJjN2MydGZIMXRuQjF0N0YyZDdNMjlmWDF0TFkxdERkMnRIZTNOVGYzTm5TMTlyWjF0dmEyTm5mM3QzZDI4cmgzdFhnM05uaDN0emozOTNrMzluaTRON2s0TjduNXVYRHlPZkx6K3pBeHUzQ3lPekV5ZXpLemVESjNlTE0zdXZQMHUzUDBlUGYyKzdSMHU3UTF1L1UwKzdVMWV6YzArN2EyZS9kMiszZjN2YkZ6dkxPd2ZITjBQUFF3L1RVeC9MV3l2TFl6UERRMWZQZTB1YmM0dnZlNHVIaDMrbmgzKy9oMnUvaDN2SGoydkhsM3VIbTRlVG40dURwNWVibzQrWG81T0RxNmVicTZPVHY2K25sNCsvajRPN2w0ZTduNXVqcDQrbnA1T3pxNWU3czV1cnQ2Tzd0Nk9ydzZ1N3g2dTN4N3ZQajVQRGw0ZkRvNHZEcTVmRHQ1dkR1NlBEdjdQVHY2ZkR4NnZIeDdmSDE3Zlh3NmZYeTdmYjA3L2J6OGZUMTh2bjM4dnIzOWZyNDgvcjU5UHI2K1AzKysvLysvZ0FBQUxOVFNrMEFBQUVBZEZKT1UvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vd0JUOXdjbEFBQUFDWEJJV1hNQUFBN0RBQUFPd3dISGI2aGtBQUFBR0hSRldIUlRiMlowZDJGeVpRQndZV2x1ZEM1dVpYUWdOQzR3TGpsc00zNU9BQUFGTkVsRVFWUklTMVZWQ1p4VlV4aS85bDBVSVVUMmJNblk0M2JWSTJjMFkwMWtTV0lhUzBqMkpFdGtONDFwaW9tWnJQUEtRMmFRN0pLSW1PWmxubTI0OTNUSnpEdWZ1VTFaaSt2L2ZlZSttWi8vNzkzdm5QT2Q3enZmZXM1ekRCRVprQkJqQWNJamIrSWlvdHFnZGhhdDhBTUswdmw3L1I5TjdHaVd0c2hxSXIrRVo1Z1lLaWJ5VXNYWTFsL21mRnBzc3ZVbFdRMEZrVTNneTQrUkIvK2t3WWNPOHBSU25sZGNPVS9yMmxBSEFSU3drMk9SZ0VtT2RDMUVzdVJpWVNxTVB3d3JvTUlyYVprNVYyZllKUWpDS2ZaclJtaDNnU0FaaTJpNGI3d1N5bFd1OEVxWndTNTlKa0ZVYVc5NkpiTlNjK0NFVW10NHJvcnd1Wm1XZERhb2MrdVpFVHVRbFRDVTV4WXpSN211VW5WVVZvK0JjUmhyZS9Wd1VwYXNnSndoSDdKa1lJWUEwc054aG1Dd1VLK2x3NnZDS0JaZWh3MDFkRWl5dzRRNGFFMFo0YWhEaEthRlFzR25KMkJncUtvVEJzTmpGeTBTbFc2d2hSQVpUZG04REJKbWtCWmhEaTFqNHhKUUJrNnl3cldVVHltYUN4YWM4bFJPY2RhdVJHelFTTnRBN0VIVVloWHlFd2hoZ2pGVXFSdU8rcmF1aEYxYXdGcHpDc213VWJqSUZCUjB1MWJLdHlHcHVsVy9IL2NWVnpreUdhSVdUSVI5cEZBVjZHSzJnUE1YTVg4Z1BrOXp6eFhnSTFraW1jQWx0RVlyK2NqaW8xaW1sS3BFYTlyT2lwTG0rcCtDWjZCdy8vcWQxL2YvTytHd014YlNMcHlvWkVjd2t5aDJqSWtzKzNobWRkMmpXVXc0c2N4Tnlzbkh4VTduU3NwVFJjSmpDWkdMM0lzanNZSk1NZzVtd2d4N2dhSU9MQkZDb2dBZ0JCb05hOXcrREU2SStCczdGVGd3d3JKYkhqV0RncFlvMkt3dEJUY1lFRHVsb0M5Z2VRdytrMlJHblBHcFRhT2xxN0FTK1lJQ1V6NERaVmFYMlRpTkRodVlmVHRZNGdlTGkwSW9DbTNYY2N3TTloeDRrVTI4U3RRRWxqRHMzWkVwRkdBKzhkS3pMbVY5eW1Jd0Y1Rk9HbjJHZEpNOEtMSERKYlh5aVlWTUc5TVJUTGlYR0dnMlFLYXhNM2toUFNScndNOXpFSWFyZHhVMncvRWlBMGdPZVlLSHpEUjBWNy9RR1YzbEtJQTlrdHJEQXJ4TzNnZEErazZTS29CaVZ3Y203TmpaYjkrSG56dGcyODJUdUhWWjlMT0lTRk50OU1neUNldFpWY3pTeG55RGJsMTdQZW5xNm1xcGcxSWhSYUVPMmFWTFVPNC9yMTdIOHRUdjZmMTNoNzFkZHV2WkkzWSt1TWRXa3NOU2F1TG92Snc1aHNxaVBJVXZ0MGt1Ny9pQmVVUjNza3Ntb21ZV3RSYkFqYmlMZnYybFg5L1Y3TFZHNHVZblVaWGhRN2YyT1BDWkV4OXdyWVdUY2VQRVFxUEVNTDhwbDRtTWRyL2psWGx2SGlSaUoyK01TVEZZNFRUU1lTdHV2ejJSL0pYaCtQUGVHWG0wNTVKKzMvWURXdU51M1IzREFyUHV0eWcwWmd5a01WRFU5TmRtMjIrd1lhbHIycnNlNDhDbnNUSUZjTW43M3ZmaE5ya3R4MUVVY1puUHY2YWgzWXk1Y0RUUmRCRW9Hb0JlYWg3MWRxRnlqWkRKTGtXazNOM3Y0dXVrdHNzaldwemNpTVB4UWVIajhuTUt6Y0d1QjB0QXl6RmhkQ0tPWVd2NEh3T1FWd0l4TEc5OWE2dXZIM3NKQ3lPM2grazRFWitHNyt4ajVmNFhYa3NvYUdyZE1SelNjOEFSQTgrY2RPdWsyeDZmZmZOTnQ1eCtSbzFvbVBsclQvQ1FEbGNObHB4NE5CSVdYaGt4N1kzWnAzb2ZOUjdVdjg5T20vYmVXMFRMSXluSHYzdnMxVnNPRnBTV1NYdmZ1UFVmOUJyUkZ5eGdYZEhvS0puUUZlZ1BPb3Z2eno1OW50cnp5ZTI0MGlnOFVRM2xESTJWcXdhZ3JLSVFjTFhORkwzd2dsTjJPSGRCUTYvdkkza0VORFZCd1JiM2sxWHRjekZialduNEV6TVlpN0NGMzEyOStKVFl1UlNkckd1UzkyZzVkcHFuNnFYb0pRczV4bUw4cCtXdDRoTGJ0MG14Mk9MTlpSMmJiUHk4ekpOUUdGTS9mL0NmWFpla1JZRmpHQ1dqSUpwTStXaUN6R0JQV0hob3lhQXNqUlQvQjJHeTV5ellKa3dVQUFBQUFFbEZUa1N1UW1DQycpXCI7XHJcbiAgICBsZXQgYWVyaWFsQ3NzID0gXCJ1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBREFBQUFBd0NBTUFBQUJnM0FtMUFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQU1BVUV4VVJRQUxCZ0lNRFFnT0J3UU9FUWNUQndVU0N3b1ZEQXdkQnc4WkRnVVJFd1lVR0FZWkZRWVpHZ2tURlFvVkdRc1pGQXdaSEJNZURoSWJGQkViSEF3V0lBNGJJUkVjSVE0aENRd2pGdzRsSEJna0RCOHNEeFVpRXhJaUdoQW9HeG9oRlJzaEdSb3JIUWNyS1FzaUlRd21LZ29vSkEwcEtRODFKdzh5TFJNaUl4SW1LeFVySlJFdUtoc2xKQjBySWhvb0tSVXVNQk15TGhrd0pob3pLaDQ4THhVek1STTlNQnd6TWlVdkZDTXRHaU13RWl3ekZDZ3pIREkrR1NJc0lTa3ZKU1F4SWlNMkxpWTVKaWMrTHlrMEpTbzBLeTQ5SlNzOUtTVTFOU003TkNzMk5TOCtORE0xSnpVOUxqZzdJREpDSFMxRExTTkFNaXRDTVN4SU9qUkVJVFpMSURaSktEbEZJanBGS3p0S0pUMUxLekpCTXpwSE1EMUpNanBLUEQxUktqbFFOQzFEUWo1UVFFQThNRUpHSmtCS0pVSk5LMGxMTEVKTU1rVk1QRXBPTkVOU0xVZFpMMHBUTGtwYUxrUlVNa1JTUEVWWk1rdFVNMHBWT2tsWk1rbFpORXBjTlUxWk1rMVpOVXhmTWs1ZE5reGNPVkZVTTFSVU9GSmJOVkZaT1ZOWVBWRmRPVkpkUEZWYU9WVmFQVlZkT2xWZFBWcGFObHBkTzBwaE4wMWhPbEJpTjFOaFBGTm9QMXBpUFdGYlBtUmpQRU5PUUV0UFNVUlRRa0pWUzB4VlFrMVZTa3hiUWt4Y1MwaGVVVkZYUkZSY1FsSmZURnhlUWxwZVMwNWxRazFrU0ZSalFWUmpTbFpwUTF0a1FseGxTbHhwUkYxclNWVm5VVnRsVTFsbFhGOXRVMXhvWGx4d1NsOXJhbVJmUW1KbFEyRmhTV0ZsU1dGbFRtVmxTV1JtVEdGb1FXRnBSV0ZzUm1WcFJXVnRSbU5zU210bFJHcHFSbXBzUzJCbVdHUnNVbUZyVzJwdFVtWnlSMlJ4VEdweFRXVnlVMlJ5VzJkNVYydHpVbXQwV1cxNVZHMTVXWEZ1VEhOdFZuRnhUWEY0VDNoMFRuSnpVbkoxWEhKNFZYTjZXbnAwVkh4MVczMTVWWHA4WEdSMFlHeDBZSFZ6WlhKMGFIUjlaWFYrYUhsOVlIT0NYWHFCWFhlQ1lIeUNZM2lFYUh5SVluK0phWHFLY1lCNVdJTjZZNFNDWG9DRFpJR0VhWUNJWm9PTGE0aUNhSW1KYklPT2RZdU1jbzZPZUl1VmNwT0tiWktQYzVhUWI1ZVhlNXVmZzZLamhBQUFBQUFBQUFBQUFBQUFBT0dDZVFnQUFBRUFkRkpPVS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy93QlQ5d2NsQUFBQUNYQklXWE1BQUE3REFBQU93d0hIYjZoa0FBQUFHSFJGV0hSVGIyWjBkMkZ5WlFCd1lXbHVkQzV1WlhRZ05DNHdMamxzTTM1T0FBQUg4MGxFUVZSSVN5MVdiWFFVVnhtKzZ3cW5rM1ptcHhsMkZHMkVHZzkyQzhHRGxXcHRWVHdhK3VGM3hjS21EZkZ6Q1V6RHNKTnN1blhpcGdsSlhKYnJ0Sldtd1pOU25IRDNqb2pSZ1VJbTJVdW1JWjBKWjdKQnlyQUxiTVdXMElCVzhhUmE0K2NmNzZUZVgzTm0zdWMrei9zKzcvdnVnbDRyL2FNVHJUNGUxcFBUcW5ubUpObjVBeVV6Um5yUmxlL3FFMzNkc3ZyQnRBUVZveHRwWk5LM3pTellqVWp2aVdPMkFnK1I3N2RsN1czNm4vMUVwOUtCUEcvUytQeTBQa2pVL2dQS1FHcXdUSHJ5aVdZRkFYU3ZNYWlyc2lvN1NqeU5zbkN6aDBxS0ltVjkvN21oZkhRWngyeU4xTys3clhVbTMzTVVQYWJvT2tBSkhhb0lkWGZKajJ4V2V5RDhqTUZFWGt2SXU1cXpwVTk4OGdXQjV6bCtHUytzRmU1NXRyRVZQZFdaQjJtaXE4YkJWa05GTzJSMHFucmZraVhoY0podEROWEU2dGJXOTcvczlPOS83WmZWaHg4Ni9Dd3JST3BmdnZ4Ym9NcWVMc3VxUHIxajQ0cUV3RE5NT0J4aW1VaVlvVThzdzdCQy9hN1Q3MnVFbnlKRGxHeFo5S2NnbFpSeXVxcXJ2L3RTWkVyZ09JNE5nUkJUSXc5RW1IQW9GR1pabnA2YUdhSjJHVHhmeFlzOGtLVlVRaDdXQjVoUWVDM0xzVXhveFZLVzE0bDNCWDJXY29VWVBpWnlMTGU4dGVaK2l1VDRHR2h2VjVLcEtXa3B5enhFcjJNWmdRMXhkUmpmUkJvSCsyazZsSUhqS1RIUFBCbzhDU0pJU3FxcTR3R0dPY1d5bElHbGd2Z05YMUdkOHZGNWYrSVVJd2IzMG5nK0dnMlFmQlJJTXZ5MGpHOFNWa1lvNE4wenZVWFZSenRiSi9MNnhMN2xVWkVYQkVIa3VacWxTNmdFQVVnS0p1cm5oRnRmcEFDT1lkOGIvaFZiSlBxd2k0NGE2S0Ewc1BWaklpL1NJeXhiM3U4S2xBSjBTOGpSVmdybFcrblZIUGRyaGlYQ3h1NDJkODZCeWtzRGM4MFAzTWtKRkJGUThIbzFsUWVncFdKUldGR3NEc1J3d3Y3cEl5dnVRVzBaa3JYNk5EVkZicWN2YVFJOHZieXF6dDVBQVJyc2JLeDV5aFFFR3Mrd1BPNTZiT0srMHJjd01yT0trcFViWldZeFYwNFVlWlp2L2NCS0ZoUkw2UWR2OXk0TGZFREE3L3RoZzd0VG12MWE1L0duTzB3bDBkUWc4MHdnbFphSFVteFJ2andBSE9meU4wbXhycHFMVXBjanNLM05IWU1vNFIxbzZlaG8yWnlJYjJGb2VPQzNJTEs4a1oySFFNT3VXeXdHWFVrSkJDZVRiWUZTMCt5bTFoMi82VWdtdm5ydktZWlp0SUVYR2Y3NUMyY0lBcDVMSE5kNzF4N3VQb1RqYWtyV0g5ZTNLRnBhYXRqVXZKVXlzRncwS3JMTVlNVzJsVGc0UGVVUXg2a0pFQUx2eFhFbUNkVnlQTEh0Q1NqQmhjMDFYQ2pJZ2FmeG91K1BFNktDMWRoeFNDd29CQ2MrTjRQM2J0TTg0cG1kU1NqSm5qTy9udlk0TFFmVnl6NS9JK3Y2SXdqVU9NankrTVZDeEliS3VwVEphRWt0cDdjVEtVNDJQdmpoMm0vOGNTcEM2YVBzYVgvTUhTdVVRTFZWc0lhNFJVVHMvci9CVkFleE5kamRuc05HN2ovclY5M3hoZUxNektuRnJQZVRFUWNoQ3lDY0tiMjVhQUluN2xyQWVydHJad3lOWE04TjZ6ZldyRm8zZDJTbU9FY0Y4M3gvcitPT0ZnckFIWVdGN2NFTGpoVjdVUW8vNldBSVVWbDlKRmw4YS8vSFo2NlZwYlkzSTlRS1pxUHJ1NzdsQStpT1dBSXIwaEt4SENtbXIwb3RoU3llSWw1eTNxdDR4VDhnU05yS0Vab3pzOEVsczY3cmdzTE9aK3lnendNZmJ0TmhvYmZnenBFeUduejdodFB0elVpNlB1T29qN0swV0YvTVhpVUZ4d0dhalJEMWhqWVhIWEk5cDQwNnFPeWlucDUvdGlXY0RIWTBqSXU0bjY0UWZxN2tsaUIyZ2VtYWc5UWJPaWEwUGJiRE1iZDQzU0h1dnhGeHJBb2N4aW5zN01YNUtxYmUxUWl4S0J4b1Y0Ly9QZkFnR0N1K1JsbTRTdlppenlESCswcmVESHA5MmlPMEJ1WDNiQ2ZJdGwwUEV3dllMcXB3WEcyTUhsR3NRNFM4cE1KWnYxSkdtSGlFb0hRRGRPandtVmxFUC9uRTlBREtqSTh4TEkwT09HSVRmeTBTYmVHL0MyaktVREdTbERoTTlJM0lwSzlpdXA2WG5iUk5DN3lxdWVOc0pDQ0lpWHpkUWhuYUdOKzQ2dW1uRWR5NVU1VWJVSjQ4TEZNOUdrSm84QmRET2lBWjdaSVFiS2hZTE1xdmhVMndtTnhqRUFzUzJBSTd5NG5XRjY0ZHVlUGJrN1lWM3p2QVZMRU1EOUF4SlJOYTNLRFVpYlY3RGpua3Vwck1FWWpTY0ZOY2FSMmNlUDJ1OVIvNWsxMDUyUnltZTVwaEFGUnN3bEhqQXVkaVA0ZE95N0NheExnZEpoOXZVbFUxNzAyLytMUGExVTlmdlBpOXFsQTRYRVVCSmMzZEZscHNSNDU3SURsMWlQcUxwN284MU5RZ3lWMTlpWVUzOHVUaXY5NzVQZDNTaXdRY3NHangrdjQvNmZsNVQ3RU9PTVRDdHBiS3hmZW1zUXEvM29sUVpjbWluQURBQUkwY3VHTEhhSE9GeGJ1R3ZSay9aOXU3Q1VMcW9WUjZORTB5eDFhdmozMG9SaGMvaldVb0lBTEd4a3owZGcxRGw5aWFJN0xxT09YS3NYSkZ3aml1RUFpNzBKcmEyblcxUEwwOHpMQmhac01BQnBXNWNzSTdUUGZldzlpcEZLY241azFpKzFLeUNXS2pDM1cvOGRGMWQ2NjYrUmFhYkJWVEZUSGFjam9vakJORGgwTkR4aytJUFRsd2ZxSmtXcGJucEZIWEliTGJtcHhFUTNmZi9aMGcvbWF1WHNvbG45d0RSankvTkhzUUZ3M1A2dld1VEo0My8rRlpyazJjdkFGUmlwQ0tkZkQ5eTIrcGpSajc4czBLZENVREtKdmRWOTFDaG5nVjM4VDIwVE0rZ2doanBKYVBscEZyMnhiRXo1ZzRBL05HdDVyTndkd21ZR2VlZU1YQlNMSEhVSWMrNlJzb2pSSDlWVFVtMy9tTGYvNjRiNDcwWHZveG9US2hsTUJRMmpNRXpvMlBqeGRHTXBwbW4xUk0yNGJXRkpxYVF2NEJjdUphMlNhbTdab2txMWxkQ3N6MDZOQ0JIcmh3cVZRWXBmRmo0Mk5aZXh6MUVXOVNSL2tUNThuRWVRS0piMmZQWGpqcDB1L1lVa3dIRWdMZU9uZjJuT3VmMVRSVE0wMkNMS0xUUHk2MC94MUNDenRxbjdFditCZHNDM20rMzBkZWNRdlcvd0JOVHdVK0NmVVFBUUFBQUFCSlJVNUVya0pnZ2c9PScpXCI7XHJcblxyXG4gICAgaWYgKG9wdGlvbnMuYmFzZVN3aXRjaGVyKSB7XHJcbiAgICAgICAgLy8gIGxldCBzd2l0Y2hlckNvbnRlbnQgPSAnPGRpdiBjbGFzcz1cImJhc2UtbWFwLXN3aXRjaGVyXCIgdGl0bGU9XCJUb2dnbGUgQmFzZSBMYXllclwiIHN0eWxlPVwiJztcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9ICdwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNzBweDsgbGVmdDogNHB4OyBib3JkZXI6IHNvbGlkIGJsYWNrIDFweDsgJztcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9IGBoZWlnaHQ6IDUwcHg7IHdpZHRoOiA1MHB4OyB6LWluZGV4OiAxMDsgYm9yZGVyLXJhZGl1czogNHB4OyBiYWNrZ3JvdW5kOiAke2FlcmlhbENzc307YDtcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9ICdcIj48L2Rpdj4nO1xyXG4gICAgICAgIC8vICAkbWFwRGl2LmFwcGVuZChzd2l0Y2hlckNvbnRlbnQpO1xyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gJG1hcERpdi5maW5kKCcuYmFzZS1tYXAtc3dpdGNoZXInKS5jbGljayhmdW5jdGlvbigpIHtcclxuICAgICAgICAvLyAgICAgIFwidXNlIHN0cmljdFwiO1xyXG4gICAgICAgIC8vICAgICAgb3NtTGF5ZXIuc2V0VmlzaWJsZSghb3NtTGF5ZXIuZ2V0VmlzaWJsZSgpKTtcclxuICAgICAgICAvLyAgICAgIHNhdExheWVyLnNldFZpc2libGUoIXNhdExheWVyLmdldFZpc2libGUoKSk7XHJcbiAgICAgICAgLy9cclxuICAgICAgICAvLyAgICAgIGlmIChvc21MYXllci5nZXRWaXNpYmxlKCkpe1xyXG4gICAgICAgIC8vICAgICAgICAgICQodGhpcykuY3NzKCdiYWNrZ3JvdW5kJywgYWVyaWFsQ3NzKTtcclxuICAgICAgICAvLyAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgJCh0aGlzKS5jc3MoJ2JhY2tncm91bmQnLCBvc21Dc3MpO1xyXG4gICAgICAgIC8vICAgICAgfVxyXG4gICAgICAgIC8vICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0aW9ucy56b29tIDwgMCB8fCBvcHRpb25zLnpvb20gPiAyOCkge1xyXG4gICAgICAgIHRocm93ICd6b29tIG91dCBvZiByYW5nZSc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9wdGlvbnMuY2VudGVyLnggPj0gLTE4MCAmJiBvcHRpb25zLmNlbnRlci54IDw9IDE4MCAmJiBvcHRpb25zLmNlbnRlci55ID49IC05MCAmJiBvcHRpb25zLmNlbnRlci55IDw9IDkwKSB7XHJcbiAgICAgICAgbGV0IHAgPSBuZXcgb2wuZ2VvbS5Qb2ludChbb3B0aW9ucy5jZW50ZXIueCwgb3B0aW9ucy5jZW50ZXIueV0pO1xyXG4gICAgICAgIG5ldyBvbC5wcm9qLlByb2plY3Rpb24oe2NvZGU6IFwiRVBTRzo0MzI2XCJ9KTtcclxuXHJcbiAgICAgICAgcC50cmFuc2Zvcm0obmV3IG9sLnByb2ouUHJvamVjdGlvbih7Y29kZTogXCJFUFNHOjQzMjZcIn0pLCBuZXcgb2wucHJvai5Qcm9qZWN0aW9uKHtjb2RlOiBcIkVQU0c6Mzg1N1wifSkpO1xyXG4gICAgICAgIGxldCBjb29yZGluYXRlcyA9IHAuZ2V0Q29vcmRpbmF0ZXMoKTtcclxuICAgICAgICBvcHRpb25zLmNlbnRlci54ID0gY29vcmRpbmF0ZXNbMF07XHJcbiAgICAgICAgb3B0aW9ucy5jZW50ZXIueSA9IGNvb3JkaW5hdGVzWzFdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xzID0gb2wuY29udHJvbC5kZWZhdWx0cyh7XHJcbiAgICAgICAgICAgIGF0dHJpYnV0aW9uT3B0aW9uczoge2NvbGxhcHNpYmxlOiBmYWxzZX1cclxuICAgICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IHZpZXcgPSBuZXcgb2wuVmlldyh7XHJcbiAgICAgICAgY2VudGVyOiBbb3B0aW9ucy5jZW50ZXIueCwgb3B0aW9ucy5jZW50ZXIueV0sXHJcbiAgICAgICAgem9vbTogb3B0aW9ucy56b29tLFxyXG4gICAgICAgIG1pblpvb206IG9wdGlvbnMubWluWm9vbSxcclxuICAgICAgICBtYXhab29tOiBvcHRpb25zLm1heFpvb21cclxuICAgIH0pO1xyXG5cclxuICAgIGxldCBtYXAgPSBuZXcgb2wuTWFwKHtcclxuICAgICAgICBsYXllcnM6IFtvc21MYXllcl0sXHJcbiAgICAgICAgdGFyZ2V0OiBvcHRpb25zLmRpdklkLFxyXG4gICAgICAgIGNvbnRyb2xzOiBjb250cm9scyxcclxuICAgICAgICB2aWV3OiB2aWV3XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAob3B0aW9ucy5mdWxsU2NyZWVuKSB7XHJcbiAgICAgICAgbWFwLmFkZENvbnRyb2wobmV3IG9sLmNvbnRyb2wuRnVsbFNjcmVlbih7fSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtYXA7XHJcbn1cclxuXHJcbm5tLnF1aWNrTWFwQmFzZSA9IHF1aWNrTWFwQmFzZTtcclxuZXhwb3J0IGRlZmF1bHQgcXVpY2tNYXBCYXNlO1xyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/quickMapBase.ts\n// module id = 13\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 12/14/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"../util/provide\");\r\nvar nm = provide_1.default('olHelpers.zoomResolutionConvert');\r\nvar _zoomResLookup = [\r\n 156543.03392804097,\r\n 78271.51696402048,\r\n 39135.75848201024,\r\n 19567.87924100512,\r\n 9783.93962050256,\r\n 4891.96981025128,\r\n 2445.98490512564,\r\n 1222.99245256282,\r\n 611.49622628141,\r\n 305.748113140705,\r\n 152.8740565703525,\r\n 76.43702828517625,\r\n 38.21851414258813,\r\n 19.109257071294063,\r\n 9.554628535647032,\r\n 4.777314267823516,\r\n 2.388657133911758,\r\n 1.194328566955879,\r\n 0.5971642834779395,\r\n 0.29858214173896974,\r\n 0.14929107086948487,\r\n 0.07464553543474244,\r\n 0.03732276771737122,\r\n 0.01866138385868561,\r\n 0.009330691929342804,\r\n 0.004665345964671402,\r\n 0.002332672982335701,\r\n 0.0011663364911678506,\r\n 0.0005831682455839253 //28\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\nfunction zoomToResolution(zoomLevel) {\r\n \"use strict\";\r\n if (typeof zoomLevel == 'number') {\r\n if (zoomLevel % 1 === 0 && zoomLevel >= 0 && zoomLevel <= 28) {\r\n return _zoomResLookup[zoomLevel];\r\n }\r\n else {\r\n console.log(\"invalid zoom level provided: \" + zoomLevel);\r\n return undefined;\r\n }\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\nexports.zoomToResolution = zoomToResolution;\r\nnm.zoomToResolution = zoomToResolution;\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\nfunction resolutionToZoom(resolution) {\r\n for (var i = 0; i < _zoomResLookup.length; i++) {\r\n if (resolution >= _zoomResLookup[i]) {\r\n return i;\r\n }\r\n }\r\n return 0;\r\n}\r\nexports.resolutionToZoom = resolutionToZoom;\r\nnm.resolutionToZoom = resolutionToZoom;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbVJlc29sdXRpb25Db252ZXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiem9vbVJlc29sdXRpb25Db252ZXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFFSCwyQ0FBc0M7QUFDdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBRXRELElBQUksY0FBYyxHQUFHO0lBQ2pCLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLHFCQUFxQjtJQUNyQixxQkFBcUIsQ0FBQyxJQUFJO0NBQzdCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsMEJBQWlDLFNBQVM7SUFDdEMsWUFBWSxDQUFDO0lBRWIsRUFBRSxDQUFDLENBQUMsT0FBTyxTQUFTLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMvQixFQUFFLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLElBQUksQ0FBQyxJQUFJLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNELE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBZ0MsU0FBVyxDQUFDLENBQUM7WUFFekQsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNyQixDQUFDO0lBQ0wsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUNyQixDQUFDO0FBQ0wsQ0FBQztBQWRELDRDQWNDO0FBQ0QsRUFBRSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0FBR3ZDOzs7O0dBSUc7QUFDSCwwQkFBaUMsVUFBVTtJQUN2QyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUMsQ0FBQztRQUM1QyxFQUFFLENBQUMsQ0FBQyxVQUFVLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUEsQ0FBQztZQUNsQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2IsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ2IsQ0FBQztBQVJELDRDQVFDO0FBRUQsRUFBRSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTQvMjAxNS5cclxuICovXHJcblxyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycy56b29tUmVzb2x1dGlvbkNvbnZlcnQnKTtcclxuXHJcbmxldCBfem9vbVJlc0xvb2t1cCA9IFtcclxuICAgIDE1NjU0My4wMzM5MjgwNDA5NywgLy8wXHJcbiAgICA3ODI3MS41MTY5NjQwMjA0OCwgLy8xXHJcbiAgICAzOTEzNS43NTg0ODIwMTAyNCwgLy8yXHJcbiAgICAxOTU2Ny44NzkyNDEwMDUxMiwgLy8zXHJcbiAgICA5NzgzLjkzOTYyMDUwMjU2LCAvLzRcclxuICAgIDQ4OTEuOTY5ODEwMjUxMjgsIC8vNVxyXG4gICAgMjQ0NS45ODQ5MDUxMjU2NCwgLy82XHJcbiAgICAxMjIyLjk5MjQ1MjU2MjgyLCAvLzdcclxuICAgIDYxMS40OTYyMjYyODE0MSwgLy84XHJcbiAgICAzMDUuNzQ4MTEzMTQwNzA1LCAvLzlcclxuICAgIDE1Mi44NzQwNTY1NzAzNTI1LCAvLzEwXHJcbiAgICA3Ni40MzcwMjgyODUxNzYyNSwgLy8xMVxyXG4gICAgMzguMjE4NTE0MTQyNTg4MTMsIC8vMTJcclxuICAgIDE5LjEwOTI1NzA3MTI5NDA2MywgLy8xM1xyXG4gICAgOS41NTQ2Mjg1MzU2NDcwMzIsIC8vMTRcclxuICAgIDQuNzc3MzE0MjY3ODIzNTE2LCAvLzE1XHJcbiAgICAyLjM4ODY1NzEzMzkxMTc1OCwgLy8xNlxyXG4gICAgMS4xOTQzMjg1NjY5NTU4NzksIC8vMTdcclxuICAgIDAuNTk3MTY0MjgzNDc3OTM5NSwgLy8xOFxyXG4gICAgMC4yOTg1ODIxNDE3Mzg5Njk3NCwgLy8xOVxyXG4gICAgMC4xNDkyOTEwNzA4Njk0ODQ4NywgLy8yMFxyXG4gICAgMC4wNzQ2NDU1MzU0MzQ3NDI0NCwgLy8yMVxyXG4gICAgMC4wMzczMjI3Njc3MTczNzEyMiwgLy8yMlxyXG4gICAgMC4wMTg2NjEzODM4NTg2ODU2MSwgLy8yM1xyXG4gICAgMC4wMDkzMzA2OTE5MjkzNDI4MDQsIC8vMjRcclxuICAgIDAuMDA0NjY1MzQ1OTY0NjcxNDAyLCAvLzI1XHJcbiAgICAwLjAwMjMzMjY3Mjk4MjMzNTcwMSwgLy8yNlxyXG4gICAgMC4wMDExNjYzMzY0OTExNjc4NTA2LCAvLzI3XHJcbiAgICAwLjAwMDU4MzE2ODI0NTU4MzkyNTMgLy8yOFxyXG5dO1xyXG5cclxuLyoqXHJcbiAqIEdldCB0aGUgcmVzb2x1dGlvbiBnaXZlbiB0aGUgem9vbSBsZXZlbFxyXG4gKiBAcGFyYW0ge251bWJlcn0gem9vbUxldmVsIC0gdGhlIHpvb20gbGV2ZWxcclxuICogQHJldHVybnMge251bWJlcnwqfSB0aGUgbWFwIHJlc29sdXRpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB6b29tVG9SZXNvbHV0aW9uKHpvb21MZXZlbCkge1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB6b29tTGV2ZWwgPT0gJ251bWJlcicpIHtcclxuICAgICAgICBpZiAoem9vbUxldmVsICUgMSA9PT0gMCAmJiB6b29tTGV2ZWwgPj0gMCAmJiB6b29tTGV2ZWwgPD0gMjgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIF96b29tUmVzTG9va3VwW3pvb21MZXZlbF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYGludmFsaWQgem9vbSBsZXZlbCBwcm92aWRlZDogJHt6b29tTGV2ZWx9YCk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxufVxyXG5ubS56b29tVG9SZXNvbHV0aW9uID0gem9vbVRvUmVzb2x1dGlvbjtcclxuXHJcblxyXG4vKipcclxuICogR2V0IHJlc29sdXRpb24gZnJvbSB0aGUgem9vbSBsZXZlbFxyXG4gKiBAcGFyYW0ge251bWJlcn0gcmVzb2x1dGlvbiAtIHRoZSByZXNvbHV0aW9uXHJcbiAqIEByZXR1cm5zIHtudW1iZXJ8Kn0gdGhlIHpvb20gbGV2ZWxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZXNvbHV0aW9uVG9ab29tKHJlc29sdXRpb24pe1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBfem9vbVJlc0xvb2t1cC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgaWYgKHJlc29sdXRpb24gPj0gX3pvb21SZXNMb29rdXBbaV0gKXtcclxuICAgICAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAwO1xyXG59XHJcblxyXG5ubS5yZXNvbHV0aW9uVG9ab29tID0gcmVzb2x1dGlvblRvWm9vbTtcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/zoomResolutionConvert.ts\n// module id = 14\n// module chunks = 0 1 2 3","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Created by gavorhes on 1/4/2016.\r\n */\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar nm = provide_1.default('olHelpers.esriToOlStyle');\r\n/**\r\n * This callback is displayed as part of the Requester class.\r\n * @callback styleFunc\r\n * @param {ol.Feature} feat - openlayers feature\r\n * @param {number} resolution - map resolution\r\n */\r\n/**\r\n *\r\n * @param {Array<number>} colorArray - input color array\r\n * @param {number} opacity - the opacity 0 to 1\r\n * @returns {string} rgba string\r\n * @private\r\n */\r\nfunction _colorArrayToRgba(colorArray, opacity) {\r\n \"use strict\";\r\n return \"rgba(\" + colorArray[0] + \",\" + colorArray[1] + \",\" + colorArray[2] + \",\" + opacity + \")\";\r\n}\r\n/**\r\n * escape html charcters\r\n * @param {string} str - input string\r\n * @returns {string} escaped string\r\n */\r\nfunction htmlEscape(str) {\r\n return String(str)\r\n .replace(/&/g, '&')\r\n .replace(/\"/g, '"')\r\n .replace(/'/g, ''')\r\n .replace(/</g, '<')\r\n .replace(/>/g, '>');\r\n}\r\nnm.htmlEscape = htmlEscape;\r\nvar CommonSymbol = (function () {\r\n /**\r\n *\r\n * @param symbolObj\r\n * @param {number} opacity\r\n */\r\n function CommonSymbol(symbolObj, opacity) {\r\n this.symbolObj = symbolObj;\r\n this.opacity = opacity;\r\n this.olStyle = undefined;\r\n this.legendHtml = '';\r\n }\r\n return CommonSymbol;\r\n}());\r\nvar PointSymbol = (function (_super) {\r\n __extends(PointSymbol, _super);\r\n function PointSymbol(symbolObj, opacity) {\r\n var _this = _super.call(this, symbolObj, opacity) || this;\r\n switch (_this.symbolObj.type) {\r\n case 'esriSMS':\r\n var innerColor = _colorArrayToRgba(_this.symbolObj.color, _this.opacity);\r\n var outerColor = _colorArrayToRgba(_this.symbolObj.outline.color, _this.opacity);\r\n var outlineWidth = _this.symbolObj.outline.width;\r\n var radius = _this.symbolObj.size;\r\n _this.olStyle = new ol.style.Style({\r\n image: new ol.style.Circle({\r\n radius: radius,\r\n fill: new ol.style.Fill({\r\n color: innerColor\r\n }),\r\n stroke: new ol.style.Stroke({ color: outerColor, width: outlineWidth })\r\n })\r\n });\r\n _this.legendHtml = \"<span class=\\\"legend-layer-icon\\\" style=\\\"color: \" + innerColor + \"\\\">●</span>\";\r\n break;\r\n case 'esriPMS':\r\n _this.olStyle = new ol.style.Style({\r\n image: new ol.style.Icon({ src: \"data:image/png;base64,\" + _this.symbolObj['imageData'] })\r\n });\r\n _this.legendHtml = \"<img class=\\\"legend-layer-icon\\\" height=\\\"17\\\" src=\\\"data:image/png;base64,\" + _this.symbolObj['imageData'] + \"\\\">\";\r\n break;\r\n default:\r\n console.log(_this.symbolObj);\r\n alert('Point symbol does not handle symbol type: ' + _this.symbolObj['type']);\r\n }\r\n return _this;\r\n }\r\n return PointSymbol;\r\n}(CommonSymbol));\r\nvar LineSymbol = (function (_super) {\r\n __extends(LineSymbol, _super);\r\n function LineSymbol(symbolObj, opacity) {\r\n var _this = _super.call(this, symbolObj, opacity) || this;\r\n switch (_this.symbolObj.type) {\r\n case 'esriSLS':\r\n var innerColor = _colorArrayToRgba(_this.symbolObj.color, _this.opacity);\r\n var lineWidth = _this.symbolObj.width;\r\n _this.olStyle = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: innerColor,\r\n //lineDash: [4],\r\n width: lineWidth\r\n })\r\n });\r\n _this.legendHtml = \"<span class=\\\"legend-layer-icon\\\" \";\r\n _this.legendHtml += \"style=\\\"\";\r\n _this.legendHtml += \"background-color: \" + innerColor + \";\";\r\n _this.legendHtml += \"width: 40px;\";\r\n _this.legendHtml += \"height: 4px;\";\r\n _this.legendHtml += \"position: relative;\";\r\n _this.legendHtml += \"display: inline-block;\";\r\n _this.legendHtml += \"top: -1px;\";\r\n _this.legendHtml += \"\\\"></span>\";\r\n break;\r\n default:\r\n console.log(_this.symbolObj);\r\n alert('Line symbol does not handle symbol type: ' + _this.symbolObj['type']);\r\n }\r\n return _this;\r\n }\r\n return LineSymbol;\r\n}(CommonSymbol));\r\nvar PolygonSymbol = (function (_super) {\r\n __extends(PolygonSymbol, _super);\r\n function PolygonSymbol(symbolObj, opacity) {\r\n var _this = _super.call(this, symbolObj, opacity) || this;\r\n switch (_this.symbolObj['type']) {\r\n case 'esriSFS':\r\n var innerColor = _colorArrayToRgba(_this.symbolObj.color, _this.opacity);\r\n var outerColor = _colorArrayToRgba(_this.symbolObj.outline.color, _this.opacity);\r\n var outlineWidth = _this.symbolObj.outline.width;\r\n _this.olStyle = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: outerColor,\r\n //lineDash: [4],\r\n width: outlineWidth\r\n }),\r\n fill: new ol.style.Fill({\r\n color: innerColor\r\n })\r\n });\r\n _this.legendHtml = \"<span class=\\\"legend-layer-icon\\\" \";\r\n _this.legendHtml += \"style=\\\"\";\r\n _this.legendHtml += \"background-color: \" + innerColor + \";\";\r\n _this.legendHtml += \"border: solid \" + outerColor + \" 1px;\";\r\n _this.legendHtml += \"width: 40px;\";\r\n _this.legendHtml += \"height: 9px;\";\r\n _this.legendHtml += \"position: relative;\";\r\n _this.legendHtml += \"display: inline-block;\";\r\n _this.legendHtml += \"top: 2px;\";\r\n _this.legendHtml += \"\\\"></span>\";\r\n break;\r\n default:\r\n console.log(_this.symbolObj);\r\n alert('Polygon symbol does handle symbol type: ' + _this.symbolObj['type']);\r\n }\r\n return _this;\r\n }\r\n return PolygonSymbol;\r\n}(CommonSymbol));\r\nvar SymbolGenerator = (function () {\r\n function SymbolGenerator(esriResponse) {\r\n this.opacity = (100 - (esriResponse['drawingInfo']['transparency'] || 0)) / 100;\r\n this.renderer = esriResponse.drawingInfo.renderer;\r\n this.olStyle = undefined;\r\n this.legendHtml = '';\r\n }\r\n return SymbolGenerator;\r\n}());\r\nvar SingleSymbol = (function (_super) {\r\n __extends(SingleSymbol, _super);\r\n /**\r\n *\r\n * @param {object} esriResponse - layer info\r\n * @param SymbolClass - the symbol class to use\r\n */\r\n function SingleSymbol(esriResponse, SymbolClass) {\r\n var _this = _super.call(this, esriResponse) || this;\r\n _this.symbol = _this.renderer.symbol;\r\n var symbolObj = new SymbolClass(_this.symbol, _this.opacity);\r\n _this.olStyle = symbolObj.olStyle;\r\n _this.legendHtml = symbolObj.legendHtml;\r\n return _this;\r\n }\r\n return SingleSymbol;\r\n}(SymbolGenerator));\r\nvar UniqueValueSymbol = (function (_super) {\r\n __extends(UniqueValueSymbol, _super);\r\n /**\r\n *\r\n * @param {object} esriResponse - layer info\r\n * @param SymbolClass - the Symbol class definition\r\n */\r\n function UniqueValueSymbol(esriResponse, SymbolClass) {\r\n var _this = _super.call(this, esriResponse) || this;\r\n _this.uniqueValueInfos = _this.renderer['uniqueValueInfos'];\r\n _this.propertyName = _this.renderer['field1'];\r\n _this.defaultSymbol = _this.renderer['defaultSymbol'];\r\n if (_this.defaultSymbol) {\r\n var symbolObj = new SymbolClass(_this.defaultSymbol, _this.opacity);\r\n _this.defaultStyle = symbolObj.olStyle;\r\n _this.defaultLabelHtml = \"<span class=\\\"legend-layer-subitem\\\">\" + htmlEscape(_this.renderer['defaultLabel']) + \"</span>\" + symbolObj.legendHtml;\r\n }\r\n else {\r\n _this.defaultStyle = undefined;\r\n _this.defaultLabelHtml = 'other';\r\n }\r\n _this.valueArray = [];\r\n _this.labelArray = [];\r\n _this.legendArray = [];\r\n _this.propertyStyleLookup = {};\r\n for (var _i = 0, _a = _this.uniqueValueInfos; _i < _a.length; _i++) {\r\n var uniqueVal = _a[_i];\r\n _this.labelArray.push(uniqueVal['label']);\r\n _this.valueArray.push(uniqueVal['value']);\r\n var uniqueSym = new SymbolClass(uniqueVal.symbol, _this.opacity);\r\n _this.legendArray.push(\"<span class=\\\"legend-layer-subitem\\\">\" + htmlEscape(uniqueVal['label']) + \"</span>\" + uniqueSym.legendHtml);\r\n _this.propertyStyleLookup[uniqueVal['value']] = uniqueSym.olStyle;\r\n }\r\n _this.olStyle = function (feature) {\r\n var checkProperties = feature.getProperties();\r\n var checkProperty = checkProperties[_this.propertyName];\r\n var returnValue;\r\n if (_this.propertyStyleLookup[checkProperty] !== undefined) {\r\n returnValue = [_this.propertyStyleLookup[checkProperty]];\r\n }\r\n else {\r\n returnValue = [_this.defaultStyle];\r\n }\r\n return returnValue;\r\n };\r\n if (_this.defaultLabelHtml !== null) {\r\n _this.legendArray.push(_this.defaultLabelHtml);\r\n }\r\n _this.legendHtml = '<ul>';\r\n for (var _b = 0, _c = _this.legendArray; _b < _c.length; _b++) {\r\n var h = _c[_b];\r\n _this.legendHtml += \"<li>\" + h + \"</li>\";\r\n }\r\n _this.legendHtml += '</ul>';\r\n return _this;\r\n }\r\n return UniqueValueSymbol;\r\n}(SymbolGenerator));\r\n/**\r\n * style and legend object\r\n * @typedef {object} styleAndLegend\r\n * @property {styleFunc} style - style function\r\n * @property {string} legend - legend content\r\n */\r\n/**\r\n *\r\n * @param {object} esriResponse - layer info\r\n * @returns {styleAndLegend} style and legend object\r\n */\r\nfunction makeFeatureServiceLegendAndSymbol(esriResponse) {\r\n \"use strict\";\r\n var renderer = esriResponse.drawingInfo.renderer;\r\n var symbolLegendOut = null;\r\n switch (renderer.type) {\r\n case 'simple':\r\n switch (esriResponse.geometryType) {\r\n case 'esriGeometryPoint':\r\n symbolLegendOut = new SingleSymbol(esriResponse, PointSymbol);\r\n break;\r\n case 'esriGeometryPolyline':\r\n symbolLegendOut = new SingleSymbol(esriResponse, LineSymbol);\r\n break;\r\n case 'esriGeometryPolygon':\r\n symbolLegendOut = new SingleSymbol(esriResponse, PolygonSymbol);\r\n break;\r\n default:\r\n console.log(esriResponse);\r\n alert(esriResponse.geometryType + ' not handled');\r\n }\r\n break;\r\n case 'uniqueValue':\r\n switch (esriResponse.geometryType) {\r\n case 'esriGeometryPoint':\r\n symbolLegendOut = new UniqueValueSymbol(esriResponse, PointSymbol);\r\n break;\r\n case 'esriGeometryPolyline':\r\n symbolLegendOut = new UniqueValueSymbol(esriResponse, LineSymbol);\r\n break;\r\n case 'esriGeometryPolygon':\r\n symbolLegendOut = new UniqueValueSymbol(esriResponse, PolygonSymbol);\r\n break;\r\n default:\r\n console.log(esriResponse);\r\n alert(esriResponse['geometryType'] + ' not handled');\r\n }\r\n break;\r\n default:\r\n alert('not handled renderer type: ' + renderer['type']);\r\n }\r\n if (symbolLegendOut == null) {\r\n return { style: undefined, legend: '' };\r\n }\r\n else {\r\n return { style: symbolLegendOut.olStyle, legend: symbolLegendOut.legendHtml };\r\n }\r\n}\r\nexports.makeFeatureServiceLegendAndSymbol = makeFeatureServiceLegendAndSymbol;\r\nnm.makeFeatureServiceLegendAndSymbol = makeFeatureServiceLegendAndSymbol;\r\n/**\r\n *\r\n * @param {object} lyrObject - the layer as defined in the response\r\n * @param {boolean} [skipLayerNameAndExpander=false] use only icons\r\n * @returns {string} legend html\r\n */\r\nfunction mapServiceLegendItem(lyrObject, skipLayerNameAndExpander) {\r\n if (skipLayerNameAndExpander === void 0) { skipLayerNameAndExpander = false; }\r\n skipLayerNameAndExpander = typeof skipLayerNameAndExpander == 'boolean' ? skipLayerNameAndExpander : false;\r\n var layerName = lyrObject['layerName'];\r\n var legendItems = lyrObject['legend'];\r\n var legendHtml = '';\r\n if (!skipLayerNameAndExpander) {\r\n legendHtml += \"<span class=\\\"legend-layer-subitem\\\">\" + layerName + \"</span>\";\r\n }\r\n if (legendItems.length == 1) {\r\n legendHtml = \"<img class=\\\"legend-layer-icon\\\" height=\\\"17\\\" src=\\\"data:image/png;base64,\" + legendItems[0]['imageData'] + \"\\\">\";\r\n }\r\n else {\r\n if (!skipLayerNameAndExpander) {\r\n legendHtml += '<span class=\"legend-items-expander\" title=\"Expand/Collapse\">▼</span>';\r\n }\r\n legendHtml += '<ul>';\r\n for (var i = 0; i < legendItems.length; i++) {\r\n legendHtml += \"<li>\";\r\n legendHtml += \"<span class=\\\"legend-layer-subitem\\\">\" + htmlEscape(legendItems[i]['label']) + \"</span>\";\r\n legendHtml += \"<img class=\\\"legend-layer-icon\\\" height=\\\"17\\\" src=\\\"data:image/png;base64,\" + legendItems[i]['imageData'] + \"\\\">\";\r\n legendHtml += \"</li>\";\r\n }\r\n legendHtml += '</ul>';\r\n }\r\n if (!skipLayerNameAndExpander) {\r\n legendHtml = \"<span class=\\\"legend-layer-subitem\\\">\" + layerName + \"</span>\" + legendHtml;\r\n }\r\n return legendHtml;\r\n}\r\n/**\r\n * make map service legent\r\n * @param {object} esriResponse - layer info\r\n * @returns {string} legend content\r\n */\r\nfunction makeMapServiceLegend(esriResponse) {\r\n \"use strict\";\r\n var newLegendHtml = '';\r\n var layers = esriResponse['layers'];\r\n if (layers.length == 1) {\r\n newLegendHtml += mapServiceLegendItem(layers[0], true);\r\n }\r\n else {\r\n newLegendHtml += '<ul>';\r\n for (var i = 0; i < layers.length; i++) {\r\n newLegendHtml += '<li>' + mapServiceLegendItem(layers[i]) + '</li>';\r\n }\r\n newLegendHtml += '</ul>';\r\n }\r\n return newLegendHtml;\r\n}\r\nexports.makeMapServiceLegend = makeMapServiceLegend;\r\nnm.makeMapServiceLegend = makeMapServiceLegend;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNyaVRvT2xTdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVzcmlUb09sU3R5bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0dBRUc7QUFDSCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBQ2pDLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUU5Qzs7Ozs7R0FLRztBQUVIOzs7Ozs7R0FNRztBQUNILDJCQUEyQixVQUFVLEVBQUUsT0FBTztJQUMxQyxZQUFZLENBQUM7SUFFYixNQUFNLENBQUMsVUFBUSxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBSSxPQUFPLE1BQUcsQ0FBQztBQUNqRixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILG9CQUFvQixHQUFHO0lBQ25CLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1NBQ2IsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7U0FDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUM7U0FDdkIsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7U0FDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7U0FDckIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsRUFBRSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7QUE0QjNCO0lBTUk7Ozs7T0FJRztJQUNILHNCQUFZLFNBQXFCLEVBQUUsT0FBZTtRQUM5QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lB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Q29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxLzQvMjAxNi5cclxuICovXHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycy5lc3JpVG9PbFN0eWxlJyk7XHJcblxyXG4vKipcclxuICogVGhpcyBjYWxsYmFjayBpcyBkaXNwbGF5ZWQgYXMgcGFydCBvZiB0aGUgUmVxdWVzdGVyIGNsYXNzLlxyXG4gKiBAY2FsbGJhY2sgc3R5bGVGdW5jXHJcbiAqIEBwYXJhbSB7b2wuRmVhdHVyZX0gZmVhdCAtIG9wZW5sYXllcnMgZmVhdHVyZVxyXG4gKiBAcGFyYW0ge251bWJlcn0gcmVzb2x1dGlvbiAtIG1hcCByZXNvbHV0aW9uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSB7QXJyYXk8bnVtYmVyPn0gY29sb3JBcnJheSAtIGlucHV0IGNvbG9yIGFycmF5XHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBvcGFjaXR5IC0gdGhlIG9wYWNpdHkgMCB0byAxXHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHJnYmEgc3RyaW5nXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5mdW5jdGlvbiBfY29sb3JBcnJheVRvUmdiYShjb2xvckFycmF5LCBvcGFjaXR5KSB7XHJcbiAgICBcInVzZSBzdHJpY3RcIjtcclxuXHJcbiAgICByZXR1cm4gYHJnYmEoJHtjb2xvckFycmF5WzBdfSwke2NvbG9yQXJyYXlbMV19LCR7Y29sb3JBcnJheVsyXX0sJHtvcGFjaXR5fSlgO1xyXG59XHJcblxyXG4vKipcclxuICogZXNjYXBlIGh0bWwgY2hhcmN0ZXJzXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgLSBpbnB1dCBzdHJpbmdcclxuICogQHJldHVybnMge3N0cmluZ30gZXNjYXBlZCBzdHJpbmdcclxuICovXHJcbmZ1bmN0aW9uIGh0bWxFc2NhcGUoc3RyKSB7XHJcbiAgICByZXR1cm4gU3RyaW5nKHN0cilcclxuICAgICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxyXG4gICAgICAgIC5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7JylcclxuICAgICAgICAucmVwbGFjZSgvJy9nLCAnJiMzOTsnKVxyXG4gICAgICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JylcclxuICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpO1xyXG59XHJcblxyXG5ubS5odG1sRXNjYXBlID0gaHRtbEVzY2FwZTtcclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVzcmlSZXNwb25zZXtcclxuICAgIGRyYXdpbmdJbmZvOiB7XHJcbiAgICAgICAgcmVuZGVyZXI6IEVzcmlSZW5kZXJlclxyXG4gICAgfSxcclxuICAgIGdlb21ldHJ5VHlwZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXNyaVJlbmRlcmVye1xyXG4gICAgdHlwZTogc3RyaW5nO1xyXG4gICAgc3ltYm9sOiBFc3JpU3ltYm9sO1xyXG4gICAgdW5pcXVlVmFsdWVJbmZvczogQXJyYXk8e2xhYmVsOiBzdHJpbmcsIHZhbHVlOiBhbnksIHN5bWJvbDogRXNyaVN5bWJvbH0+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVzcmlTeW1ib2x7XHJcbiAgICBzaXplOiBudW1iZXI7XHJcbiAgICB0eXBlOiBzdHJpbmc7XHJcbiAgICBvdXRsaW5lOntcclxuICAgICAgICBjb2xvcjogc3RyaW5nO1xyXG4gICAgICAgIHdpZHRoOiBudW1iZXI7XHJcbiAgICB9LFxyXG4gICAgY29sb3I6IHN0cmluZztcclxuICAgIHdpZHRoOiBudW1iZXI7XHJcbn1cclxuXHJcblxyXG5jbGFzcyBDb21tb25TeW1ib2wge1xyXG4gICAgbGVnZW5kSHRtbDogc3RyaW5nO1xyXG4gICAgb3BhY2l0eTogbnVtYmVyO1xyXG4gICAgc3ltYm9sT2JqOiBFc3JpU3ltYm9sO1xyXG4gICAgb2xTdHlsZTogb2wuc3R5bGUuU3R5bGV8QXJyYXk8b2wuc3R5bGUuU3R5bGU+fG9sLlN0eWxlRnVuY3Rpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHN5bWJvbE9ialxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG9wYWNpdHlcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3Ioc3ltYm9sT2JqOiBFc3JpU3ltYm9sLCBvcGFjaXR5OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnN5bWJvbE9iaiA9IHN5bWJvbE9iajtcclxuICAgICAgICB0aGlzLm9wYWNpdHkgPSBvcGFjaXR5O1xyXG4gICAgICAgIHRoaXMub2xTdHlsZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgPSAnJztcclxuICAgIH1cclxufVxyXG5cclxuaW50ZXJmYWNlIElDb21tb25TeW1ib2x7XHJcbiAgICBuZXcgKHN5bWJvbE9iajogRXNyaVN5bWJvbCwgb3BhY2l0eTogbnVtYmVyKTogQ29tbW9uU3ltYm9sXHJcbn1cclxuXHJcblxyXG5jbGFzcyBQb2ludFN5bWJvbCBleHRlbmRzIENvbW1vblN5bWJvbCB7XHJcbiAgICBjb25zdHJ1Y3RvcihzeW1ib2xPYmo6IEVzcmlTeW1ib2wsIG9wYWNpdHk6IG51bWJlcikge1xyXG4gICAgICAgIHN1cGVyKHN5bWJvbE9iaiwgb3BhY2l0eSk7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnN5bWJvbE9iai50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2VzcmlTTVMnOlxyXG4gICAgICAgICAgICAgICAgbGV0IGlubmVyQ29sb3IgPSBfY29sb3JBcnJheVRvUmdiYSh0aGlzLnN5bWJvbE9iai5jb2xvciwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgICAgIGxldCBvdXRlckNvbG9yID0gX2NvbG9yQXJyYXlUb1JnYmEodGhpcy5zeW1ib2xPYmoub3V0bGluZS5jb2xvciwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgICAgIGxldCBvdXRsaW5lV2lkdGggPSB0aGlzLnN5bWJvbE9iai5vdXRsaW5lLndpZHRoO1xyXG4gICAgICAgICAgICAgICAgbGV0IHJhZGl1cyA9IHRoaXMuc3ltYm9sT2JqLnNpemU7XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMub2xTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5DaXJjbGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogbmV3IG9sLnN0eWxlLkZpbGwoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGlubmVyQ29sb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sLnN0eWxlLlN0cm9rZSh7Y29sb3I6IG91dGVyQ29sb3IsIHdpZHRoOiBvdXRsaW5lV2lkdGh9KVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgc3R5bGU9XCJjb2xvcjogJHtpbm5lckNvbG9yfVwiPiYjOTY3OTs8L3NwYW4+YDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdlc3JpUE1TJzpcclxuICAgICAgICAgICAgICAgIHRoaXMub2xTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5JY29uKHtzcmM6IGBkYXRhOmltYWdlL3BuZztiYXNlNjQsJHt0aGlzLnN5bWJvbE9ialsnaW1hZ2VEYXRhJ119YH0pXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IGA8aW1nIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBoZWlnaHQ9XCIxN1wiIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwke3RoaXMuc3ltYm9sT2JqWydpbWFnZURhdGEnXX1cIj5gO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnN5bWJvbE9iaik7XHJcbiAgICAgICAgICAgICAgICBhbGVydCgnUG9pbnQgc3ltYm9sIGRvZXMgbm90IGhhbmRsZSBzeW1ib2wgdHlwZTogJyArIHRoaXMuc3ltYm9sT2JqWyd0eXBlJ10pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgTGluZVN5bWJvbCBleHRlbmRzIENvbW1vblN5bWJvbCB7XHJcbiAgICBjb25zdHJ1Y3RvcihzeW1ib2xPYmo6IEVzcmlTeW1ib2wsIG9wYWNpdHk6IG51bWJlcikge1xyXG4gICAgICAgIHN1cGVyKHN5bWJvbE9iaiwgb3BhY2l0eSk7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnN5bWJvbE9iai50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2VzcmlTTFMnOlxyXG4gICAgICAgICAgICAgICAgbGV0IGlubmVyQ29sb3IgPSBfY29sb3JBcnJheVRvUmdiYSh0aGlzLnN5bWJvbE9iai5jb2xvciwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgICAgIGxldCBsaW5lV2lkdGggPSB0aGlzLnN5bWJvbE9iai53aWR0aDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9sU3R5bGUgPSBuZXcgb2wuc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sLnN0eWxlLlN0cm9rZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbm5lckNvbG9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2xpbmVEYXNoOiBbNF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBsaW5lV2lkdGhcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sID0gYDxzcGFuIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGBzdHlsZT1cImA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGJhY2tncm91bmQtY29sb3I6ICR7aW5uZXJDb2xvcn07YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgd2lkdGg6IDQwcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgaGVpZ2h0OiA0cHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgcG9zaXRpb246IHJlbGF0aXZlO2A7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGRpc3BsYXk6IGlubGluZS1ibG9jaztgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGB0b3A6IC0xcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgXCI+PC9zcGFuPmA7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc3ltYm9sT2JqKTtcclxuICAgICAgICAgICAgICAgIGFsZXJ0KCdMaW5lIHN5bWJvbCBkb2VzIG5vdCBoYW5kbGUgc3ltYm9sIHR5cGU6ICcgKyB0aGlzLnN5bWJvbE9ialsndHlwZSddKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFBvbHlnb25TeW1ib2wgZXh0ZW5kcyBDb21tb25TeW1ib2wge1xyXG4gICAgY29uc3RydWN0b3Ioc3ltYm9sT2JqOiBFc3JpU3ltYm9sLCBvcGFjaXR5OiBudW1iZXIpIHtcclxuICAgICAgICBzdXBlcihzeW1ib2xPYmosIG9wYWNpdHkpO1xyXG4gICAgICAgIHN3aXRjaCAodGhpcy5zeW1ib2xPYmpbJ3R5cGUnXSkge1xyXG4gICAgICAgICAgICBjYXNlICdlc3JpU0ZTJzpcclxuICAgICAgICAgICAgICAgIGxldCBpbm5lckNvbG9yID0gX2NvbG9yQXJyYXlUb1JnYmEodGhpcy5zeW1ib2xPYmouY29sb3IsIHRoaXMub3BhY2l0eSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgb3V0ZXJDb2xvciA9IF9jb2xvckFycmF5VG9SZ2JhKHRoaXMuc3ltYm9sT2JqLm91dGxpbmUuY29sb3IsIHRoaXMub3BhY2l0eSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgb3V0bGluZVdpZHRoID0gdGhpcy5zeW1ib2xPYmoub3V0bGluZS53aWR0aDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9sU3R5bGUgPSBuZXcgb2wuc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sLnN0eWxlLlN0cm9rZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBvdXRlckNvbG9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2xpbmVEYXNoOiBbNF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBvdXRsaW5lV2lkdGhcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICBmaWxsOiBuZXcgb2wuc3R5bGUuRmlsbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbm5lckNvbG9yXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgYDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgc3R5bGU9XCJgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGBiYWNrZ3JvdW5kLWNvbG9yOiAke2lubmVyQ29sb3J9O2A7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGJvcmRlcjogc29saWQgJHtvdXRlckNvbG9yfSAxcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgd2lkdGg6IDQwcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgaGVpZ2h0OiA5cHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgcG9zaXRpb246IHJlbGF0aXZlO2A7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGRpc3BsYXk6IGlubGluZS1ibG9jaztgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGB0b3A6IDJweDtgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGBcIj48L3NwYW4+YDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc3ltYm9sT2JqKTtcclxuICAgICAgICAgICAgICAgIGFsZXJ0KCdQb2x5Z29uIHN5bWJvbCBkb2VzIGhhbmRsZSBzeW1ib2wgdHlwZTogJyArIHRoaXMuc3ltYm9sT2JqWyd0eXBlJ10pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgU3ltYm9sR2VuZXJhdG9yIHtcclxuICAgIG9wYWNpdHk6IG51bWJlcjtcclxuICAgIHJlbmRlcmVyOiBFc3JpUmVuZGVyZXI7XHJcbiAgICBsZWdlbmRIdG1sOiBzdHJpbmc7XHJcbiAgICBvbFN0eWxlOiBvbC5zdHlsZS5TdHlsZXxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuU3R5bGVGdW5jdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihlc3JpUmVzcG9uc2U6IEVzcmlSZXNwb25zZSkge1xyXG4gICAgICAgIHRoaXMub3BhY2l0eSA9ICgxMDAgLSAoZXNyaVJlc3BvbnNlWydkcmF3aW5nSW5mbyddWyd0cmFuc3BhcmVuY3knXSB8fCAwKSkgLyAxMDA7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IGVzcmlSZXNwb25zZS5kcmF3aW5nSW5mby5yZW5kZXJlcjtcclxuICAgICAgICB0aGlzLm9sU3R5bGUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5sZWdlbmRIdG1sID0gJyc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFNpbmdsZVN5bWJvbCBleHRlbmRzIFN5bWJvbEdlbmVyYXRvciB7XHJcbiAgICBzeW1ib2w6IEVzcmlTeW1ib2w7XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZXNyaVJlc3BvbnNlIC0gbGF5ZXIgaW5mb1xyXG4gICAgICogQHBhcmFtIFN5bWJvbENsYXNzIC0gdGhlIHN5bWJvbCBjbGFzcyB0byB1c2VcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoZXNyaVJlc3BvbnNlLCBTeW1ib2xDbGFzczogSUNvbW1vblN5bWJvbCkge1xyXG4gICAgICAgIHN1cGVyKGVzcmlSZXNwb25zZSk7XHJcbiAgICAgICAgdGhpcy5zeW1ib2wgPSB0aGlzLnJlbmRlcmVyLnN5bWJvbDtcclxuICAgICAgICBsZXQgc3ltYm9sT2JqID0gbmV3IFN5bWJvbENsYXNzKHRoaXMuc3ltYm9sLCB0aGlzLm9wYWNpdHkpO1xyXG4gICAgICAgIHRoaXMub2xTdHlsZSA9IHN5bWJvbE9iai5vbFN0eWxlO1xyXG4gICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IHN5bWJvbE9iai5sZWdlbmRIdG1sO1xyXG4gICAgfVxyXG59XHJcblxyXG5jbGFzcyBVbmlxdWVWYWx1ZVN5bWJvbCBleHRlbmRzIFN5bWJvbEdlbmVyYXRvciB7XHJcblxyXG4gICAgcHJvcGVydHlOYW1lOiBzdHJpbmc7XHJcbiAgICBkZWZhdWx0U3ltYm9sOiBFc3JpU3ltYm9sO1xyXG4gICAgZGVmYXVsdFN0eWxlOiBvbC5zdHlsZS5TdHlsZXxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuU3R5bGVGdW5jdGlvbjtcclxuICAgIGRlZmF1bHRMYWJlbEh0bWw6IHN0cmluZztcclxuICAgIGxhYmVsQXJyYXk6IEFycmF5PHN0cmluZz47XHJcbiAgICBsZWdlbmRBcnJheTogQXJyYXk8c3RyaW5nPjtcclxuICAgIHByb3BlcnR5U3R5bGVMb29rdXA6IE9iamVjdDtcclxuICAgIHZhbHVlQXJyYXk6IEFycmF5PGFueT47XHJcbiAgICB1bmlxdWVWYWx1ZUluZm9zOiBBcnJheTx7bGFiZWw6IHN0cmluZywgdmFsdWU6IGFueSwgc3ltYm9sOiBFc3JpU3ltYm9sfT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGVzcmlSZXNwb25zZSAtIGxheWVyIGluZm9cclxuICAgICAqIEBwYXJhbSBTeW1ib2xDbGFzcyAtIHRoZSBTeW1ib2wgY2xhc3MgZGVmaW5pdGlvblxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcihlc3JpUmVzcG9uc2U6IEVzcmlSZXNwb25zZSwgU3ltYm9sQ2xhc3M6IElDb21tb25TeW1ib2wpIHtcclxuICAgICAgICBzdXBlcihlc3JpUmVzcG9uc2UpO1xyXG4gICAgICAgIHRoaXMudW5pcXVlVmFsdWVJbmZvcyA9IHRoaXMucmVuZGVyZXJbJ3VuaXF1ZVZhbHVlSW5mb3MnXTtcclxuICAgICAgICB0aGlzLnByb3BlcnR5TmFtZSA9IHRoaXMucmVuZGVyZXJbJ2ZpZWxkMSddO1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdFN5bWJvbCA9IHRoaXMucmVuZGVyZXJbJ2RlZmF1bHRTeW1ib2wnXTtcclxuXHJcblxyXG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRTeW1ib2wpIHtcclxuICAgICAgICAgICAgbGV0IHN5bWJvbE9iaiA9IG5ldyBTeW1ib2xDbGFzcyh0aGlzLmRlZmF1bHRTeW1ib2wsIHRoaXMub3BhY2l0eSk7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFN0eWxlID0gc3ltYm9sT2JqLm9sU3R5bGU7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdExhYmVsSHRtbCA9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtodG1sRXNjYXBlKHRoaXMucmVuZGVyZXJbJ2RlZmF1bHRMYWJlbCddKX08L3NwYW4+YCArIHN5bWJvbE9iai5sZWdlbmRIdG1sO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFN0eWxlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRMYWJlbEh0bWwgPSAnb3RoZXInO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy52YWx1ZUFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sYWJlbEFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sZWdlbmRBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMucHJvcGVydHlTdHlsZUxvb2t1cCA9IHt9O1xyXG5cclxuICAgICAgICBmb3IgKGxldCB1bmlxdWVWYWwgb2YgdGhpcy51bmlxdWVWYWx1ZUluZm9zKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGFiZWxBcnJheS5wdXNoKHVuaXF1ZVZhbFsnbGFiZWwnXSk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVBcnJheS5wdXNoKHVuaXF1ZVZhbFsndmFsdWUnXSk7XHJcbiAgICAgICAgICAgIGxldCB1bmlxdWVTeW0gPSBuZXcgU3ltYm9sQ2xhc3ModW5pcXVlVmFsLnN5bWJvbCwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgdGhpcy5sZWdlbmRBcnJheS5wdXNoKGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtodG1sRXNjYXBlKHVuaXF1ZVZhbFsnbGFiZWwnXSl9PC9zcGFuPmAgKyB1bmlxdWVTeW0ubGVnZW5kSHRtbCk7XHJcbiAgICAgICAgICAgIHRoaXMucHJvcGVydHlTdHlsZUxvb2t1cFt1bmlxdWVWYWxbJ3ZhbHVlJ11dID0gdW5pcXVlU3ltLm9sU3R5bGU7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgdGhpcy5vbFN0eWxlID0gKGZlYXR1cmU6IG9sLkZlYXR1cmUpID0+IHtcclxuICAgICAgICAgICAgbGV0IGNoZWNrUHJvcGVydGllcyA9IGZlYXR1cmUuZ2V0UHJvcGVydGllcygpO1xyXG4gICAgICAgICAgICBsZXQgY2hlY2tQcm9wZXJ0eSA9IGNoZWNrUHJvcGVydGllc1t0aGlzLnByb3BlcnR5TmFtZV07XHJcblxyXG4gICAgICAgICAgICBsZXQgcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BlcnR5U3R5bGVMb29rdXBbY2hlY2tQcm9wZXJ0eV0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBbdGhpcy5wcm9wZXJ0eVN0eWxlTG9va3VwW2NoZWNrUHJvcGVydHldXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBbdGhpcy5kZWZhdWx0U3R5bGVdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdExhYmVsSHRtbCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmxlZ2VuZEFycmF5LnB1c2godGhpcy5kZWZhdWx0TGFiZWxIdG1sKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubGVnZW5kSHRtbCA9ICc8dWw+JztcclxuICAgICAgICBmb3IgKGxldCBoIG9mIHRoaXMubGVnZW5kQXJyYXkpIHtcclxuICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGA8bGk+JHtofTwvbGk+YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9ICc8L3VsPic7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4vKipcclxuICogc3R5bGUgYW5kIGxlZ2VuZCBvYmplY3RcclxuICogQHR5cGVkZWYge29iamVjdH0gc3R5bGVBbmRMZWdlbmRcclxuICogQHByb3BlcnR5IHtzdHlsZUZ1bmN9IHN0eWxlIC0gc3R5bGUgZnVuY3Rpb25cclxuICogQHByb3BlcnR5IHtzdHJpbmd9IGxlZ2VuZCAtIGxlZ2VuZCBjb250ZW50XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBlc3JpUmVzcG9uc2UgLSBsYXllciBpbmZvXHJcbiAqIEByZXR1cm5zIHtzdHlsZUFuZExlZ2VuZH0gc3R5bGUgYW5kIGxlZ2VuZCBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBtYWtlRmVhdHVyZVNlcnZpY2VMZWdlbmRBbmRTeW1ib2woZXNyaVJlc3BvbnNlOiBFc3JpUmVzcG9uc2UpIHtcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG4gICAgbGV0IHJlbmRlcmVyID0gZXNyaVJlc3BvbnNlLmRyYXdpbmdJbmZvLnJlbmRlcmVyO1xyXG4gICAgbGV0IHN5bWJvbExlZ2VuZE91dDogU3ltYm9sR2VuZXJhdG9yID0gbnVsbDtcclxuXHJcbiAgICBzd2l0Y2ggKHJlbmRlcmVyLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdzaW1wbGUnOlxyXG4gICAgICAgICAgICBzd2l0Y2ggKGVzcmlSZXNwb25zZS5nZW9tZXRyeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2VzcmlHZW9tZXRyeVBvaW50JzpcclxuICAgICAgICAgICAgICAgICAgICBzeW1ib2xMZWdlbmRPdXQgPSBuZXcgU2luZ2xlU3ltYm9sKGVzcmlSZXNwb25zZSwgUG9pbnRTeW1ib2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZXNyaUdlb21ldHJ5UG9seWxpbmUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbExlZ2VuZE91dCA9IG5ldyBTaW5nbGVTeW1ib2woZXNyaVJlc3BvbnNlLCBMaW5lU3ltYm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2VzcmlHZW9tZXRyeVBvbHlnb24nOlxyXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbExlZ2VuZE91dCA9IG5ldyBTaW5nbGVTeW1ib2woZXNyaVJlc3BvbnNlLCBQb2x5Z29uU3ltYm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXNyaVJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICBhbGVydChlc3JpUmVzcG9uc2UuZ2VvbWV0cnlUeXBlICsgJyBub3QgaGFuZGxlZCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3VuaXF1ZVZhbHVlJzpcclxuICAgICAgICAgICAgc3dpdGNoIChlc3JpUmVzcG9uc2UuZ2VvbWV0cnlUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdlc3JpR2VvbWV0cnlQb2ludCc6XHJcbiAgICAgICAgICAgICAgICAgICAgc3ltYm9sTGVnZW5kT3V0ID0gbmV3IFVuaXF1ZVZhbHVlU3ltYm9sKGVzcmlSZXNwb25zZSwgUG9pbnRTeW1ib2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZXNyaUdlb21ldHJ5UG9seWxpbmUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbExlZ2VuZE91dCA9IG5ldyBVbmlxdWVWYWx1ZVN5bWJvbChlc3JpUmVzcG9uc2UsIExpbmVTeW1ib2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZXNyaUdlb21ldHJ5UG9seWdvbic6XHJcbiAgICAgICAgICAgICAgICAgICAgc3ltYm9sTGVnZW5kT3V0ID0gbmV3IFVuaXF1ZVZhbHVlU3ltYm9sKGVzcmlSZXNwb25zZSwgUG9seWdvblN5bWJvbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVzcmlSZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxlcnQoZXNyaVJlc3BvbnNlWydnZW9tZXRyeVR5cGUnXSArICcgbm90IGhhbmRsZWQnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBhbGVydCgnbm90IGhhbmRsZWQgcmVuZGVyZXIgdHlwZTogJyArIHJlbmRlcmVyWyd0eXBlJ10pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzeW1ib2xMZWdlbmRPdXQgPT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiB7c3R5bGU6IHVuZGVmaW5lZCwgbGVnZW5kOiAnJ307XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB7c3R5bGU6IHN5bWJvbExlZ2VuZE91dC5vbFN0eWxlLCBsZWdlbmQ6IHN5bWJvbExlZ2VuZE91dC5sZWdlbmRIdG1sfTtcclxuICAgIH1cclxufVxyXG5cclxubm0ubWFrZUZlYXR1cmVTZXJ2aWNlTGVnZW5kQW5kU3ltYm9sID0gbWFrZUZlYXR1cmVTZXJ2aWNlTGVnZW5kQW5kU3ltYm9sO1xyXG5cclxuXHJcbi8qKlxyXG4gKlxyXG4gKiBAcGFyYW0ge29iamVjdH0gbHlyT2JqZWN0IC0gdGhlIGxheWVyIGFzIGRlZmluZWQgaW4gdGhlIHJlc3BvbnNlXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3NraXBMYXllck5hbWVBbmRFeHBhbmRlcj1mYWxzZV0gdXNlIG9ubHkgaWNvbnNcclxuICogQHJldHVybnMge3N0cmluZ30gbGVnZW5kIGh0bWxcclxuICovXHJcbmZ1bmN0aW9uIG1hcFNlcnZpY2VMZWdlbmRJdGVtKGx5ck9iamVjdCwgc2tpcExheWVyTmFtZUFuZEV4cGFuZGVyOiBib29sZWFuID0gZmFsc2UpIHtcclxuXHJcblxyXG4gICAgc2tpcExheWVyTmFtZUFuZEV4cGFuZGVyID0gdHlwZW9mIHNraXBMYXllck5hbWVBbmRFeHBhbmRlciA9PSAnYm9vbGVhbicgPyBza2lwTGF5ZXJOYW1lQW5kRXhwYW5kZXIgOiBmYWxzZTtcclxuICAgIGxldCBsYXllck5hbWUgPSBseXJPYmplY3RbJ2xheWVyTmFtZSddO1xyXG4gICAgbGV0IGxlZ2VuZEl0ZW1zID0gbHlyT2JqZWN0WydsZWdlbmQnXTtcclxuICAgIGxldCBsZWdlbmRIdG1sID0gJyc7XHJcblxyXG4gICAgaWYgKCFza2lwTGF5ZXJOYW1lQW5kRXhwYW5kZXIpIHtcclxuICAgICAgICBsZWdlbmRIdG1sICs9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtsYXllck5hbWV9PC9zcGFuPmA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGxlZ2VuZEl0ZW1zLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgbGVnZW5kSHRtbCA9IGA8aW1nIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBoZWlnaHQ9XCIxN1wiIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwke2xlZ2VuZEl0ZW1zWzBdWydpbWFnZURhdGEnXX1cIj5gO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoIXNraXBMYXllck5hbWVBbmRFeHBhbmRlcikge1xyXG4gICAgICAgICAgICBsZWdlbmRIdG1sICs9ICc8c3BhbiBjbGFzcz1cImxlZ2VuZC1pdGVtcy1leHBhbmRlclwiIHRpdGxlPVwiRXhwYW5kL0NvbGxhcHNlXCI+JiM5NjYwOzwvc3Bhbj4nO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZWdlbmRIdG1sICs9ICc8dWw+JztcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlZ2VuZEl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxlZ2VuZEh0bWwgKz0gYDxsaT5gO1xyXG4gICAgICAgICAgICBsZWdlbmRIdG1sICs9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtodG1sRXNjYXBlKGxlZ2VuZEl0ZW1zW2ldWydsYWJlbCddKX08L3NwYW4+YDtcclxuICAgICAgICAgICAgbGVnZW5kSHRtbCArPSBgPGltZyBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgaGVpZ2h0PVwiMTdcIiBzcmM9XCJkYXRhOmltYWdlL3BuZztiYXNlNjQsJHtsZWdlbmRJdGVtc1tpXVsnaW1hZ2VEYXRhJ119XCI+YDtcclxuICAgICAgICAgICAgbGVnZW5kSHRtbCArPSBgPC9saT5gO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZWdlbmRIdG1sICs9ICc8L3VsPic7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFza2lwTGF5ZXJOYW1lQW5kRXhwYW5kZXIpIHtcclxuICAgICAgICBsZWdlbmRIdG1sID0gYDxzcGFuIGNsYXNzPVwibGVnZW5kLWxheWVyLXN1Yml0ZW1cIj4ke2xheWVyTmFtZX08L3NwYW4+YCArIGxlZ2VuZEh0bWw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGxlZ2VuZEh0bWw7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBtYWtlIG1hcCBzZXJ2aWNlIGxlZ2VudFxyXG4gKiBAcGFyYW0ge29iamVjdH0gZXNyaVJlc3BvbnNlIC0gbGF5ZXIgaW5mb1xyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBsZWdlbmQgY29udGVudFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VNYXBTZXJ2aWNlTGVnZW5kKGVzcmlSZXNwb25zZSkge1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG4gICAgbGV0IG5ld0xlZ2VuZEh0bWwgPSAnJztcclxuXHJcbiAgICBsZXQgbGF5ZXJzID0gZXNyaVJlc3BvbnNlWydsYXllcnMnXTtcclxuXHJcbiAgICBpZiAobGF5ZXJzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgbmV3TGVnZW5kSHRtbCArPSBtYXBTZXJ2aWNlTGVnZW5kSXRlbShsYXllcnNbMF0sIHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdMZWdlbmRIdG1sICs9ICc8dWw+JztcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxheWVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBuZXdMZWdlbmRIdG1sICs9ICc8bGk+JyArIG1hcFNlcnZpY2VMZWdlbmRJdGVtKGxheWVyc1tpXSkgKyAnPC9saT4nO1xyXG4gICAgICAgIH1cclxuICAgICAgICBuZXdMZWdlbmRIdG1sICs9ICc8L3VsPic7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5ld0xlZ2VuZEh0bWw7XHJcbn1cclxuXHJcbm5tLm1ha2VNYXBTZXJ2aWNlTGVnZW5kID0gbWFrZU1hcFNlcnZpY2VMZWdlbmQ7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/esriToOlStyle.ts\n// module id = 15\n// module chunks = 0 2 3","/**\r\n * Created by gavorhes on 6/1/2016.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"../util/provide\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('collections.layerSwipe');\r\nvar LayerSwipe = (function () {\r\n /**\r\n *\r\n * @param {ol.Map} map - the map\r\n * @param {string} [sliderContent=''] - additional html to be added inside the slider div\r\n */\r\n function LayerSwipe(map, sliderContent) {\r\n if (sliderContent === void 0) { sliderContent = ''; }\r\n var _this = this;\r\n sliderContent = sliderContent || '';\r\n /**\r\n *\r\n * @type {Array<LayerBase>}\r\n */\r\n this.leftLayers = [];\r\n /**\r\n *\r\n * @type {Array<LayerBase>}\r\n */\r\n this.rightLayers = [];\r\n this._percentRight = 50;\r\n this.offset = null;\r\n this._map = map;\r\n this.$mapElement = $(map.getTargetElement());\r\n this.$mapElement.append(\"<div class=\\\"layer-swiper\\\">\" + sliderContent + \"</div>\");\r\n this.$swiper = this.$mapElement.find('.layer-swiper');\r\n this.percentRight = this.percentRight;\r\n this.dragging = false;\r\n this.$mapElement.mouseleave(function () {\r\n _this.dragging = false;\r\n });\r\n this.$swiper.bind('mousewheel DOMMouseScroll', function (evt) {\r\n evt.preventDefault();\r\n });\r\n this.$swiper.mousedown(function (evt) {\r\n _this.dragging = true;\r\n _this.offset = evt.offsetX;\r\n });\r\n $(window).mouseup(function () {\r\n _this.dragging = false;\r\n });\r\n this.$mapElement.mousemove(function (evt) {\r\n if (_this.dragging) {\r\n var mapLeft = _this.$mapElement.position().left;\r\n var mapWidth = _this.$mapElement.width();\r\n _this.percentRight = 100 * (evt.pageX - _this.offset - mapLeft) / mapWidth;\r\n }\r\n });\r\n }\r\n /**\r\n *\r\n * @param {LayerBase|*} lyr - layer to be added to left side\r\n */\r\n LayerSwipe.prototype.addLeftLayer = function (lyr) {\r\n var _this = this;\r\n if (this.leftLayers.indexOf(lyr) != -1) {\r\n return;\r\n }\r\n lyr.olLayer.on('precompose', function (event) {\r\n var ctx = event['context'];\r\n var width = ctx.canvas.width * (_this.percentRight / 100);\r\n ctx.save();\r\n ctx.beginPath();\r\n ctx.rect(0, 0, width, ctx.canvas.height);\r\n ctx.clip();\r\n });\r\n lyr.olLayer.on('postcompose', function (event) {\r\n var ctx = event['context'];\r\n ctx.restore();\r\n });\r\n this.leftLayers.push(lyr);\r\n };\r\n /**\r\n *\r\n * @param {LayerBase|*} lyr - layer to be added to right side\r\n */\r\n LayerSwipe.prototype.addRightLayer = function (lyr) {\r\n var _this = this;\r\n if (this.rightLayers.indexOf(lyr) != -1) {\r\n return;\r\n }\r\n lyr.olLayer.on('precompose', function (event) {\r\n var ctx = event['context'];\r\n var width = ctx.canvas.width * (_this.percentRight / 100);\r\n ctx.save();\r\n ctx.beginPath();\r\n ctx.rect(width, 0, ctx.canvas.width - width, ctx.canvas.height);\r\n ctx.clip();\r\n });\r\n lyr.olLayer.on('postcompose', function (event) {\r\n var ctx = event['context'];\r\n ctx.restore();\r\n });\r\n this.rightLayers.push(lyr);\r\n };\r\n Object.defineProperty(LayerSwipe.prototype, \"percentRight\", {\r\n get: function () {\r\n return this._percentRight;\r\n },\r\n set: function (percent) {\r\n var maxed = this.$swiper.position().left + this.$swiper.width() > this.$mapElement.width();\r\n if (percent < 0) {\r\n return;\r\n }\r\n else if (maxed && percent > this.percentRight) {\r\n return;\r\n }\r\n this._percentRight = percent;\r\n this.$swiper.css('left', this._percentRight.toFixed(2) + \"%\");\r\n this._map.render();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return LayerSwipe;\r\n}());\r\nnm.LayerSwipe = LayerSwipe;\r\nexports.default = LayerSwipe;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXJTd2lwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxheWVyU3dpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUdILDJDQUFzQztBQUd0QywwQkFBNkI7QUFFN0IsSUFBSSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBRzNDO0lBU0k7Ozs7T0FJRztJQUNILG9CQUFZLEdBQVcsRUFBRSxhQUEwQjtRQUExQiw4QkFBQSxFQUFBLGtCQUEwQjtRQUFuRCxpQkFxREM7UUFuREcsYUFBYSxHQUFHLGFBQWEsSUFBSSxFQUFFLENBQUM7UUFDcEM7OztXQUdHO1FBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFFckI7OztXQUdHO1FBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFFbkIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDaEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxpQ0FBNkIsYUFBYSxXQUFRLENBQUMsQ0FBQztRQUc1RSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUV0QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUV0QixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUN4QixLQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUks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WUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztZQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQUcsQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkIsQ0FBQzs7O09BZEE7SUFlTCxpQkFBQztBQUFELENBQUMsQUEvSUQsSUErSUM7QUFFRCxFQUFFLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztBQUMzQixrQkFBZSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiA2LzEvMjAxNi5cclxuICovXHJcblxyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IHtMYXllckJhc2V9IGZyb20gXCIuLi9sYXllcnMvTGF5ZXJCYXNlXCI7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5cclxubGV0IG5tID0gcHJvdmlkZSgnY29sbGVjdGlvbnMubGF5ZXJTd2lwZScpO1xyXG5cclxuXHJcbmNsYXNzIExheWVyU3dpcGUge1xyXG4gICAgbGVmdExheWVyczogQXJyYXk8TGF5ZXJCYXNlPjtcclxuICAgIHJpZ2h0TGF5ZXJzOiBBcnJheTxMYXllckJhc2U+O1xyXG4gICAgX3BlcmNlbnRSaWdodDogbnVtYmVyO1xyXG4gICAgX21hcDogb2wuTWFwO1xyXG4gICAgJG1hcEVsZW1lbnQ6IEpRdWVyeTtcclxuICAgICRzd2lwZXI6IEpRdWVyeTtcclxuICAgIGRyYWdnaW5nOiBib29sZWFuO1xyXG4gICAgb2Zmc2V0OiBudW1iZXI7XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge29sLk1hcH0gbWFwIC0gdGhlIG1hcFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzbGlkZXJDb250ZW50PScnXSAtIGFkZGl0aW9uYWwgaHRtbCB0byBiZSBhZGRlZCBpbnNpZGUgdGhlIHNsaWRlciBkaXZcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IobWFwOiBvbC5NYXAsIHNsaWRlckNvbnRlbnQ6IHN0cmluZyA9ICcnKSB7XHJcblxyXG4gICAgICAgIHNsaWRlckNvbnRlbnQgPSBzbGlkZXJDb250ZW50IHx8ICcnO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHR5cGUge0FycmF5PExheWVyQmFzZT59XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5sZWZ0TGF5ZXJzID0gW107XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHR5cGUge0FycmF5PExheWVyQmFzZT59XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yaWdodExheWVycyA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLl9wZXJjZW50UmlnaHQgPSA1MDtcclxuICAgICAgICB0aGlzLm9mZnNldCA9IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuX21hcCA9IG1hcDtcclxuICAgICAgICB0aGlzLiRtYXBFbGVtZW50ID0gJChtYXAuZ2V0VGFyZ2V0RWxlbWVudCgpKTtcclxuICAgICAgICB0aGlzLiRtYXBFbGVtZW50LmFwcGVuZChgPGRpdiBjbGFzcz1cImxheWVyLXN3aXBlclwiPiR7c2xpZGVyQ29udGVudH08L2Rpdj5gKTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuJHN3aXBlciA9IHRoaXMuJG1hcEVsZW1lbnQuZmluZCgnLmxheWVyLXN3aXBlcicpO1xyXG4gICAgICAgIHRoaXMucGVyY2VudFJpZ2h0ID0gdGhpcy5wZXJjZW50UmlnaHQ7XHJcblxyXG4gICAgICAgIHRoaXMuZHJhZ2dpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy4kbWFwRWxlbWVudC5tb3VzZWxlYXZlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kcmFnZ2luZyA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLiRzd2lwZXIuYmluZCgnbW91c2V3aGVlbCBET01Nb3VzZVNjcm9sbCcsIGZ1bmN0aW9uKGV2dCl7XHJcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLiRzd2lwZXIubW91c2Vkb3duKChldnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kcmFnZ2luZyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMub2Zmc2V0ID0gZXZ0Lm9mZnNldFg7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICQod2luZG93KS5tb3VzZXVwKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kcmFnZ2luZyA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLiRtYXBFbGVtZW50Lm1vdXNlbW92ZSgoZXZ0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRyYWdnaW5nKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgbWFwTGVmdCA9IHRoaXMuJG1hcEVsZW1lbnQucG9zaXRpb24oKS5sZWZ0O1xyXG4gICAgICAgICAgICAgICAgbGV0IG1hcFdpZHRoID0gdGhpcy4kbWFwRWxlbWVudC53aWR0aCgpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMucGVyY2VudFJpZ2h0ID0gMTAwICogKGV2dC5wYWdlWCAtIHRoaXMub2Zmc2V0IC0gbWFwTGVmdCkgLyBtYXBXaWR0aDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJCYXNlfCp9IGx5ciAtIGxheWVyIHRvIGJlIGFkZGVkIHRvIGxlZnQgc2lkZVxyXG4gICAgICovXHJcbiAgICBhZGRMZWZ0TGF5ZXIobHlyKSB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmxlZnRMYXllcnMuaW5kZXhPZihseXIpICE9IC0xKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbHlyLm9sTGF5ZXIub24oJ3ByZWNvbXBvc2UnLCAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgbGV0IGN0eCA9IGV2ZW50Wydjb250ZXh0J107XHJcbiAgICAgICAgICAgIGxldCB3aWR0aCA9IGN0eC5jYW52YXMud2lkdGggKiAodGhpcy5wZXJjZW50UmlnaHQgLyAxMDApO1xyXG5cclxuICAgICAgICAgICAgY3R4LnNhdmUoKTtcclxuICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICBjdHgucmVjdCgwLCAwLCB3aWR0aCwgY3R4LmNhbnZhcy5oZWlnaHQpO1xyXG4gICAgICAgICAgICBjdHguY2xpcCgpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBseXIub2xMYXllci5vbigncG9zdGNvbXBvc2UnLCBmdW5jdGlvbiAoZXZlbnQpIHtcclxuICAgICAgICAgICAgbGV0IGN0eCA9IGV2ZW50Wydjb250ZXh0J107XHJcbiAgICAgICAgICAgIGN0eC5yZXN0b3JlKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG5cclxuICAgICAgICB0aGlzLmxlZnRMYXllcnMucHVzaChseXIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJCYXNlfCp9IGx5ciAtIGxheWVyIHRvIGJlIGFkZGVkIHRvIHJpZ2h0IHNpZGVcclxuICAgICAqL1xyXG4gICAgYWRkUmlnaHRMYXllcihseXIpIHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMucmlnaHRMYXllcnMuaW5kZXhPZihseXIpICE9IC0xKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbHlyLm9sTGF5ZXIub24oJ3ByZWNvbXBvc2UnLCAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgbGV0IGN0eCA9IGV2ZW50Wydjb250ZXh0J107XHJcbiAgICAgICAgICAgIGxldCB3aWR0aCA9IGN0eC5jYW52YXMud2lkdGggKiAodGhpcy5wZXJjZW50UmlnaHQgLyAxMDApO1xyXG5cclxuICAgICAgICAgICAgY3R4LnNhdmUoKTtcclxuICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICBjdHgucmVjdCh3aWR0aCwgMCwgY3R4LmNhbnZhcy53aWR0aCAtIHdpZHRoLCBjdHguY2FudmFzLmhlaWdodCk7XHJcbiAgICAgICAgICAgIGN0eC5jbGlwKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGx5ci5vbExheWVyLm9uKCdwb3N0Y29tcG9zZScsIGZ1bmN0aW9uIChldmVudCkge1xyXG4gICAgICAgICAgICBsZXQgY3R4ID0gZXZlbnRbJ2NvbnRleHQnXTtcclxuICAgICAgICAgICAgY3R4LnJlc3RvcmUoKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5yaWdodExheWVycy5wdXNoKGx5cik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHBlcmNlbnRSaWdodCgpIDogbnVtYmVye1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wZXJjZW50UmlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IHBlcmNlbnRSaWdodChwZXJjZW50OiBudW1iZXIpIHtcclxuICAgICAgICBsZXQgbWF4ZWQgPSB0aGlzLiRzd2lwZXIucG9zaXRpb24oKS5sZWZ0ICsgdGhpcy4kc3dpcGVyLndpZHRoKCkgPiB0aGlzLiRtYXBFbGVtZW50LndpZHRoKCk7XHJcblxyXG4gICAgICAgIGlmIChwZXJjZW50IDwgMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIGlmIChtYXhlZCAmJiBwZXJjZW50ID4gdGhpcy5wZXJjZW50UmlnaHQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fcGVyY2VudFJpZ2h0ID0gcGVyY2VudDtcclxuICAgICAgICB0aGlzLiRzd2lwZXIuY3NzKCdsZWZ0JywgYCR7dGhpcy5fcGVyY2VudFJpZ2h0LnRvRml4ZWQoMil9JWApO1xyXG4gICAgICAgIHRoaXMuX21hcC5yZW5kZXIoKTtcclxuICAgIH1cclxufVxyXG5cclxubm0uTGF5ZXJTd2lwZSA9IExheWVyU3dpcGU7XHJcbmV4cG9ydCBkZWZhdWx0IExheWVyU3dpcGU7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/layerSwipe.ts\n// module id = 26\n// module chunks = 2","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Created by gavorhes on 6/1/2016.\r\n */\r\nvar quickMap_1 = require(\"../../src/olHelpers/quickMap\");\r\nvar layerSwipe_1 = require(\"../../src/olHelpers/layerSwipe\");\r\nvar LayerEsriMapServer_1 = require(\"../../src/layers/LayerEsriMapServer\");\r\nvar map = quickMap_1.quickMap();\r\nvar swiper = new layerSwipe_1.default(map);\r\nvar wisDotRegions = new LayerEsriMapServer_1.LayerEsriMapServer('http://transportal.cee.wisc.edu/applications/arcgis2/rest/services/MetaManager/Metamanager_regions/MapServer', {\r\n minZoom: 6,\r\n maxZoom: 12,\r\n name: 'WisDOT Regions'\r\n});\r\nvar metamanagerSegments = new LayerEsriMapServer_1.LayerEsriMapServer('http://transportal.cee.wisc.edu/applications/arcgis2/rest/services/MetaManager/MM_All_Segments/MapServer', {\r\n minZoom: 7,\r\n visible: true,\r\n name: 'Metamanager Segments'\r\n});\r\nvar truckSpeed2014 = new LayerEsriMapServer_1.LayerEsriMapServer('http://transportal.cee.wisc.edu/applications/arcgis2/rest/services/NPMRDS/compareDynamic/MapServer', {\r\n minZoom: 7,\r\n visible: true,\r\n name: 'truck2014',\r\n showLayers: [8]\r\n});\r\nvar truckSpeed2015 = new LayerEsriMapServer_1.LayerEsriMapServer('http://transportal.cee.wisc.edu/applications/arcgis2/rest/services/NPMRDS/compareDynamic/MapServer', {\r\n minZoom: 7,\r\n visible: true,\r\n name: 'truck2015',\r\n showLayers: [9]\r\n});\r\nmap.addLayer(wisDotRegions.olLayer);\r\nmap.addLayer(truckSpeed2014.olLayer);\r\nmap.addLayer(truckSpeed2015.olLayer);\r\nmap.addLayer(metamanagerSegments.olLayer);\r\nswiper.addLeftLayer(wisDotRegions);\r\nswiper.addRightLayer(metamanagerSegments);\r\nswiper.addLeftLayer(truckSpeed2014);\r\nswiper.addRightLayer(truckSpeed2015);\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS10ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29tcGFyZS10ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7O0dBRUc7QUFDSCx5REFBc0Q7QUFDdEQsNkRBQXdEO0FBQ3hELDBFQUF1RTtBQUV2RSxJQUFJLEdBQUcsR0FBRyxtQkFBUSxFQUFFLENBQUM7QUFHckIsSUFBSSxNQUFNLEdBQUcsSUFBSSxvQkFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBR2pDLElBQUksYUFBYSxHQUFHLElBQUksdUNBQWtCLENBQ3RDLDhHQUE4RyxFQUM5RztJQUNJLE9BQU8sRUFBRSxDQUFDO0lBQ1YsT0FBTyxFQUFFLEVBQUU7SUFDWCxJQUFJLEVBQUUsZ0JBQWdCO0NBQ3pCLENBQUMsQ0FBQztBQUVQLElBQUksbUJBQW1CLEdBQUcsSUFBSSx1Q0FBa0IsQ0FDNUMsMEdBQTBHLEVBQzFHO0lBQ0ksT0FBTyxFQUFFLENBQUM7SUFDVixPQUFPLEVBQUUsSUFBSTtJQUNiLElBQUksRUFBRSxzQkFBc0I7Q0FDL0IsQ0FBQyxDQUFDO0FBRVAsSUFBSSxjQUFjLEdBQUcsSUFBSSx1Q0FBa0IsQ0FDdkMsb0dBQW9HLEVBQ3BHO0lBQ0ksT0FBTyxFQUFFLENBQUM7SUFDVixPQUFPLEVBQUUsSUFBSTtJQUNiLElBQUksRUFBRSxXQUFXO0lBQ2pCLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztDQUNsQixDQUFDLENBQUM7QUFFUCxJQUFJLGNBQWMsR0FBRyxJQUFJLHVDQUFrQixDQUN2QyxvR0FBb0csRUFDcEc7SUFDSSxPQUFPLEVBQUUsQ0FBQztJQUNWLE9BQU8sRUFBRSxJQUFJO0lBQ2IsSUFBSSxFQUFFLFdBQVc7SUFDakIsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0NBQ2xCLENBQUMsQ0FBQztBQUVQLEdBQUcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3BDLEdBQUcsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3JDLEdBQUcsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3JDLEdBQUcsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7QUFHMUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNuQyxNQUFNLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFFMUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUNwQyxNQUFNLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gNi8xLzIwMTYuXHJcbiAqL1xyXG5pbXBvcnQge3F1aWNrTWFwfSBmcm9tICcuLi8uLi9zcmMvb2xIZWxwZXJzL3F1aWNrTWFwJztcclxuaW1wb3J0IExheWVyU3dpcGUgZnJvbSAnLi4vLi4vc3JjL29sSGVscGVycy9sYXllclN3aXBlJztcclxuaW1wb3J0IHtMYXllckVzcmlNYXBTZXJ2ZXJ9IGZyb20gJy4uLy4uL3NyYy9sYXllcnMvTGF5ZXJFc3JpTWFwU2VydmVyJztcclxuXHJcbmxldCBtYXAgPSBxdWlja01hcCgpO1xyXG5cclxuXHJcbmxldCBzd2lwZXIgPSBuZXcgTGF5ZXJTd2lwZShtYXApO1xyXG5cclxuXHJcbmxldCB3aXNEb3RSZWdpb25zID0gbmV3IExheWVyRXNyaU1hcFNlcnZlcihcclxuICAgICdodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2FwcGxpY2F0aW9ucy9hcmNnaXMyL3Jlc3Qvc2VydmljZXMvTWV0YU1hbmFnZXIvTWV0YW1hbmFnZXJfcmVnaW9ucy9NYXBTZXJ2ZXInLFxyXG4gICAge1xyXG4gICAgICAgIG1pblpvb206IDYsXHJcbiAgICAgICAgbWF4Wm9vbTogMTIsXHJcbiAgICAgICAgbmFtZTogJ1dpc0RPVCBSZWdpb25zJ1xyXG4gICAgfSk7XHJcblxyXG5sZXQgbWV0YW1hbmFnZXJTZWdtZW50cyA9IG5ldyBMYXllckVzcmlNYXBTZXJ2ZXIoXHJcbiAgICAnaHR0cDovL3RyYW5zcG9ydGFsLmNlZS53aXNjLmVkdS9hcHBsaWNhdGlvbnMvYXJjZ2lzMi9yZXN0L3NlcnZpY2VzL01ldGFNYW5hZ2VyL01NX0FsbF9TZWdtZW50cy9NYXBTZXJ2ZXInLFxyXG4gICAge1xyXG4gICAgICAgIG1pblpvb206IDcsXHJcbiAgICAgICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICBuYW1lOiAnTWV0YW1hbmFnZXIgU2VnbWVudHMnXHJcbiAgICB9KTtcclxuXHJcbmxldCB0cnVja1NwZWVkMjAxNCA9IG5ldyBMYXllckVzcmlNYXBTZXJ2ZXIoXHJcbiAgICAnaHR0cDovL3RyYW5zcG9ydGFsLmNlZS53aXNjLmVkdS9hcHBsaWNhdGlvbnMvYXJjZ2lzMi9yZXN0L3NlcnZpY2VzL05QTVJEUy9jb21wYXJlRHluYW1pYy9NYXBTZXJ2ZXInLFxyXG4gICAge1xyXG4gICAgICAgIG1pblpvb206IDcsXHJcbiAgICAgICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICBuYW1lOiAndHJ1Y2syMDE0JyxcclxuICAgICAgICBzaG93TGF5ZXJzOiBbOF1cclxuICAgIH0pO1xyXG5cclxubGV0IHRydWNrU3BlZWQyMDE1ID0gbmV3IExheWVyRXNyaU1hcFNlcnZlcihcclxuICAgICdodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2FwcGxpY2F0aW9ucy9hcmNnaXMyL3Jlc3Qvc2VydmljZXMvTlBNUkRTL2NvbXBhcmVEeW5hbWljL01hcFNlcnZlcicsXHJcbiAgICB7XHJcbiAgICAgICAgbWluWm9vbTogNyxcclxuICAgICAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgICAgIG5hbWU6ICd0cnVjazIwMTUnLFxyXG4gICAgICAgIHNob3dMYXllcnM6IFs5XVxyXG4gICAgfSk7XHJcblxyXG5tYXAuYWRkTGF5ZXIod2lzRG90UmVnaW9ucy5vbExheWVyKTtcclxubWFwLmFkZExheWVyKHRydWNrU3BlZWQyMDE0Lm9sTGF5ZXIpO1xyXG5tYXAuYWRkTGF5ZXIodHJ1Y2tTcGVlZDIwMTUub2xMYXllcik7XHJcbm1hcC5hZGRMYXllcihtZXRhbWFuYWdlclNlZ21lbnRzLm9sTGF5ZXIpO1xyXG5cclxuXHJcbnN3aXBlci5hZGRMZWZ0TGF5ZXIod2lzRG90UmVnaW9ucyk7XHJcbnN3aXBlci5hZGRSaWdodExheWVyKG1ldGFtYW5hZ2VyU2VnbWVudHMpO1xyXG5cclxuc3dpcGVyLmFkZExlZnRMYXllcih0cnVja1NwZWVkMjAxNCk7XHJcbnN3aXBlci5hZGRSaWdodExheWVyKHRydWNrU3BlZWQyMDE1KTtcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./test/demo/compare-test.ts\n// module id = 35\n// module chunks = 2"],"sourceRoot":""} \ No newline at end of file diff --git a/test/serve/js/itsMap.js b/test/serve/js/itsMap.js index c3ff1a7..6584641 100644 --- a/test/serve/js/itsMap.js +++ b/test/serve/js/itsMap.js @@ -63,7 +63,7 @@ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 37); +/******/ return __webpack_require__(__webpack_require__.s = 36); /******/ }) /************************************************************************/ /******/ ([ @@ -100,7 +100,7 @@ function provide(namespace) { provide('util'); window['gv'].util.provide = provide; exports.default = provide; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3ZpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUdIOzs7O0dBSUc7QUFDSCxpQkFBaUIsU0FBUztJQUN0QixZQUFZLENBQUM7SUFDYixFQUFFLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDO1FBQ2hDLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwQyxFQUFFLENBQUMsQ0FBQyxPQUFPLFNBQVMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1lBQ2pDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUVELFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFFcEMsa0JBQWUsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTAvMjAxNS5cclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIGNyZWF0ZSBhIG5hbWVzcGFjZSBvbiB0aGUgZ3Ygb2JqZWN0XHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UgdG8gY3JlYXRlXHJcbiAqIEByZXR1cm5zIHtvYmplY3R9IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5hbWVzcGFjZVxyXG4gKi9cclxuZnVuY3Rpb24gcHJvdmlkZShuYW1lc3BhY2Upe1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvd1snZ3YnXSA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgd2luZG93WydndiddID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBhcnRzID0gbmFtZXNwYWNlLnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgbmFtZVNwYWNlID0gd2luZG93WydndiddO1xyXG5cclxuICAgIGZvciAobGV0IGk9MDsgaTwgcGFydHMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGxldCBuZXdPYmplY3QgPSBuYW1lU3BhY2VbcGFydHNbaV1dO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG5ld09iamVjdCA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgICAgIG5hbWVTcGFjZVtwYXJ0c1tpXV0gPSB7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5hbWVTcGFjZSA9IG5hbWVTcGFjZVtwYXJ0c1tpXV07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5hbWVTcGFjZTtcclxufVxyXG5cclxucHJvdmlkZSgndXRpbCcpO1xyXG53aW5kb3dbJ2d2J10udXRpbC5wcm92aWRlID0gcHJvdmlkZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHByb3ZpZGU7XHJcbiJdfQ== /***/ }), /* 1 */ @@ -139,7 +139,7 @@ function makeGuid() { } nm.makeGuid = makeGuid; exports.default = makeGuid; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUd1aWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYWtlR3VpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgscUNBQWdDO0FBQ2hDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFHekI7OztHQUdHO0FBQ0g7SUFDUSxNQUFNLENBQUMsc0NBQXNDO1NBQ3hDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUVqRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztBQUVmLENBQUM7QUFDRCxFQUFFLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUN2QixrQkFBZSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8zLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi9wcm92aWRlJztcclxubGV0IG5tID0gcHJvdmlkZSgndXRpbCcpO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBndWlkcyBhcmUgdXNlZCB0byB1bmlxdWVseSBpZGVudGlmeSBncm91cHMgYW5kIGZlYXR1cmVzXHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IGEgbmV3IGd1aWRcclxuICovXHJcbmZ1bmN0aW9uIG1ha2VHdWlkKCkge1xyXG4gICAgICAgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4J1xyXG4gICAgICAgICAgICAucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbiAoYykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHIgPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwLCB2ID0gYyA9PSAneCcgPyByIDogciAmIDB4MyB8IDB4ODtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxufVxyXG5ubS5tYWtlR3VpZCA9IG1ha2VHdWlkO1xyXG5leHBvcnQgZGVmYXVsdCBtYWtlR3VpZDtcclxuXHJcblxyXG4iXX0= /***/ }), /* 4 */ @@ -158,7 +158,7 @@ var mapPopupCls_1 = __webpack_require__(12); */ exports.mapPopup = new mapPopupCls_1.default(); exports.default = exports.mapPopup; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwUG9wdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBQb3B1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsNkNBQXdDO0FBRXhDOzs7R0FHRztBQUNVLFFBQUEsUUFBUSxHQUFHLElBQUkscUJBQVcsRUFBaUIsQ0FBQztBQUN6RCxrQkFBZSxnQkFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMy8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBNYXBQb3B1cENscyBmcm9tICcuL21hcFBvcHVwQ2xzJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2luZ2xlIHBvcHVwIG9iamVjdCBjYXRjaCBpcyB0aGF0IGl0IGlzIGNvbW1vbiB0byBtdWx0aW1hcCBwYWdlc1xyXG4gKiBAdHlwZSB7TWFwUG9wdXBDbHN9XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgbWFwUG9wdXAgPSBuZXcgTWFwUG9wdXBDbHMoKSBhcyBNYXBQb3B1cENscztcclxuZXhwb3J0IGRlZmF1bHQgbWFwUG9wdXA7XHJcbiJdfQ== /***/ }), /* 5 */ @@ -241,7 +241,7 @@ var MapInteractionBase = (function () { exports.MapInteractionBase = MapInteractionBase; nm.MapInteractionBase = MapInteractionBase; exports.default = MapInteractionBase; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwSW50ZXJhY3Rpb25CYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWFwSW50ZXJhY3Rpb25CYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7O0dBRUc7QUFDSCwyQ0FBc0M7QUFFdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUloQzs7R0FFRztBQUNIO0lBS0k7OztPQUdHO0lBQ0gsNEJBQVksT0FBZTtRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlDQUFJLEdBQUosVUFBSyxNQUFjO1FBQ2YsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUEsQ0FBQztZQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztZQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQU1ELHNCQUFJLG1DQUFHO1FBSlA7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyQixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDJDQUFXO1FBSmY7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM3QixDQUFDOzs7T0FBQTtJQUVEOzs7T0FHRztJQUNILHVDQUFVLEdBQVY7UUFDSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksR0FBRyxHQUFNLElBQUksQ0FBQyxRQUFRLDRCQUF5QixDQUFDO1lBQ3BELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsTUFBTSxHQUFHLENBQUM7UUFDZCxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0NBQVMsR0FBVDtRQUNJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0wseUJBQUM7QUFBRCxDQUFDLEFBOURELElBOERDO0FBOURZLGdEQUFrQjtBQWdFL0IsRUFBRSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0FBQzNDLGtCQUFlLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvOC8yMDE1LlxyXG4gKi9cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnb2xIZWxwZXJzJyk7XHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiBiYXNlIGludGVyYWN0aW9uXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTWFwSW50ZXJhY3Rpb25CYXNlIHtcclxuICAgIF9tYXA6IG9sLk1hcDtcclxuICAgIF9pbml0aWFsaXplZDogYm9vbGVhbjtcclxuICAgIF9zdWJ0eXBlOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBtYXAgaW50ZXJhY3Rpb24gYmFzZVxyXG4gICAgICogQHBhcmFtIHN1YnR5cGUgLSB0aGUgaW50ZXJhY3Rpb24gc3VidHlwZVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihzdWJ0eXBlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9tYXAgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fc3VidHlwZSA9IHN1YnR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBiYXNlIGluaXRpYWxpemVyLCByZXR1cm5zIHRydWUgZm9yIGFscmVhZHkgaW5pdGlhbGl6ZWRcclxuICAgICAqIEBwYXJhbSB0aGVNYXAgLSB0aGUgb2wgTWFwXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIGZvciBhbHJlYWR5IGluaXRpYWxpemVkXHJcbiAgICAgKi9cclxuICAgIGluaXQodGhlTWFwOiBvbC5NYXApe1xyXG4gICAgICAgIGlmICghdGhpcy5faW5pdGlhbGl6ZWQpe1xyXG4gICAgICAgICAgICB0aGlzLl9tYXAgPSB0aGVNYXA7XHJcbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgcmVmZXJlbmNlIHRvIHRoZSBvbCBtYXAgb2JqZWN0XHJcbiAgICAgKiBAcmV0dXJucyB7b2wuTWFwfSB0aGUgbWFwIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBnZXQgbWFwKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgaWYgaXMgaW5pdGlhbGl6ZWRcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBpcyBpbml0aWFsaXplZFxyXG4gICAgICovXHJcbiAgICBnZXQgaW5pdGlhbGl6ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxpemVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgdGhlIGluaXRpYWxpemF0aW9uIHN0YXR1cyBhbmQgdGhyb3cgZXhjZXB0aW9uIGlmIG5vdCB2YWxpZCB5ZXRcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqL1xyXG4gICAgX2NoZWNrSW5pdCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgbGV0IG1zZyA9IGAke3RoaXMuX3N1YnR5cGV9IG9iamVjdCBub3QgaW5pdGlhbGl6ZWRgO1xyXG4gICAgICAgICAgICBhbGVydChtc2cpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhtc2cpO1xyXG4gICAgICAgICAgICB0aHJvdyBtc2c7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgdGhlIGluaXRpYWxpemF0aW9uIHN0YXR1cyBhbmQgdGhyb3cgZXhjZXB0aW9uIGlmIG5vdCB2YWxpZCB5ZXRcclxuICAgICAqL1xyXG4gICAgY2hlY2tJbml0KCl7XHJcbiAgICAgICAgdGhpcy5fY2hlY2tJbml0KCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbm5tLk1hcEludGVyYWN0aW9uQmFzZSA9IE1hcEludGVyYWN0aW9uQmFzZTtcclxuZXhwb3J0IGRlZmF1bHQgTWFwSW50ZXJhY3Rpb25CYXNlO1xyXG4iXX0= /***/ }), /* 6 */ @@ -260,7 +260,7 @@ var mapMoveCls_1 = __webpack_require__(11); */ exports.mapMove = new mapMoveCls_1.default(); exports.default = exports.mapMove; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwTW92ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hcE1vdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUVILDJDQUFzQztBQUV0Qzs7O0dBR0c7QUFFVSxRQUFBLE9BQU8sR0FBRyxJQUFJLG9CQUFVLEVBQUUsQ0FBQztBQUN4QyxrQkFBZSxlQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8zLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IE1hcE1vdmVDbHMgZnJvbSAnLi9tYXBNb3ZlQ2xzJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2luZ2xlIG1hcCBtb3ZlIG9iamVjdCBjYXRjaCBpcyB0aGF0IGl0IGlzIGNvbW1vbiB0byBtdWx0aW1hcCBwYWdlc1xyXG4gKiBAdHlwZSB7TWFwTW92ZUNsc31cclxuICovXHJcblxyXG5leHBvcnQgY29uc3QgbWFwTW92ZSA9IG5ldyBNYXBNb3ZlQ2xzKCk7XHJcbmV4cG9ydCBkZWZhdWx0IG1hcE1vdmU7XHJcbiJdfQ== /***/ }), /* 7 */ @@ -302,7 +302,7 @@ function quickMap(options) { exports.quickMap = quickMap; nm.quickMap = quickMap; exports.default = quickMap; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2tNYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJxdWlja01hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsK0NBQTZEO0FBQzdELDJDQUFzQztBQUN0QyxxQ0FBZ0M7QUFDaEMsdUNBQWtDO0FBRWxDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFOUI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsa0JBQXlCLE9BQTBCO0lBQy9DLElBQUksQ0FBQyxHQUFHLDJCQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsaUJBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEIsa0JBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNiLENBQUM7QUFMRCw0QkFLQztBQUdELEVBQUUsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3ZCLGtCQUFlLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzE1LzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtxdWlja01hcE9wdGlvbnMsIHF1aWNrTWFwQmFzZX0gZnJvbSAnLi9xdWlja01hcEJhc2UnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFwTW92ZSBmcm9tICcuL21hcE1vdmUnO1xyXG5pbXBvcnQgbWFwUG9wdXAgZnJvbSAnLi9tYXBQb3B1cCc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5sZXQgbm0gPSBwcm92aWRlKCdvbEhlbHBlcnMnKTtcclxuXHJcbi8qKlxyXG4gKiBTZXRzIHVwIGEgbWFwIHdpdGggc29tZSBkZWZhdWx0IHBhcmFtZXRlcnMgYW5kIGluaXRpYWxpemVzXHJcbiAqIG1hcE1vdmUgYW5kIG1hcFBvcHVwXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucz17fV0gY29uZmlnIG9wdGlvbnNcclxuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmRpdklkPW1hcF0gbWFwIGRpdiBpZFxyXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMuY2VudGVyPXt9XSBjZW50ZXIgY29uZmlnIG9iamVjdFxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuY2VudGVyLng9LTEwMDE4Mzc4XSBjZW50ZXIgeCwgd2ViIG1lcmNhdG9yIHggb3IgbG9uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5jZW50ZXIueT01NTc0OTEwXSBjZW50ZXIgeSwgd2ViIG1lcmNhdG9yIHkgb3IgbGF0XHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56b29tPTddIHpvb20gbGV2ZWxcclxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSBtaW4gem9vbVxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIG1heCB6b29tXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuYmFzZVN3aXRjaGVyPXRydWVdIGlmIGFkZCBiYXNlIG1hcCBzd2l0Y2hlclxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmZ1bGxTY3JlZW49ZmFsc2VdIGlmIGFkZCBiYXNlIG1hcCBzd2l0Y2hlclxyXG4gKiBAcmV0dXJucyB7b2wuTWFwfSB0aGUgb2wgbWFwXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcXVpY2tNYXAob3B0aW9ucz8gOiBxdWlja01hcE9wdGlvbnMpOiBvbC5NYXAge1xyXG4gICAgbGV0IG0gPSBxdWlja01hcEJhc2Uob3B0aW9ucyk7XHJcbiAgICBtYXBNb3ZlLmluaXQobSk7XHJcbiAgICBtYXBQb3B1cC5pbml0KG0pO1xyXG4gICAgcmV0dXJuIG07XHJcbn1cclxuXHJcblxyXG5ubS5xdWlja01hcCA9IHF1aWNrTWFwO1xyXG5leHBvcnQgZGVmYXVsdCBxdWlja01hcDtcclxuIl19 /***/ }), /* 8 */ @@ -711,7 +711,7 @@ var LayerBase = (function () { exports.LayerBase = LayerBase; nm.LayerBase = LayerBase; exports.default = LayerBase; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMEVBQTRFO0FBQzVFLDJDQUFzQztBQUV0Qyw2Q0FBd0M7QUFDeEMsMEJBQTZCO0FBRTdCLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFtQjdCOzs7R0FHRztBQUNIO0lBMEJJOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsbUJBQVksR0FBVyxFQUFFLE9BQThCO1FBQTlCLHdCQUFBLEVBQUEsWUFBOEI7UUFDbkQsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFzQixDQUFDO1FBRTVDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxhQUFhLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBR2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxPQUFPLENBQUMsTUFBTSxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUN2RSxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sT0FBTyxDQUFDLGNBQWMsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDbkcsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxjQUFjLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBRWxHLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxrQkFBUSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLGVBQWUsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMs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QixDQUFDOzs7T0FBQTtJQUVTLDhCQUFVLEdBQXBCO1FBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUNMLGdCQUFDO0FBQUQsQ0FBQyxBQXhaRCxJQXdaQztBQXhacUIsOEJBQVM7QUEwWi9CLEVBQUUsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0FBQ3pCLGtCQUFlLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHpvb21SZXNvbHV0aW9uQ29udmVydCBmcm9tICcuLi9vbEhlbHBlcnMvem9vbVJlc29sdXRpb25Db252ZXJ0JztcclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCBtYWtlR3VpZCBmcm9tICcuLi91dGlsL21ha2VHdWlkJztcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckJhc2VPcHRpb25ze1xyXG4gICAgaWQ/OiBzdHJpbmc7XHJcbiAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgb3BhY2l0eT86IG51bWJlcjtcclxuICAgIHZpc2libGU/OiBib29sZWFuO1xyXG4gICAgbWluWm9vbT86IG51bWJlcjtcclxuICAgIG1heFpvb20/OiBudW1iZXI7XHJcbiAgICBwYXJhbXM/OiBhbnk7XHJcbiAgICB6SW5kZXg/OiBudW1iZXI7XHJcbiAgICBsb2FkQ2FsbGJhY2s/OiBGdW5jdGlvbjtcclxuICAgIGxlZ2VuZENvbGxhcHNlPzogYm9vbGVhbjtcclxuICAgIGxlZ2VuZENoZWNrYm94PzogYm9vbGVhbjtcclxuICAgIGxlZ2VuZENvbnRlbnQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGhlIGJhc2UgbGF5ZXIgY2xhc3NcclxuICogQGFic3RyYWN0XHJcbiAqL1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGF5ZXJCYXNlIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgX2xlZ2VuZENoZWNrYm94OiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF91cmw6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBfb3BhY2l0eTogbnVtYmVyO1xyXG4gICAgcHJvdGVjdGVkIF9taW5ab29tOiBudW1iZXI7XHJcbiAgICBwcm90ZWN0ZWQgX21heFpvb206IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCBfdmlzaWJsZTogYm9vbGVhbjtcclxuICAgIHByb3RlY3RlZCBfbG9hZGVkOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF96SW5kZXg6IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCBfbGVnZW5kQ29udGVudDogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIF9wYXJhbXM6IGFueTtcclxuICAgIHByb3RlY3RlZCBfaWQ6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBfbmFtZTogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIF9zb3VyY2U6IG9sLnNvdXJjZS5Tb3VyY2U7XHJcbiAgICBwcm90ZWN0ZWQgX2FuaW1hdGU6IGJvb2xlYW47XHJcbiAgICBwcm90ZWN0ZWQgX2xlZ2VuZENvbGxhcHNlOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF9tYXhSZXNvbHV0aW9uOiBudW1iZXI7XHJcbiAgICBwcm90ZWN0ZWQgX21pblJlc29sdXRpb246IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCAgXyRsZWdlbmREaXY6IEpRdWVyeTtcclxuICAgIGxvYWRDYWxsYmFjazogRnVuY3Rpb247XHJcbiAgICBwcm90ZWN0ZWQgX29sTGF5ZXI6IG9sLmxheWVyLkxheWVyO1xyXG4gICAgcHJvdGVjdGVkIF9hcHBseUNvbGxhcHNlQ2FsbGVkOiBib29sZWFuO1xyXG5cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYmFzZSBsYXllciBmb3IgYWxsIG90aGVyc1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIHVybCBmb3Igc291cmNlXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmlkPW1ha2VHdWlkKCldIC0gbGF5ZXIgaWRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5uYW1lPVVubmFtZWQgTGF5ZXJdIC0gbGF5ZXIgbmFtZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm9wYWNpdHk9MV0gLSBvcGFjaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnZpc2libGU9dHJ1ZV0gLSBkZWZhdWx0IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5ab29tPXVuZGVmaW5lZF0gLSBtaW4gem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIC0gbWF4IHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnBhcmFtcz17fV0gLSB0aGUgZ2V0IHBhcmFtZXRlcnMgdG8gaW5jbHVkZSB0byByZXRyaWV2ZSB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56SW5kZXg9MF0gLSB0aGUgeiBpbmRleCBmb3IgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy5sb2FkQ2FsbGJhY2tdIC0gZnVuY3Rpb24gdG8gY2FsbCBvbiBsb2FkLCBjb250ZXh0IHRoaXMgaXMgdGhlIGxheWVyIG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb2xsYXBzZT1mYWxzZV0gLSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGJlIGluaXRpYWxseSBjb2xsYXBzZWRcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ2hlY2tib3g9dHJ1ZV0gLSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGhhdmUgYSBjaGVja2JveCBmb3IgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb250ZW50PXVuZGVmaW5lZF0gLSBhZGRpdGlvbmFsIGNvbnRlbnQgdG8gYWRkIHRvIHRoZSBsZWdlbmRcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IodXJsOiBzdHJpbmcsIG9wdGlvbnM6IExheWVyQmFzZU9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9IGFzIExheWVyQmFzZU9wdGlvbnM7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdXJsICE9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB0aHJvdyAnSW52YWxpZCBVUkwnO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl91cmwgPSB1cmw7XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9wYXJhbXMgPSB0eXBlb2Ygb3B0aW9ucy5wYXJhbXMgPT0gJ29iamVjdCcgPyBvcHRpb25zLnBhcmFtcyA6IHt9O1xyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbGxhcHNlID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kQ29sbGFwc2UgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5sZWdlbmRDb2xsYXBzZSA6IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENoZWNrYm94ID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kQ2hlY2tib3ggPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5sZWdlbmRDaGVja2JveCA6IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuaWQgPSBvcHRpb25zLmlkIHx8IG1ha2VHdWlkKCk7XHJcbiAgICAgICAgdGhpcy5fbmFtZSA9IG9wdGlvbnMubmFtZSB8fCAnVW5uYW1lZCBMYXllcic7XHJcbiAgICAgICAgdGhpcy5hbmltYXRlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IHR5cGVvZiBvcHRpb25zLm9wYWNpdHkgPT0gJ251bWJlcicgPyBvcHRpb25zLm9wYWNpdHkgOiAxO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fb3BhY2l0eSA+IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5fb3BhY2l0eSA9IDE7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9vcGFjaXR5IDwgMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9vcGFjaXR5ID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB0eXBlb2Ygb3B0aW9ucy52aXNpYmxlID09PSAnYm9vbGVhbicgPyBvcHRpb25zLnZpc2libGUgOiB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLl9zb3VyY2UgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByb3RlY3RlZFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuX21heFJlc29sdXRpb24gPSB6b29tUmVzb2x1dGlvbkNvbnZlcnQuem9vbVRvUmVzb2x1dGlvbihvcHRpb25zLm1pblpvb20pO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5fbWF4UmVzb2x1dGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5fbWF4UmVzb2x1dGlvbiArPSAwLjAwMDAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9taW5SZXNvbHV0aW9uID0gem9vbVJlc29sdXRpb25Db252ZXJ0Lnpvb21Ub1Jlc29sdXRpb24ob3B0aW9ucy5tYXhab29tKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWluWm9vbSA9IHR5cGVvZiBvcHRpb25zLm1pblpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLm1pblpvb20gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbWF4Wm9vbSA9IHR5cGVvZiBvcHRpb25zLm1heFpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLm1heFpvb20gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fekluZGV4ID0gdHlwZW9mIG9wdGlvbnMuekluZGV4ID09ICdudW1iZXInID8gb3B0aW9ucy56SW5kZXggOiAwO1xyXG5cclxuICAgICAgICB0aGlzLmxvYWRDYWxsYmFjayA9IHR5cGVvZiBvcHRpb25zLmxvYWRDYWxsYmFjayA9PSAnZnVuY3Rpb24nID8gb3B0aW9ucy5sb2FkQ2FsbGJhY2sgOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgfTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgPSAnJztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2xlZ2VuZENoZWNrYm94KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgKz0gYDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiAke3RoaXMudmlzaWJsZSA/ICdjaGVja2VkJyA6ICcnfSBgICtcclxuICAgICAgICAgICAgICAgIGBjbGFzcz1cImxlZ2VuZC1jaGVja1wiIGlkPVwiJHt0aGlzLmlkfS1sZWdlbmQtbGF5ZXItY2hlY2tcIj48c3Bhbj48L3NwYW4+YDtcclxuICAgICAgICAgICAgdGhpcy5fbGVnZW5kQ29udGVudCArPSBgPGxhYmVsIGZvcj1cIiR7dGhpcy5pZH0tbGVnZW5kLWxheWVyLWNoZWNrXCIgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbmFtZVwiPiR7dGhpcy5uYW1lfTwvbGFiZWw+YDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9sZWdlbmRDb250ZW50ICs9IGA8bGFiZWwgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbmFtZVwiPiR7dGhpcy5uYW1lfTwvbGFiZWw+YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuXyRsZWdlbmREaXYgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2FwcGx5Q29sbGFwc2VDYWxsZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9hZGRMZWdlbmRDb250ZW50KHR5cGVvZiBvcHRpb25zLmxlZ2VuZENvbnRlbnQgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5sZWdlbmRDb250ZW50IDogdW5kZWZpbmVkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGJhc2UgbG9hZCBmdW5jdGlvbiwgc2V0cyBfbG9hZGVkID0gdHJ1ZSBpZiBpdCBpcyBub3QgYWxyZWFkeVxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IGlmIGFscmVhZHkgbG9hZGVkXHJcbiAgICAgKi9cclxuICAgIF9sb2FkKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmxvYWRlZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHRoZSBsZWdlbmQgaHRtbCwgYmUgc3VyZSB0byBvbmx5IGFkZCB0byB0aGUgRE9NIG9uY2VcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IGh0bWwgZm9yIGxheWVyIHdyYXBwZWQgaW4gYSBkaXZcclxuICAgICAqL1xyXG4gICAgZ2V0TGVnZW5kRGl2KCkge1xyXG4gICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImxlZ2VuZC1sYXllci1kaXZcIiBpZD1cIiR7dGhpcy5pZH0tbGVnZW5kLWxheWVyLWRpdlwiPiR7dGhpcy5fbGVnZW5kQ29udGVudH08L2Rpdj5gO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBhZGRpdGlvbmFsQ29udGVudCAtIGFkZGl0aW9uYWwgY29udGVudCB0byBhZGQgdG8gbGVnZW5kXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBfYWRkTGVnZW5kQ29udGVudChhZGRpdGlvbmFsQ29udGVudD0nJykge1xyXG5cclxuICAgICAgICBsZXQgYWRkQ29sbGFwc2UgPSBhZGRpdGlvbmFsQ29udGVudC5pbmRleE9mKCc8dWw+JykgPiAtMTtcclxuXHJcbiAgICAgICAgaWYgKGFkZENvbGxhcHNlKSB7XHJcbiAgICAgICAgICAgIGFkZGl0aW9uYWxDb250ZW50ID0gJzxzcGFuIGNsYXNzPVwibGVnZW5kLWl0ZW1zLWV4cGFuZGVyXCIgdGl0bGU9XCJFeHBhbmQvQ29sbGFwc2VcIj4mIzk2NjA7PC9zcGFuPicgKyBhZGRpdGlvbmFsQ29udGVudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgKz0gYWRkaXRpb25hbENvbnRlbnQ7XHJcblxyXG4gICAgICAgIHRoaXMuXyRsZWdlbmREaXYgPSAkKGAjJHt0aGlzLmlkfS1sZWdlbmQtbGF5ZXItZGl2YCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl8kbGVnZW5kRGl2Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5fJGxlZ2VuZERpdi5hcHBlbmQoYWRkaXRpb25hbENvbnRlbnQpO1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5Q29sbGFwc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhZGQgYWRkaXRpb25hbCBjb250ZW50IHRvIHRoZSBsZWdlbmRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbYWRkaXRpb25hbENvbnRlbnQ9XSAtIGFkZGl0b25hbCBjb250ZW50IHRvIGFkZFxyXG4gICAgICovXHJcbiAgICBhZGRMZWdlbmRDb250ZW50KGFkZGl0aW9uYWxDb250ZW50KSB7XHJcbiAgICAgICAgdGhpcy5fYWRkTGVnZW5kQ29udGVudChhZGRpdGlvbmFsQ29udGVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXBwbHlDb2xsYXBzZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5fYXBwbHlDb2xsYXBzZUNhbGxlZCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY29sbGFwc2UgYWxyZWFkeSBhcHBsaWVkJyk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fJGxlZ2VuZERpdiA9ICQoYCMke3RoaXMuaWR9LWxlZ2VuZC1sYXllci1kaXZgKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuXyRsZWdlbmREaXYubGVuZ3RoID4gMCkge1xyXG5cclxuICAgICAgICAgICAgbGV0ICRleHBhbmRlciA9IHRoaXMuXyRsZWdlbmREaXYuZmluZCgnLmxlZ2VuZC1pdGVtcy1leHBhbmRlcicpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCRleHBhbmRlci5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hcHBseUNvbGxhcHNlQ2FsbGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAkZXhwYW5kZXIuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCAkdGhpcyA9ICQodGhpcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICR0aGlzLnNpYmxpbmdzKCd1bCcpLnNsaWRlVG9nZ2xlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy5oYXNDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLnJlbW92ZUNsYXNzKCdsZWdlbmQtbGF5ZXItZ3JvdXAtY29sbGFwc2VkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLmh0bWwoJyYjOTY2MDsnKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5hZGRDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5odG1sKCcmIzk2NTQ7Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2xlZ2VuZENvbGxhcHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJGV4cGFuZGVyLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmljayB0byByZWZyZXNoIHRoZSBsYXllclxyXG4gICAgICovXHJcbiAgICByZWZyZXNoKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNvdXJjZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNvdXJjZS5yZWZyZXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBpZCgpOiBzdHJpbmd7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lkO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBpZChuZXdJZDogc3RyaW5nKXtcclxuICAgICAgICB0aGlzLl9pZCA9IG5ld0lkO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhbmltYXRlKCk6IGJvb2xlYW57XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FuaW1hdGU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGFuaW1hdGUoYW5pbWF0ZTogYm9vbGVhbil7XHJcbiAgICAgICAgdGhpcy5fYW5pbWF0ZSA9IGFuaW1hdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIGxlZ2VuZCBjb250ZW50XHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICovXHJcbiAgICBnZXQgbGVnZW5kQ29udGVudCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbGVnZW5kQ29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgbGVnZW5kIGNvbnRlbnQgZGlyZWN0bHlcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuZXdWYWwgLSBuZXcgY29udGVudFxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICovXHJcbiAgICBzZXQgbGVnZW5kQ29udGVudChuZXdWYWwpIHtcclxuICAgICAgICB0aGlzLl9sZWdlbmRDb250ZW50ID0gbmV3VmFsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtYXAgZ2V0IHBhcmFtc1xyXG4gICAgICogQHR5cGUge29iamVjdH1cclxuICAgICAqL1xyXG4gICAgZ2V0IHBhcmFtcygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IHRoZSBtYXAgZ2V0IHBhcmFtc1xyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IG5ld1BhcmFtcyAtIG5ldyBnZXQgcGFyYW1zXHJcbiAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgKi9cclxuICAgIHNldCBwYXJhbXMobmV3UGFyYW1zKSB7XHJcbiAgICAgICAgdGhpcy5fcGFyYW1zID0gbmV3UGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtaW5pbXVtIHJlc29sdXRpb25cclxuICAgICAqIEB0eXBlIHtudW1iZXJ8Kn1cclxuICAgICAqL1xyXG4gICAgZ2V0IG1pblJlc29sdXRpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pblJlc29sdXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIG1heGltdW0gcmVzb2x1dGlvblxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWF4UmVzb2x1dGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4UmVzb2x1dGlvbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCBtaW4gem9vbVxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWluWm9vbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWluWm9vbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCBtYXggem9vbVxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWF4Wm9vbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4Wm9vbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgdXJsXHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICovXHJcbiAgICBnZXQgdXJsKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91cmw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGxheWVyIHZpc2liaWxpdHlcclxuICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHZpc2liaWxpdHlcclxuICAgICAqL1xyXG4gICAgc2V0IHZpc2libGUodmlzaWJpbGl0eTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuc2V0VmlzaWJsZSh2aXNpYmlsaXR5KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0VmlzaWJsZSh2aXNpYmlsaXR5OiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZpc2liaWxpdHk7XHJcbiAgICAgICAgaWYgKHRoaXMub2xMYXllcikge1xyXG4gICAgICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0VmlzaWJsZSh0aGlzLl92aXNpYmxlKTtcclxuICAgICAgICAgICAgaWYgKHZpc2liaWxpdHkgJiYgIXRoaXMuX2xvYWRlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCB0aGUgbGF5ZXIgb3BhY2l0eVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqL1xyXG4gICAgZ2V0IG9wYWNpdHkoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wYWNpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIGxheWVyIG9wYWNpdHlcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvcGFjaXR5IC0gbGF5ZXIgb3BhY2l0eVxyXG4gICAgICovXHJcbiAgICBzZXQgb3BhY2l0eShvcGFjaXR5KSB7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IG9wYWNpdHk7XHJcbiAgICAgICAgaWYgKHRoaXMub2xMYXllcikge1xyXG4gICAgICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0T3BhY2l0eSh0aGlzLl9vcGFjaXR5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGxheWVyIG5hbWVcclxuICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgKi9cclxuICAgIGdldCBuYW1lKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9uYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IHRoZSBsYXllciBuYW1lXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3TmFtZSAtIHRoZSBuZXcgbmFtZVxyXG4gICAgICovXHJcbiAgICBzZXQgbmFtZShuZXdOYW1lKSB7XHJcbiAgICAgICAgdGhpcy5fbmFtZSA9IG5ld05hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGUgbGF5ZXIgaXMgbG9hZGVkXHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqL1xyXG4gICAgZ2V0IGxvYWRlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBsYXllciBzb3VyY2VcclxuICAgICAqIEB0eXBlIHsqfVxyXG4gICAgICovXHJcbiAgICBnZXQgc291cmNlKCk6IG9sLnNvdXJjZS5Tb3VyY2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNvdXJjZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0U291cmNlKCk6IG9sLnNvdXJjZS5Tb3VyY2V7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgeiBpbmRleFxyXG4gICAgICovXHJcbiAgICBnZXQgekluZGV4KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3pJbmRleDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgeiBpbmRleFxyXG4gICAgICovXHJcbiAgICBzZXQgekluZGV4KG5ld1o6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX3pJbmRleCA9IG5ld1o7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHNldFpJbmRleChuZXdaOiBudW1iZXIpe1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHRoZSB0aGUgb2wgbGF5ZXJcclxuICAgICAqL1xyXG4gICAgZ2V0IG9sTGF5ZXIoKTogb2wubGF5ZXIuTGF5ZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE9sTGF5ZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0T2xMYXllcigpOiBvbC5sYXllci5MYXllcntcclxuICAgICAgICByZXR1cm4gdGhpcy5fb2xMYXllcjtcclxuICAgIH1cclxufVxyXG5cclxubm0uTGF5ZXJCYXNlID0gTGF5ZXJCYXNlO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckJhc2U7XHJcbiJdfQ== /***/ }), /* 9 */ @@ -744,7 +744,7 @@ function definedAndNotNull(input) { } exports.definedAndNotNull = definedAndNotNull; nm.definedAndNotNull = definedAndNotNull; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tEZWZpbmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2hlY2tEZWZpbmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscUNBQWdDO0FBQ2hDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUV0Qzs7OztHQUlHO0FBQ0gseUJBQWlDLEtBQUs7SUFDbEMsWUFBWSxDQUFDO0lBRWIsTUFBTSxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBSkQsMENBSUM7QUFFRCxFQUFFLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztBQUdyQzs7OztHQUlHO0FBQ0gsMkJBQW1DLEtBQVU7SUFDekMsWUFBWSxDQUFDO0lBRWIsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBSkQsOENBSUM7QUFFRCxFQUFFLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcHJvdmlkZSBmcm9tICcuL3Byb3ZpZGUnO1xyXG5sZXQgbm0gPSBwcm92aWRlKCd1dGlsLmNoZWNrRGVmaW5lZCcpO1xyXG5cclxuLyoqXHJcbiAqIGNoZWNrIGlmIHRoZSBpbnB1dCBpcyB1bmRlZmluZWQgb3IgbnVsbFxyXG4gKiBAcGFyYW0gaW5wdXQgLSBpbnB1dCBwb2ludGVyXHJcbiAqIEByZXR1cm5zIHRydWUgdW5kZWZpbmVkIG9yIG51bGxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1bmRlZmluZWRPck51bGwgKGlucHV0KTogYm9vbGVhbntcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG5cclxuICAgIHJldHVybiAodHlwZW9mIGlucHV0ID09PSAndW5kZWZpbmVkJyB8fCBpbnB1dCA9PT0gbnVsbCk7XHJcbn1cclxuXHJcbm5tLnVuZGVmaW5lZE9yTnVsbCA9IHVuZGVmaW5lZE9yTnVsbDtcclxuXHJcblxyXG4vKipcclxuICogY2hlY2sgaWYgdGhlIGlucHV0IGlzIGRlZmluZWQgYW5kIG5vdCBudWxsXHJcbiAqIEBwYXJhbSBpbnB1dCAtIGlucHV0IHBvaW50ZXJcclxuICogQHJldHVybnMgdHJ1ZSBkZWZpbmVkIGFuZCBub3QgbnVsbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZWRBbmROb3ROdWxsIChpbnB1dDogYW55KTogYm9vbGVhbntcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG5cclxuICAgIHJldHVybiAhKHVuZGVmaW5lZE9yTnVsbChpbnB1dCkpO1xyXG59XHJcblxyXG5ubS5kZWZpbmVkQW5kTm90TnVsbCA9IGRlZmluZWRBbmROb3ROdWxsO1xyXG5cclxuIl19 /***/ }), /* 10 */, @@ -990,7 +990,7 @@ var MapMoveCls = (function (_super) { exports.MapMoveCls = MapMoveCls; nm.MapMoveCls = MapMoveCls; exports.default = MapMoveCls; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwTW92ZUNscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hcE1vdmVDbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EsMkRBQXNEO0FBQ3RELG1EQUFxRDtBQUNyRCwyQ0FBc0M7QUFDdEMsNkNBQXdDO0FBRXhDLDBCQUE2QjtBQUM3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBcUJoQzs7O0dBR0c7QUFDSDtJQUFnQyw4QkFBa0I7SUFhOUM7O09BRUc7SUFDSDtRQUFBLFlBQ0ksa0JBQU0sVUFBVSxDQUFDLFNBZXBCO1FBZEcsS0FBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsS0FBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsS0FBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFFdkIsS0FBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixLQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLEtBQUksQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7UUFDakMsS0FBSSxDQUFDLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUNsQyxLQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBRWxDLEtBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLEtBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDOztJQUVoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gseUJBQUksR0FBSixVQUFLLE1BQWM7UUFBbkIsaUJBaUJDO1FBaEJHLGlCQUFNLElBQUksWUFBQyxNQUFNLENBQUMsQ0FBQztRQUVuQixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLFVBQUMs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Q0FBQztRQUNoRSxDQUFDO0lBQ0wsQ0FBQztJQUNMLGlCQUFDO0FBQUQsQ0FBQyxBQWxRRCxDQUFnQyw0QkFBa0IsR0FrUWpEO0FBbFFZLGdDQUFVO0FBb1F2QixFQUFFLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztBQUMzQixrQkFBZSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGF5ZXJCYXNlVmVjdG9yIGZyb20gXCIuLi9sYXllcnMvTGF5ZXJCYXNlVmVjdG9yXCI7XHJcbmltcG9ydCBNYXBJbnRlcmFjdGlvbkJhc2UgZnJvbSAnLi9tYXBJbnRlcmFjdGlvbkJhc2UnO1xyXG5pbXBvcnQgKiBhcyBjaGVja0RlZmluZWQgZnJvbSAnLi4vdXRpbC9jaGVja0RlZmluZWQnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFrZUd1aWQgZnJvbSAnLi4vdXRpbC9tYWtlR3VpZCc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycycpO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgZXh0ZW50T2JqZWN0e1xyXG4gICAgbWluWDogbnVtYmVyO1xyXG4gICAgbWluWTogbnVtYmVyO1xyXG4gICAgbWF4WDogbnVtYmVyO1xyXG4gICAgbWF4WTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIG1hcE1vdmVDYWxsYmFja0Z1bmN0aW9ue1xyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGV4dGVudCBleHRlbnQgYXMgcHJlZGVmaW5lZCBvYmplY3QgbWluWCwgbWluWCwgbWF4WCwgbWF4WVxyXG4gICAgICogQHBhcmFtIHpvb21MZXZlbCBjdXJyZW50IHpvb20gbGV2ZWxcclxuICAgICAqIEBwYXJhbSBldnRUeXBlIHRoZSBldmVudCB0eXBlICdjaGFuZ2U6Y2VudGVyJywgJ2NoYW5nZTpyZXNvbHV0aW9uJ1xyXG4gICAgICovXHJcbiAgICAoZXh0ZW50OiBleHRlbnRPYmplY3QsIHpvb21MZXZlbDogbnVtYmVyLCBldnRUeXBlPzogc3RyaW5nKTogYW55XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogYXNzaXN0cyB3aXRoIG1hcCBtb3ZlIGludGVyYWN0aW9ucywgdHJpZ2dlciBjYWxsYmFjayBmdW5jdGlvbnNcclxuICogQGF1Z21lbnRzIE1hcEludGVyYWN0aW9uQmFzZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIE1hcE1vdmVDbHMgZXh0ZW5kcyBNYXBJbnRlcmFjdGlvbkJhc2Uge1xyXG4gICAgX21hcEV4dGVudDogZXh0ZW50T2JqZWN0O1xyXG4gICAgX3pvb21MZXZlbDogbnVtYmVyO1xyXG4gICAgX2xvb2t1cExheWVyOiBPYmplY3Q7XHJcbiAgICBfYXJyTGF5ZXI6IEFycmF5PExheWVyQmFzZVZlY3Rvcj47XHJcbiAgICBfYXJyTHlyVGltZW91dDogQXJyYXk8bnVtYmVyPjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0OiBBcnJheTxudW1iZXI+O1xyXG4gICAgX21hcE1vdmVDYWxsYmFja0RlbGF5czogQXJyYXk8bnVtYmVyPjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tzTG9va3VwOiBPYmplY3Q7XHJcbiAgICBfbWFwTW92ZUNhbGxiYWNrQ29udGV4dDogQXJyYXk8T2JqZWN0PjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tzOiBBcnJheTxtYXBNb3ZlQ2FsbGJhY2tGdW5jdGlvbj47XHJcbiAgICBfYXJyTHlyUmVxdWVzdDogQXJyYXk8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGNvbnN0cnVjdG9yIGNhbGxlZCBpbXBsaWNpdGx5XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCdtYXAgbW92ZScpO1xyXG4gICAgICAgIHRoaXMuX2Fyckx5clJlcXVlc3QgPSBbXTtcclxuICAgICAgICB0aGlzLl9hcnJMeXJUaW1lb3V0ID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyTGF5ZXIgPSBbXTtcclxuICAgICAgICB0aGlzLl9sb29rdXBMYXllciA9IHt9O1xyXG5cclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzID0gW107XHJcbiAgICAgICAgdGhpcy5fbWFwTW92ZUNhbGxiYWNrc0xvb2t1cCA9IHt9O1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja0RlbGF5cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja0NvbnRleHQgPSBbXTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0ID0gW107XHJcblxyXG4gICAgICAgIHRoaXMuX21hcEV4dGVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl96b29tTGV2ZWwgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogaW5pdGlhbGl6ZSB0aGUgbWFwIG1vdmUgb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0gdGhlTWFwIC0gdGhlIG9sIG1hcFxyXG4gICAgICovXHJcbiAgICBpbml0KHRoZU1hcDogb2wuTWFwKXtcclxuICAgICAgICBzdXBlci5pbml0KHRoZU1hcCk7XHJcblxyXG4gICAgICAgIHRoaXMubWFwLmdldFZpZXcoKS5vbihbJ2NoYW5nZTpjZW50ZXInLCAnY2hhbmdlOnJlc29sdXRpb24nXSwgKGUpID0+e1xyXG5cclxuICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHRyaWdnZXIgdGhlIGxheWVyIHVwZGF0ZXNcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9hcnJMYXllci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyTHlyTG9hZCh0aGlzLl9hcnJMYXllcltpXSwgaSwgZS50eXBlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gdHJpZ2dlciB0aGUgbWFwIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX21hcE1vdmVDYWxsYmFja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlck1vdmVDYWxsYmFjayhpLCBlLnR5cGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgX3VwZGF0ZU1hcEV4dGVudCgpIHtcclxuICAgICAgICBsZXQgdGhlVmlldyA9IHRoaXMubWFwLmdldFZpZXcoKTtcclxuICAgICAgICB0aGlzLl96b29tTGV2ZWwgPSB0aGVWaWV3LmdldFpvb20oKTtcclxuXHJcbiAgICAgICAgbGV0IGV4dGVudEFycmF5ID0gdGhlVmlldy5jYWxjdWxhdGVFeHRlbnQodGhpcy5tYXAuZ2V0U2l6ZSgpKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWFwRXh0ZW50ID0ge1xyXG4gICAgICAgICAgICBtaW5YOiBleHRlbnRBcnJheVswXSxcclxuICAgICAgICAgICAgbWluWTogZXh0ZW50QXJyYXlbMV0sXHJcbiAgICAgICAgICAgIG1heFg6IGV4dGVudEFycmF5WzJdLFxyXG4gICAgICAgICAgICBtYXhZOiBleHRlbnRBcnJheVszXVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiByZXR1cm4gdGhlIG1hcCBleHRlbnRcclxuICAgICAqL1xyXG4gICAgZ2V0IG1hcEV4dGVudCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX21hcEV4dGVudCkge1xyXG4gICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXBFeHRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUcmlnZ2VyIHRoZSBsYXllciBsb2FkXHJcbiAgICAgKiBAcGFyYW0gbHlyIHRoZSBsYXllciBiZWluZyBhY3RlZCBvblxyXG4gICAgICogQHBhcmFtIGluZGV4IGluZGV4IG9mIHRoZSBsYXllclxyXG4gICAgICogQHBhcmFtIGV2ZW50VHlwZSB0aGUgZXZlbnQgdHJpZ2dlcmluZyB0aGUgbG9hZCwgYXMgJ2NoYW5nZTpjZW50ZXInIG9yICdjaGFuZ2U6cmVzb2x1dGlvbidcclxuICAgICAqL1xyXG4gICAgdHJpZ2dlckx5ckxvYWQobHlyOiBMYXllckJhc2VWZWN0b3IsIGluZGV4PzogbnVtYmVyLCBldmVudFR5cGU/OiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgaWYgKGNoZWNrRGVmaW5lZC51bmRlZmluZWRPck51bGwobHlyKSAmJiBjaGVja0RlZmluZWQudW5kZWZpbmVkT3JOdWxsKGluZGV4KSkge1xyXG4gICAgICAgICAgICB0aHJvdyAnbmVlZCB0byBkZWZpbmUgbHlyIG9yIGluZGV4JztcclxuICAgICAgICB9IGVsc2UgaWYgKGNoZWNrRGVmaW5lZC5kZWZpbmVkQW5kTm90TnVsbChseXIpICYmIGNoZWNrRGVmaW5lZC51bmRlZmluZWRPck51bGwoaW5kZXgpKSB7XHJcbiAgICAgICAgICAgIGluZGV4ID0gdGhpcy5fYXJyTGF5ZXIuaW5kZXhPZihseXIpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY2hlY2tEZWZpbmVkLnVuZGVmaW5lZE9yTnVsbChseXIpICYmIGNoZWNrRGVmaW5lZC5kZWZpbmVkQW5kTm90TnVsbChpbmRleCkpIHtcclxuICAgICAgICAgICAgbHlyID0gdGhpcy5fYXJyTGF5ZXJbaW5kZXhdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gY2xlYXIgdGhlIHRpbWVvdXRcclxuICAgICAgICBpZiAodGhpcy5fYXJyTHlyVGltZW91dFtpbmRleF0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fYXJyTHlyVGltZW91dFtpbmRleF0pO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJUaW1lb3V0W2luZGV4XSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBhYm9ydCBpZiBuZWNlc3NhcnkgYW5kIGNsZWFyIHRoZSByZXF1ZXN0XHJcbiAgICAgICAgaWYgKHRoaXMuX2Fyckx5clJlcXVlc3RbaW5kZXhdICE9IG51bGwgJiYgdGhpcy5fYXJyTHlyUmVxdWVzdFtpbmRleF0gIT0gNCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0W2luZGV4XS5hYm9ydCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0W2luZGV4XSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBkdW1teSBjYWxsYmFjayB1c2VkIGlmIGJlZm9yZSBsb2FkIHJldHVybnMgZmFsc2VcclxuICAgICAgICBsZXQgY2FsbGJhY2tGdW5jID0gZnVuY3Rpb24gKCkge307XHJcblxyXG4gICAgICAgIGlmIChseXIubWFwTW92ZUJlZm9yZSh0aGlzLl96b29tTGV2ZWwsIGV2ZW50VHlwZSkpIHtcclxuICAgICAgICAgICAgbHlyLm1hcE1vdmVNYWtlR2V0UGFyYW1zKHRoaXMuX21hcEV4dGVudCwgdGhpcy5fem9vbUxldmVsKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBfX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICAgICAgY2FsbGJhY2tGdW5jID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gaW5uZXJGdW5jdGlvbih0aGVMYXllciwgdGhlSW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgX2lubmVyVGhpcyA9IHRoaXM7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXJyTHlyUmVxdWVzdFt0aGVJbmRleF0gPSAkLmdldChcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlTGF5ZXIudXJsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5tYXBNb3ZlUGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBAdHlwZSB7TGF5ZXJCYXNlVmVjdG9yfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5tYXBNb3ZlQ2FsbGJhY2soZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5sb2FkQ2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgJ2pzb24nKS5mYWlsKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoanFYSFIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqcVhIUi5zdGF0dXNUZXh0ICE9ICdhYm9ydCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZmFpbGVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhlTGF5ZXIudXJsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGVMYXllci5tYXBNb3ZlUGFyYW1zKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSkuYWx3YXlzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5uZXJUaGlzLl9hcnJMeXJUaW1lb3V0W3RoZUluZGV4XSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5uZXJUaGlzLl9hcnJMeXJSZXF1ZXN0W3RoZUluZGV4XSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaW5uZXJGdW5jdGlvbi5jYWxsKF9fdGhpcywgbHlyLCBpbmRleCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbHlyLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2Fyckx5clRpbWVvdXRbaW5kZXhdID0gc2V0VGltZW91dChjYWxsYmFja0Z1bmMsIGx5ci5vbkRlbWFuZERlbGF5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyaWdnZXIgdGhlIG1hcCBtb3ZlIGNhbGwgYmFjayBhdCB0aGUgZ2l2ZW4gaW5kZXhcclxuICAgICAqIEBwYXJhbSBpbmQgLSB0aGUgaW5kZXggb2YgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gZXZlbnRUeXBlPXVuZGVmaW5lZCB0aGUgZXZlbnQgdHJpZ2dlcmluZyB0aGUgbG9hZCBhcyAnY2hhbmdlOmNlbnRlcicgb3IgJ2NoYW5nZTpyZXNvbHV0aW9uJ1xyXG4gICAgICogQHBhcmFtIGZ1bmN0aW9uSWQ9dW5kZWZpbmVkIHRoZSBmdW5jdGlvbiBpZCB1c2VkIHRvIHJlZmVyZW5jZSB0aGUgYWRkZWQgY2FsbGJhY2sgZnVuY3Rpb25cclxuICAgICAqL1xyXG4gICAgdHJpZ2dlck1vdmVDYWxsYmFjayhpbmQ6IG51bWJlciwgZXZlbnRUeXBlPzogc3RyaW5nLCBmdW5jdGlvbklkPzogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgaW5kID09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBmdW5jdGlvbklkID09ICd1bmRlZmluZWQnKXtcclxuICAgICAgICAgICAgdGhyb3cgJ2VpdGhlciB0aGUgZnVuY3Rpb24gaW5kZXggb3IgdGhlIGlkIG11c3QgYmUgZGVmaW5lZCc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIGluZCAhPT0gJ251bWJlcicpe1xyXG4gICAgICAgICAgICBpbmQgPSB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzLmluZGV4T2YodGhpcy5fbWFwTW92ZUNhbGxiYWNrc0xvb2t1cFtmdW5jdGlvbklkXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaW5kIDwgMCl7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdmdW5jdGlvbiBub3QgZm91bmQnKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGNsZWFyIHRoZSB0aW1lb3V0XHJcbiAgICAgICAgaWYgKHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXRbaW5kXSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0W2luZF0pO1xyXG4gICAgICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0W2luZF0gPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGN0eCA9IHRoaXMuX21hcE1vdmVDYWxsYmFja0NvbnRleHRbaW5kXTtcclxuICAgICAgICBsZXQgdGhlRnVuYyA9IHRoaXMuX21hcE1vdmVDYWxsYmFja3NbaW5kXTtcclxuXHJcbiAgICAgICAgbGV0IF9fdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIGxldCBmID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAoY3R4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGVGdW5jLmNhbGwoY3R4LCBfX3RoaXMuX21hcEV4dGVudCwgX190aGlzLl96b29tTGV2ZWwsIGV2ZW50VHlwZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGVGdW5jKF9fdGhpcy5fbWFwRXh0ZW50LCBfX3RoaXMuX3pvb21MZXZlbCwgZXZlbnRUeXBlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXRbaW5kXSA9IHNldFRpbWVvdXQoZiwgdGhpcy5fbWFwTW92ZUNhbGxiYWNrRGVsYXlzW2luZF0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIGEgbGF5ZXIgdG8gdGhlIGludGVyYWN0aW9uXHJcbiAgICAgKiBAcGFyYW0gIGx5ciAtIGxheWVyIHRvIGFkZFxyXG4gICAgICogQHBhcmFtIHRyaWdnZXJPbkFkZCAtIGlmIHRoZSBsYXllciBzaG91bGQgYmUgbG9hZGVkIG9uIGFkZFxyXG4gICAgICovXHJcbiAgICBhZGRWZWN0b3JMYXllcihseXI6IExheWVyQmFzZVZlY3RvciwgdHJpZ2dlck9uQWRkOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgICAgIGlmICh0aGlzLl9hcnJMYXllci5pbmRleE9mKGx5cikgPiAtMSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnYWxyZWFkeSBhZGRlZCAnICsgbHlyLm5hbWUgKyAnIHRvIG1hcCBtb3ZlJyk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2NoZWNrSW5pdCgpO1xyXG5cclxuICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0LnB1c2gobnVsbCk7XHJcbiAgICAgICAgdGhpcy5fYXJyTHlyVGltZW91dC5wdXNoKG51bGwpO1xyXG4gICAgICAgIHRoaXMuX2FyckxheWVyLnB1c2gobHlyKTtcclxuICAgICAgICB0aGlzLl9sb29rdXBMYXllcltseXIuaWRdID0gbHlyO1xyXG5cclxuICAgICAgICB0cmlnZ2VyT25BZGQgPSB0eXBlb2YgdHJpZ2dlck9uQWRkID09ICdib29sZWFuJyA/IHRyaWdnZXJPbkFkZCA6IHRydWU7XHJcblxyXG4gICAgICAgIGlmICh0cmlnZ2VyT25BZGQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX21hcEV4dGVudCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJMeXJMb2FkKGx5ciwgdGhpcy5fYXJyTGF5ZXIubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIGFkZCBhIGNhbGxiYWNrIHRvIHRoZSBtYXAgbW92ZSBldmVudFxyXG4gICAgICogQHBhcmFtIGZ1bmMgLSBjYWxsYmFjayBmdW5jdGlvblxyXG4gICAgICogQHBhcmFtIGNvbnRleHQgLSB0aGUgY29udGV4dCB0byB1c2UgZm9yIHRoaXMgZnVuY3Rpb25cclxuICAgICAqIEBwYXJhbSBkZWxheT01MCB0aGUgZGVsYXkgYmVmb3JlIGNhbGwgbG9hZFxyXG4gICAgICogQHBhcmFtIHRyaWdnZXJPbkFkZCBpZiB0aGUgbGF5ZXIgc2hvdWxkIGJlIGxvYWRlZCBvbiBhZGQgdG8gbWFwTW92ZVxyXG4gICAgICogQHBhcmFtIGZ1bmN0aW9uSWQgb3B0aW9uYWwgaWQgdG8gcmVmZXJlbmNlIHRoZSBmdW5jdGlvbiBsYXRlciBmb3Igb3V0c2lkZSB0cmlnZ2VyaW5nXHJcbiAgICAgKi9cclxuICAgIGFkZENhbGxiYWNrKGZ1bmM6IG1hcE1vdmVDYWxsYmFja0Z1bmN0aW9uLCBjb250ZXh0PzogYW55LCBkZWxheT86IG51bWJlciwgdHJpZ2dlck9uQWRkPyA6IGJvb2xlYW4sIGZ1bmN0aW9uSWQ/OiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX21hcE1vdmVDYWxsYmFja3MuaW5kZXhPZihmdW5jKSA+IC0xKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCd0aGlzIGZ1bmN0aW9uIGFscmVhZHkgYWRkZWQgdG8gbWFwIG1vdmUnKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICBpZiAoIWZ1bmN0aW9uSWQpe1xyXG4gICAgICAgICAgICBmdW5jdGlvbklkID0gbWFrZUd1aWQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja3MucHVzaChmdW5jKTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzTG9va3VwW2Z1bmN0aW9uSWRdID0gZnVuY3Rpb25JZDtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tEZWxheXMucHVzaCh0eXBlb2YgZGVsYXkgPT0gJ251bWJlcicgPyBkZWxheSA6IDUwKTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tDb250ZXh0LnB1c2goY2hlY2tEZWZpbmVkLmRlZmluZWRBbmROb3ROdWxsKGNvbnRleHQpID8gY29udGV4dCA6IG51bGwpO1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXQucHVzaChudWxsKTtcclxuXHJcbiAgICAgICAgdHJpZ2dlck9uQWRkID0gdHlwZW9mIHRyaWdnZXJPbkFkZCA9PSAnYm9vbGVhbicgPyB0cmlnZ2VyT25BZGQgOiB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodHJpZ2dlck9uQWRkKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9tYXBFeHRlbnQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTWFwRXh0ZW50KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy50cmlnZ2VyTW92ZUNhbGxiYWNrKHRoaXMuX21hcE1vdmVDYWxsYmFja3MubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5ubS5NYXBNb3ZlQ2xzID0gTWFwTW92ZUNscztcclxuZXhwb3J0IGRlZmF1bHQgTWFwTW92ZUNscztcclxuIl19 /***/ }), /* 12 */ @@ -1425,7 +1425,7 @@ var MapPopupCls = (function (_super) { exports.MapPopupCls = MapPopupCls; nm.MapPopupCls = MapPopupCls; exports.default = MapPopupCls; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwUG9wdXBDbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBQb3B1cENscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7Ozs7Ozs7Ozs7OztBQUVILDJEQUFzRDtBQUV0RCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBR2pDLDBCQUE2QjtBQUU3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBMEJoQztJQVNJOzs7Ozs7O09BT0c7SUFDSCxnQ0FBWSxPQUFtQixFQUFFLEtBQXlDLEVBQUUsVUFBa0IsRUFBRSxjQUErQixFQUFFLGFBQXNCO1FBQ25KLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxhQUFhLElBQUksUUFBUSxHQUFHLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDdEYsQ0FBQztJQUVELHNCQUFJLDZDQUFTO2FBQWI7WUFDSSxFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDOUIsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUMzQixDQUFDO1FBQ0wsQ0FBQzs7O09BQUE7SUFDTCw2QkFBQztBQUFELENBQUMsQUFqQ0QsSUFpQ0M7QUFqQ1ksd0RBQXNCO0FBbUNuQzs7O0dBR0c7QUFDSDtJQUFpQywrQkFBa0I7SUFxQi9DOzs7OztPQUtHO0lBR0g7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QWtCLEdBeWNsRDtBQXpjWSxrQ0FBVztBQTBjeEIsRUFBRSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDN0Isa0JBQWUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMy8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBNYXBJbnRlcmFjdGlvbkJhc2UgZnJvbSAnLi9tYXBJbnRlcmFjdGlvbkJhc2UnO1xyXG5pbXBvcnQgcHJvcGVydGllc1pvb21TdHlsZSBmcm9tICcuLi9vbEhlbHBlcnMvcHJvcGVydGllc1pvb21TdHlsZSc7XHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQge0xheWVyQmFzZVZlY3Rvcn0gZnJvbSBcIi4uL2xheWVycy9MYXllckJhc2VWZWN0b3JcIjtcclxuaW1wb3J0IExheWVyRXNyaU1hcFNlcnZlciBmcm9tIFwiLi4vbGF5ZXJzL0xheWVyRXNyaU1hcFNlcnZlclwiO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5cclxuY29uc3Qgbm0gPSBwcm92aWRlKCdvbEhlbHBlcnMnKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgcG9wdXBDaGFuZ2VkRnVuY3Rpb24ge1xyXG4gICAgKCRwb3BDb250ZW50OiBKUXVlcnkpOiBhbnk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBwb3B1cENhbGxiYWNrIHtcclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRoZSBwb3B1cFxyXG4gICAgICogQHBhcmFtIGZlYXR1cmVQcm9wZXJ0aWVzXHJcbiAgICAgKiBAcGFyYW0ganFSZWZcclxuICAgICAqL1xyXG4gICAgKGZlYXR1cmVQcm9wZXJ0aWVzOiBPYmplY3QsIGpxUmVmPzogSlF1ZXJ5KTogc3RyaW5nIHwgYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIG1hcEV2ZW50IHtcclxuICAgIGNvb3JkaW5hdGU6IG9sLkNvb3JkaW5hdGU7XHJcbiAgICBwaXhlbDogb2wuUGl4ZWw7XHJcbiAgICBkcmFnZ2luZzogYm9vbGVhbnxhbnk7XHJcbiAgICBvcmlnaW5hbEV2ZW50OiBFdmVudDtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlTGF5ZXJQcm9wZXJ0aWVzIHtcclxuXHJcbiAgICBmZWF0dXJlOiBvbC5GZWF0dXJlO1xyXG4gICAgbGF5ZXI6IExheWVyQmFzZVZlY3RvcnxMYXllckVzcmlNYXBTZXJ2ZXI7XHJcbiAgICBsYXllckluZGV4OiBudW1iZXI7XHJcbiAgICBzZWxlY3Rpb25MYXllcjogb2wubGF5ZXIuVmVjdG9yO1xyXG4gICAgcG9wdXBDb250ZW50OiBzdHJpbmc7XHJcbiAgICBlc3JpTGF5ZXJOYW1lOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGZlYXR1cmUgdGhlIGZlYXR1cmVcclxuICAgICAqIEBwYXJhbSBsYXllciAtIHRoZSBsYXllciBpbiB0aGUgcG9wdXBcclxuICAgICAqIEBwYXJhbSBsYXllckluZGV4IC0gaW5kZXggb2YgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gc2VsZWN0aW9uTGF5ZXIgLSB0aGUgb2wgc2VsZWN0aW9uIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gW2VzcmlMYXllck5hbWU9dW5kZWZpbmVkXSAtIGVzcmkgbGF5ZXIgbmFtZVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihmZWF0dXJlOiBvbC5GZWF0dXJlLCBsYXllcjogTGF5ZXJCYXNlVmVjdG9yfExheWVyRXNyaU1hcFNlcnZlciwgbGF5ZXJJbmRleDogbnVtYmVyLCBzZWxlY3Rpb25MYXllcjogb2wubGF5ZXIuVmVjdG9yLCBlc3JpTGF5ZXJOYW1lPzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5mZWF0dXJlID0gZmVhdHVyZTtcclxuICAgICAgICB0aGlzLmxheWVyID0gbGF5ZXI7XHJcbiAgICAgICAgdGhpcy5sYXllckluZGV4ID0gbGF5ZXJJbmRleDtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbkxheWVyID0gc2VsZWN0aW9uTGF5ZXI7XHJcbiAgICAgICAgdGhpcy5wb3B1cENvbnRlbnQgPSAnJztcclxuICAgICAgICB0aGlzLmVzcmlMYXllck5hbWUgPSB0eXBlb2YgZXNyaUxheWVyTmFtZSA9PSAnc3RyaW5nJyA/IGVzcmlMYXllck5hbWUgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGxheWVyTmFtZSgpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXNyaUxheWVyTmFtZSA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lc3JpTGF5ZXJOYW1lO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxheWVyLm5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogbWFwIHBvcHVwIGNsYXNzXHJcbiAqIEBhdWdtZW50cyBNYXBJbnRlcmFjdGlvbkJhc2VcclxuICovXHJcbmV4cG9ydCBjbGFzcyBNYXBQb3B1cENscyBleHRlbmRzIE1hcEludGVyYWN0aW9uQmFzZSB7XHJcbiAgICBwcml2YXRlIF9wb3B1cE9wZW46IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIF9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5OiBBcnJheTxGZWF0dXJlTGF5ZXJQcm9wZXJ0aWVzPjtcclxuICAgIHByaXZhdGUgX2N1cnJlbnRQb3B1cEluZGV4OiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9wb3B1cENvbnRlbnRMZW5ndGg6IG51bWJlcjtcclxuICAgIHByaXZhdGUgX2VzcmlNYXBTZXJ2aWNlTGF5ZXJzOiBBcnJheTxMYXllckVzcmlNYXBTZXJ2ZXI+O1xyXG4gICAgcHJpdmF0ZSBfJHBvcHVwQ2xvc2VyOiBKUXVlcnk7XHJcbiAgICBwcml2YXRlIF8kcG9wdXBDb250ZW50OiBKUXVlcnk7XHJcbiAgICBwcml2YXRlIF8kcG9wdXBDb250YWluZXI6IEpRdWVyeTtcclxuICAgIHByaXZhdGUgX3BvcHVwT3ZlcmxheTogb2wuT3ZlcmxheTtcclxuICAgIHByaXZhdGUgX2FyclBvcHVwTGF5ZXJzOiBBcnJheTxMYXllckJhc2VWZWN0b3I+O1xyXG4gICAgcHJpdmF0ZSBfcG9wdXBDb29yZGluYXRlOiBvbC5Db29yZGluYXRlO1xyXG4gICAgcHJpdmF0ZSBfcG9wdXBDaGFuZ2VkRnVuY3Rpb25zOiBBcnJheTxwb3B1cENoYW5nZWRGdW5jdGlvbj47XHJcbiAgICBwcml2YXRlIF9tYXBDbGlja0Z1bmN0aW9uczogQXJyYXk8RnVuY3Rpb24+O1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uTGF5ZXJMb29rdXA6IE9iamVjdDtcclxuICAgIHByaXZhdGUgX2FyclBvcHVwTGF5ZXJJZHM6IEFycmF5PHN0cmluZz47XHJcbiAgICBwcml2YXRlIF9hcnJQb3B1cExheWVyTmFtZXM6IEFycmF5PHN0cmluZz47XHJcbiAgICBwcml2YXRlIF9hcnJQb3B1cE9sTGF5ZXJzOiBBcnJheTxvbC5sYXllci5WZWN0b3I+O1xyXG4gICAgcHJpdmF0ZSBfYXJyUG9wdXBDb250ZW50RnVuY3Rpb246IEFycmF5PHBvcHVwQ2FsbGJhY2s+O1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uTGF5ZXJzOiBBcnJheTxvbC5sYXllci5WZWN0b3I+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5pdGlvbiBmb3Igb3BlbmxheWVycyBzdHlsZSBmdW5jdGlvblxyXG4gICAgICogQGNhbGxiYWNrIG9sU3R5bGVGdW5jdGlvblxyXG4gICAgICogJnBhcmFtIGZlYXR1cmUgdGhlIG9wZW5sYXllcnMgdmVjdG9yIGZlYXR1cmVcclxuICAgICAqICRwYXJhbVxyXG4gICAgICovXHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIHBvcHVwIGNvbnN0cnVjdG9yXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCdtYXAgcG9wdXAnKTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cExheWVySWRzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcnMgPSBbXTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb24gPSBbXTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250YWluZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ29udGVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDbG9zZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVycyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVyTG9va3VwID0ge307XHJcbiAgICAgICAgdGhpcy5fbWFwQ2xpY2tGdW5jdGlvbnMgPSBbXTtcclxuXHJcbiAgICAgICAgLy9sZXQgYSA9IGZ1bmN0aW9uKCRqcXVlcnlDb250ZW50KXtjb25zb2xlLmxvZygkanF1ZXJ5Q29udGVudCl9O1xyXG4gICAgICAgIC8vdGhpcy5fcG9wdXBDaGFuZ2VkTG9va3VwID0geydhJzogYX07XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDaGFuZ2VkRnVuY3Rpb25zID0gW107XHJcbiAgICAgICAgdGhpcy5fZXNyaU1hcFNlcnZpY2VMYXllcnMgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5fcG9wdXBPcGVuID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDb29yZGluYXRlID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5fcGFzc1Rocm91Z2hMYXllckZlYXR1cmVBcnJheSA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IC0xO1xyXG4gICAgICAgIHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCA9IDA7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIHBvcHVwIGluaXRpYWxpemF0aW9uXHJcbiAgICAgKiBAcGFyYW0ge29sLk1hcH0gdGhlTWFwIC0gdGhlIG9sIG1hcFxyXG4gICAgICovXHJcbiAgICBpbml0KHRoZU1hcDogb2wuTWFwKSB7XHJcbiAgICAgICAgc3VwZXIuaW5pdCh0aGVNYXApO1xyXG5cclxuICAgICAgICBsZXQgJG1hcDtcclxuICAgICAgICBsZXQgdGFyZ2V0ID0gdGhpcy5tYXAuZ2V0VGFyZ2V0KCk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgICRtYXAgPSAkKCcjJyArIHRhcmdldCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAkbWFwID0gJCh0YXJnZXQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJG1hcC5hcHBlbmQoXHJcbiAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwib2wtcG9wdXBcIj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwib2wtcG9wdXAtY2xvc2VyXCI+WDwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+PC9kaXY+JyArXHJcbiAgICAgICAgICAgICc8L2Rpdj4nXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ29udGFpbmVyID0gJG1hcC5maW5kKCcub2wtcG9wdXAnKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250ZW50ID0gJG1hcC5maW5kKCcucG9wdXAtY29udGVudCcpO1xyXG4gICAgICAgIHRoaXMuXyRwb3B1cENsb3NlciA9ICRtYXAuZmluZCgnLm9sLXBvcHVwLWNsb3NlcicpO1xyXG5cclxuICAgICAgICBsZXQgX2Vhc2UgPSAobjogbnVtYmVyKTogbnVtYmVyID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG9sLmVhc2luZy5pbkFuZE91dChuKTtcclxuICAgICAgICB9O1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5ID0gbmV3IG9sLk92ZXJsYXkoe1xyXG4gICAgICAgICAgICBlbGVtZW50OiB0aGlzLl8kcG9wdXBDb250YWluZXJbMF0sXHJcbiAgICAgICAgICAgIGF1dG9QYW46IHRydWUsXHJcbiAgICAgICAgICAgIGF1dG9QYW5BbmltYXRpb246IHtcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyNTAsXHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IHRoZU1hcC5nZXRWaWV3KCkuZ2V0Q2VudGVyKCksXHJcbiAgICAgICAgICAgICAgICBlYXNpbmc6IF9lYXNlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWFwLmFkZE92ZXJsYXkodGhpcy5fcG9wdXBPdmVybGF5KTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ2xvc2VyLmNsaWNrKChldnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIGRpc3BsYXkgcG9wdXAgb24gY2xpY2tcclxuICAgICAgICB0aGlzLl9tYXAub24oJ3NpbmdsZWNsaWNrJywgKGV2dCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwQ29vcmRpbmF0ZSA9IGV2dFsnY29vcmRpbmF0ZSddO1xyXG5cclxuICAgICAgICAgICAgLy8gZXNyaSBtYXAgc2VydmljZSBsYXllcnNcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2VzcmlNYXBTZXJ2aWNlTGF5ZXJzLmxlbmd0aCA+IDApIHtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgcXVlcnlQYXJhbXMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZ2VvbWV0cnk6IGV2dFsnY29vcmRpbmF0ZSddLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgICAgICBnZW9tZXRyeVR5cGU6ICdlc3JpR2VvbWV0cnlQb2ludCcsXHJcbiAgICAgICAgICAgICAgICAgICAgbGF5ZXJzOiAnYWxsJyxcclxuICAgICAgICAgICAgICAgICAgICBzcjogdGhpcy5fbWFwLmdldFZpZXcoKS5nZXRQcm9qZWN0aW9uKCkuZ2V0Q29kZSgpLnNwbGl0KCc6JylbMV0sXHJcbiAgICAgICAgICAgICAgICAgICAgbWFwRXh0ZW50OiAodGhpcy5fbWFwLmdldFZpZXcoKS5jYWxjdWxhdGVFeHRlbnQodGhpcy5fbWFwLmdldFNpemUoKSkgYXMgbnVtYmVyW10pLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZURpc3BsYXk6ICh0aGlzLl9tYXAuZ2V0U2l6ZSgpIGFzIG51bWJlcltdKS5qb2luKCcsJykgKyAnLDk2JyxcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm5HZW9tZXRyeTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICB0b2xlcmFuY2U6IDE1LFxyXG4gICAgICAgICAgICAgICAgICAgIGY6ICdwanNvbidcclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgbCBvZiB0aGlzLl9lc3JpTWFwU2VydmljZUxheWVycykge1xyXG4gICAgICAgICAgICAgICAgICAgIGwuZ2V0UG9wdXBJbmZvKHF1ZXJ5UGFyYW1zKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IGxheWVyRmVhdHVyZU9iamVjdEFycmF5ID0gdGhpcy5fZmVhdHVyZXNBdFBpeGVsKGV2dFsncGl4ZWwnXSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID0gLTE7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxheWVyRmVhdHVyZU9iamVjdEFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZmVhdE9iaiA9IGxheWVyRmVhdHVyZU9iamVjdEFycmF5W2ldO1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCBwcm9wcyA9IGZlYXRPYmouZmVhdHVyZS5nZXRQcm9wZXJ0aWVzKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHBvcHVwQ29udGVudFJlc3BvbnNlID0gdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb25bZmVhdE9iai5sYXllckluZGV4XShwcm9wcywgdGhpcy5fJHBvcHVwQ29udGVudCk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy9za2lwIGlmIHJldHVybiB3YXMgZmFsc2VcclxuICAgICAgICAgICAgICAgIGlmIChwb3B1cENvbnRlbnRSZXNwb25zZSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL2NvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcG9wdXBDb250ZW50UmVzcG9uc2UgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICBmZWF0T2JqLnBvcHVwQ29udGVudCA9IHBvcHVwQ29udGVudFJlc3BvbnNlIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5LnB1c2goZmVhdE9iaik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGZlYXRPYmouc2VsZWN0aW9uTGF5ZXIuZ2V0U291cmNlKCkuYWRkRmVhdHVyZShmZWF0T2JqLmZlYXR1cmUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cENvbnRlbnRMZW5ndGggPSB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID0gLTE7XHJcblxyXG4gICAgICAgICAgICBsZXQgcG9wdXBIdG1sID0gJzxkaXYgY2xhc3M9XCJvbC1wb3B1cC1uYXZcIj4nO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzxzcGFuIGNsYXNzPVwicHJldmlvdXMtcG9wdXAgb2wtcG9wdXAtbmF2LWFycm93XCI+JiM5NjY0Ozwvc3Bhbj4nO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzxzcGFuIGNsYXNzPVwibmV4dC1wb3B1cCBvbC1wb3B1cC1uYXYtYXJyb3dcIj4mIzk2NTQ7PC9zcGFuPic7XHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSBgPHNwYW4gY2xhc3M9XCJjdXJyZW50LXBvcHVwLWl0ZW0tbnVtYmVyXCIgc3R5bGU9XCJmb250LXdlaWdodDogYm9sZDtcIj48L3NwYW4+YDtcclxuICAgICAgICAgICAgcG9wdXBIdG1sICs9IGA8c3Bhbj4mbmJzcDtvZiZuYnNwOzwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gYDxzcGFuIGNsYXNzPVwicG9wdXAtY29udGVudC1sZW5ndGhcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkO1wiPiR7dGhpcy5fcG9wdXBDb250ZW50TGVuZ3RofTwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gYDxzcGFuPiZuYnNwOyZuYnNwOy0mbmJzcDsmbmJzcDs8L3NwYW4+YDtcclxuICAgICAgICAgICAgcG9wdXBIdG1sICs9IGA8c3BhbiBjbGFzcz1cImN1cnJlbnQtcG9wdXAtbGF5ZXItbmFtZVwiPjwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzwvZGl2Pic7XHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSAnPGRpdiBjbGFzcz1cIm9sLXBvcHVwLWlubmVyXCI+JztcclxuXHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSAnPC9kaXY+JztcclxuXHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuaHRtbChwb3B1cEh0bWwpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fJHBvcHVwQ29udGVudC5maW5kKCcucHJldmlvdXMtcG9wdXAnKS5jbGljaygoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4LS07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyRmVhdFNlbGVjdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGxldCBuZXh0UG9wdXAgPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5uZXh0LXBvcHVwJyk7XHJcblxyXG4gICAgICAgICAgICBuZXh0UG9wdXAuY2xpY2soKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCA9PSAxICYmIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID09IHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IDA7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyRmVhdFNlbGVjdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgbmV4dFBvcHVwLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9wb3B1cE92ZXJsYXkuc2V0UG9zaXRpb24odGhpcy5fcG9wdXBDb29yZGluYXRlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuc2Nyb2xsVG9wKDApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcG9wdXBPcGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvL2NoYW5nZSBtb3VzZSBjdXJzb3Igd2hlbiBvdmVyIG1hcmtlclxyXG4gICAgICAgIHRoaXMuX21hcC5vbigncG9pbnRlcm1vdmUnLCAoZXZ0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChldnRbJ2RyYWdnaW5nJ10pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgcGl4ZWwgPSB0aGlzLm1hcC5nZXRFdmVudFBpeGVsKGV2dFsnb3JpZ2luYWxFdmVudCddKTtcclxuICAgICAgICAgICAgbGV0IGhpdCA9IHRoaXMubWFwLmhhc0ZlYXR1cmVBdFBpeGVsKHBpeGVsLCAobHlyQ2FuZGlkYXRlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBvbExheWVyIG9mIHRoaXMuX2FyclBvcHVwT2xMYXllcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobHlyQ2FuZGlkYXRlID09IG9sTGF5ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGxldCBtYXBFbGVtZW50ID0gdGhpcy5tYXAuZ2V0VGFyZ2V0RWxlbWVudCgpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICBtYXBFbGVtZW50LnN0eWxlLmN1cnNvciA9IGhpdCA/ICdwb2ludGVyJyA6ICcnO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGhlbHBlciB0byBzZWxlY3QgZmVhdHVyZXNcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIF90cmlnZ2VyRmVhdFNlbGVjdCgpIHtcclxuICAgICAgICBsZXQgJGN1cnJlbnRQb3B1cEl0ZW1OdW1iZXIgPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5jdXJyZW50LXBvcHVwLWl0ZW0tbnVtYmVyJyk7XHJcbiAgICAgICAgbGV0ICRpbm5lclBvcHVwID0gdGhpcy5fJHBvcHVwQ29udGVudC5maW5kKCcub2wtcG9wdXAtaW5uZXInKTtcclxuICAgICAgICBsZXQgJGxheWVyTmFtZVNwYW4gPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5jdXJyZW50LXBvcHVwLWxheWVyLW5hbWUnKTtcclxuICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICAgICAgbGV0IGx5ckZlYXRPYmogPSB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5W3RoaXMuX2N1cnJlbnRQb3B1cEluZGV4XTtcclxuICAgICAgICAkY3VycmVudFBvcHVwSXRlbU51bWJlci5odG1sKCh0aGlzLl9jdXJyZW50UG9wdXBJbmRleCArIDEpLnRvRml4ZWQoKSk7XHJcbiAgICAgICAgJGxheWVyTmFtZVNwYW4uaHRtbChseXJGZWF0T2JqLmxheWVyTmFtZSk7XHJcbiAgICAgICAgJGlubmVyUG9wdXAuaHRtbChseXJGZWF0T2JqLnBvcHVwQ29udGVudCk7XHJcbiAgICAgICAgbHlyRmVhdE9iai5zZWxlY3Rpb25MYXllci5nZXRTb3VyY2UoKS5hZGRGZWF0dXJlKGx5ckZlYXRPYmouZmVhdHVyZSk7XHJcbiAgICAgICAgZm9yIChsZXQgZiBvZiB0aGlzLl9wb3B1cENoYW5nZWRGdW5jdGlvbnMpIHtcclxuICAgICAgICAgICAgZih0aGlzLl8kcG9wdXBDb250ZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBmZWF0dXJlIC0gdGhlIG9sIGZlYXR1cmVcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJFc3JpTWFwU2VydmVyfSBseXIgLSB0aGUgbWFwIHNlcnZlciBsYXllclxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHBvcHVwQ29udGVudCAtIHBvcHVwIGNvbnRlbnRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBlc3JpTmFtZSAtIGVzcmkgbGF5ZXIgbmFtZVxyXG4gICAgICovXHJcbiAgICBhZGRNYXBTZXJ2aWNlUG9wdXBDb250ZW50KGZlYXR1cmU6IG9sLkZlYXR1cmUsIGx5cjogTGF5ZXJFc3JpTWFwU2VydmVyLCBwb3B1cENvbnRlbnQ6IHN0cmluZywgZXNyaU5hbWU6IHN0cmluZykge1xyXG5cclxuICAgICAgICBsZXQgZmVhdExheWVyT2JqZWN0ID0gbmV3IEZlYXR1cmVMYXllclByb3BlcnRpZXMoXHJcbiAgICAgICAgICAgIGZlYXR1cmUsIGx5ciwgdGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoLCB0aGlzLl9zZWxlY3Rpb25MYXllckxvb2t1cFtseXIuaWRdLCBlc3JpTmFtZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgZmVhdExheWVyT2JqZWN0LnBvcHVwQ29udGVudCA9IHBvcHVwQ29udGVudDtcclxuXHJcbiAgICAgICAgdGhpcy5fcGFzc1Rocm91Z2hMYXllckZlYXR1cmVBcnJheS5wdXNoKGZlYXRMYXllck9iamVjdCk7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoKys7XHJcblxyXG4gICAgICAgICQoJy5wb3B1cC1jb250ZW50LWxlbmd0aCcpLmh0bWwodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoLnRvRml4ZWQoKSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fcG9wdXBPcGVuKSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuZmluZCgnLm5leHQtcG9wdXAnKS50cmlnZ2VyKCdjbGljaycpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5LnNldFBvc2l0aW9uKHRoaXMuX3BvcHVwQ29vcmRpbmF0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuc2Nyb2xsVG9wKDApO1xyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cE9wZW4gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gIHBpeGVsIC0gdGhlIG9sIHBpeGVsXHJcbiAgICAgKiBAcmV0dXJucyAgZmVhdHVyZSBsYXllciBwcm9wZXJ0aWVzXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBfZmVhdHVyZXNBdFBpeGVsKHBpeGVsOiBvbC5QaXhlbCk6IEFycmF5PEZlYXR1cmVMYXllclByb3BlcnRpZXM+IHtcclxuICAgICAgICBsZXQgbGF5ZXJGZWF0dXJlT2JqZWN0QXJyYXkgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5tYXAuZm9yRWFjaEZlYXR1cmVBdFBpeGVsKHBpeGVsLCAoZmVhdHVyZTogb2wuRmVhdHVyZSwgbGF5ZXI6IG9sLmxheWVyLlZlY3RvcikgPT4ge1xyXG4gICAgICAgICAgICBsZXQgbHlySW5kZXggPSB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzLmluZGV4T2YobGF5ZXIpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGx5ckluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIGxheWVyRmVhdHVyZU9iamVjdEFycmF5LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAgbmV3IEZlYXR1cmVMYXllclByb3BlcnRpZXMoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZlYXR1cmUsIHRoaXMuX2FyclBvcHVwTGF5ZXJzW2x5ckluZGV4XSwgbHlySW5kZXgsIHRoaXMuX3NlbGVjdGlvbkxheWVyc1tseXJJbmRleF0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gbGF5ZXJGZWF0dXJlT2JqZWN0QXJyYXk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VQb3B1cCgpIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICB0aGlzLl9wb3B1cE9wZW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9wb3B1cE92ZXJsYXkuc2V0UG9zaXRpb24odW5kZWZpbmVkKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDbG9zZXJbMF0uYmx1cigpO1xyXG4gICAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24oKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250ZW50Lmh0bWwoJycpO1xyXG5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY2hnRnVuY3Rpb24gLSBwb3B1cCBjaGFuZ2UgZnVuY3Rpb25cclxuICAgICAqL1xyXG4gICAgYWRkUG9wdXBDaGFuZ2VkRnVuY3Rpb24oY2hnRnVuY3Rpb246IHBvcHVwQ2hhbmdlZEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDaGFuZ2VkRnVuY3Rpb25zLnB1c2goY2hnRnVuY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJCYXNlfCp9IGx5ciAtIHRoZSBsYXllciBiZWluZyBhY3RlZCBvblxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtzZWxlY3Rpb25TdHlsZT17fV0gdGhlIHNlbGVjdGlvbiBzdHlsZSBjb25maWd1cmF0aW9uXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3NlbGVjdGlvblN0eWxlLmNvbG9yPXJnYmEoMjU1LDE3MCwwLDAuNSldIHRoZSBzZWxlY3Rpb24gY29sb3JcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc2VsZWN0aW9uU3R5bGUud2lkdGg9MTBdIHRoZSBzZWxlY3Rpb24gd2lkdGggZm9yIGxpbmVhciBmZWF0dXJlc1xyXG4gICAgICogQHBhcmFtIHtvYmplY3R8ZnVuY3Rpb259IFtzZWxlY3Rpb25TdHlsZS5vbFN0eWxlPXVuZGVmaW5lZF0gYW4gb3BlbmxheWVycyBzdHlsZSBvYmplY3Qgb3IgZnVuY3Rpb25cclxuICAgICAqIEByZXR1cm5zICB0aGUgbmV3IHNlbGVjdGlvbiBsYXllclxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgX2FkZFBvcHVwTGF5ZXIobHlyOiBMYXllckJhc2VWZWN0b3IsIHNlbGVjdGlvblN0eWxlOiB7Y29sb3I/OiBzdHJpbmcsIHdpZHRoPzogbnVtYmVyLCBvbFN0eWxlPzogb2wuc3R5bGUuU3R5bGV9KTogb2wubGF5ZXIuVmVjdG9yIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuXHJcbiAgICAgICAgc2VsZWN0aW9uU3R5bGUgPSBzZWxlY3Rpb25TdHlsZSB8fCB7fTtcclxuICAgICAgICBzZWxlY3Rpb25TdHlsZS5jb2xvciA9IHNlbGVjdGlvblN0eWxlLmNvbG9yIHx8ICdyZ2JhKDI1NSwxNzAsMCwwLjUpJztcclxuICAgICAgICBzZWxlY3Rpb25TdHlsZS53aWR0aCA9IHNlbGVjdGlvblN0eWxlLndpZHRoIHx8IDEwO1xyXG5cclxuICAgICAgICBsZXQgdGhlU3R5bGU7XHJcblxyXG4gICAgICAgIGlmIChzZWxlY3Rpb25TdHlsZS5vbFN0eWxlKSB7XHJcbiAgICAgICAgICAgIHRoZVN0eWxlID0gc2VsZWN0aW9uU3R5bGUub2xTdHlsZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGVTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICBzdHJva2U6IG5ldyBvbC5zdHlsZS5TdHJva2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzZWxlY3Rpb25TdHlsZS5jb2xvcixcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogc2VsZWN0aW9uU3R5bGUud2lkdGhcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5DaXJjbGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHJhZGl1czogNyxcclxuICAgICAgICAgICAgICAgICAgICBmaWxsOiBuZXcgb2wuc3R5bGUuRmlsbCh7Y29sb3I6IHNlbGVjdGlvblN0eWxlLmNvbG9yfSksXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiBuZXcgb2wuc3R5bGUuU3Ryb2tlKHtjb2xvcjogc2VsZWN0aW9uU3R5bGUuY29sb3IsIHdpZHRoOiAxfSlcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgZmlsbDogbmV3IG9sLnN0eWxlLkZpbGwoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzZWxlY3Rpb25TdHlsZS5jb2xvclxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgc2VsZWN0aW9uTGF5ZXIgPSBuZXcgb2wubGF5ZXIuVmVjdG9yKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IG5ldyBvbC5zb3VyY2UuVmVjdG9yKCksXHJcbiAgICAgICAgICAgICAgICBzdHlsZTogdGhlU3R5bGVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHNlbGVjdGlvbkxheWVyLnNldFpJbmRleCgxMDApO1xyXG5cclxuICAgICAgICB0aGlzLl9zZWxlY3Rpb25MYXllcnMucHVzaChzZWxlY3Rpb25MYXllcik7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uTGF5ZXJMb29rdXBbbHlyLmlkXSA9IHNlbGVjdGlvbkxheWVyO1xyXG4gICAgICAgIHRoaXMubWFwLmFkZExheWVyKHNlbGVjdGlvbkxheWVyKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHNlbGVjdGlvbkxheWVyO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBwb3B1cCB0byB0aGUgbWFwXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyQmFzZXwqfSBseXIgVGhlIGxheWVyIHRoYXQgdGhlIHBvcHVwIHdpdGggYWN0IG9uXHJcbiAgICAgKiBAcGFyYW0ge3BvcHVwQ2FsbGJhY2t9IHBvcHVwQ29udGVudEZ1bmN0aW9uIC0gcG9wdXAgY29udGVudCBmdW5jdGlvbiB0aGF0IG1ha2VzIHBvcHVwIGluZm9cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbc2VsZWN0aW9uU3R5bGU9e31dIHRoZSBzZWxlY3Rpb24gc3R5bGUgY29uZmlndXJhdGlvblxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzZWxlY3Rpb25TdHlsZS5jb2xvcj1yZ2JhKDI1NSwxNzAsMCwwLjUpXSB0aGUgc2VsZWN0aW9uIGNvbG9yXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3NlbGVjdGlvblN0eWxlLndpZHRoPTEwXSB0aGUgc2VsZWN0aW9uIHdpZHRoIGZvciBsaW5lYXIgZmVhdHVyZXNcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fGZ1bmN0aW9ufSBbc2VsZWN0aW9uU3R5bGUub2xTdHlsZT11bmRlZmluZWRdIGFuIG9wZW5sYXllcnMgc3R5bGUgb2JqZWN0IG9yIGZ1bmN0aW9uXHJcbiAgICAgKiBAcmV0dXJucyB7b2JqZWN0fSBhIHJlZmVyZW5jZSB0byB0aGUgb2wgc2VsZWN0aW9uIGxheWVyXHJcbiAgICAgKi9cclxuICAgIGFkZFZlY3RvclBvcHVwKGx5cjogTGF5ZXJCYXNlVmVjdG9yLCBwb3B1cENvbnRlbnRGdW5jdGlvbjogcG9wdXBDYWxsYmFjayxcclxuICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblN0eWxlPzoge2NvbG9yPzogc3RyaW5nLCB3aWR0aD86IG51bWJlciwgb2xTdHlsZT86IG9sLnN0eWxlLlN0eWxlfSkge1xyXG4gICAgICAgIGxldCBzZWxlY3Rpb25MYXllciA9IHRoaXMuX2FkZFBvcHVwTGF5ZXIobHlyLCBzZWxlY3Rpb25TdHlsZSk7XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcklkcy5wdXNoKGx5ci5pZCk7XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzLnB1c2gobHlyLm5hbWUpO1xyXG4gICAgICAgIHRoaXMuX2FyclBvcHVwTGF5ZXJzLnB1c2gobHlyKTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzLnB1c2gobHlyLm9sTGF5ZXIpO1xyXG4gICAgICAgIHRoaXMuX2FyclBvcHVwQ29udGVudEZ1bmN0aW9uLnB1c2gocG9wdXBDb250ZW50RnVuY3Rpb24pO1xyXG5cclxuICAgICAgICByZXR1cm4gc2VsZWN0aW9uTGF5ZXI7XHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyQmFzZX0gbHlyIC0gbGF5ZXJcclxuICAgICAqL1xyXG4gICAgcmVtb3ZlVmVjdG9yUG9wdXAobHlyKSB7XHJcbiAgICAgICAgbGV0IGlkeCA9IHRoaXMuX2FyclBvcHVwTGF5ZXJJZHMuaW5kZXhPZihseXIuaWQpO1xyXG5cclxuICAgICAgICBpZiAoaWR4ID4gLTEpIHtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcklkcy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzLnNwbGljZShpZHgsIDEpO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJQb3B1cExheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBPbExheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb24uc3BsaWNlKGlkeCwgMSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NlbGVjdGlvbkxheWVyTG9va3VwW2x5ci5pZF07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJFc3JpTWFwU2VydmVyfSBseXIgLSBtYXAgc2VydmVyIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW3NlbGVjdGlvblN0eWxlPXt9XSB0aGUgc2VsZWN0aW9uIHN0eWxlIGNvbmZpZ3VyYXRpb25cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc2VsZWN0aW9uU3R5bGUuY29sb3I9cmdiYSgyNTUsMTcwLDAsMC41KV0gdGhlIHNlbGVjdGlvbiBjb2xvclxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzZWxlY3Rpb25TdHlsZS53aWR0aD0xMF0gdGhlIHNlbGVjdGlvbiB3aWR0aCBmb3IgbGluZWFyIGZlYXR1cmVzXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdHxmdW5jdGlvbn0gW3NlbGVjdGlvblN0eWxlLm9sU3R5bGU9dW5kZWZpbmVkXSBhbiBvcGVubGF5ZXJzIHN0eWxlIG9iamVjdCBvciBmdW5jdGlvblxyXG4gICAgICogQHJldHVybnMge29iamVjdH0gYSByZWZlcmVuY2UgdG8gdGhlIG9sIHNlbGVjdGlvbiBsYXllclxyXG4gICAgICovXHJcbiAgICBhZGRNYXBTZXJ2aWNlUG9wdXAobHlyLCBzZWxlY3Rpb25TdHlsZT86IG9sLnN0eWxlLlN0eWxlfEFycmF5PG9sLnN0eWxlLlN0eWxlPnxvbC5TdHlsZUZ1bmN0aW9uKSB7XHJcbiAgICAgICAgbGV0IHNlbGVjdGlvbkxheWVyID0gdGhpcy5fYWRkUG9wdXBMYXllcihseXIsIHNlbGVjdGlvblN0eWxlKTtcclxuICAgICAgICB0aGlzLl9lc3JpTWFwU2VydmljZUxheWVycy5wdXNoKGx5cik7XHJcblxyXG4gICAgICAgIHJldHVybiBzZWxlY3Rpb25MYXllcjtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhclNlbGVjdGlvbigpIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3NlbGVjdGlvbkxheWVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25MYXllcnNbaV0uZ2V0U291cmNlKCkuY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgZiBvZiB0aGlzLl9tYXBDbGlja0Z1bmN0aW9ucykge1xyXG4gICAgICAgICAgICBmKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBtYXAgaXMgY2xpY2tlZCBidXQgYmVmb3JlIGFueSBwb3B1cHMgYXJlIGltcGxlbWVudGVkXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIC0gdGhlIG1hcCBjbGljayBmdW5jdGlvblxyXG4gICAgICovXHJcbiAgICBhZGRNYXBDbGlja0Z1bmN0aW9uKGZ1bmM6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fbWFwQ2xpY2tGdW5jdGlvbnMucHVzaChmdW5jKTtcclxuICAgIH1cclxufVxyXG5ubS5NYXBQb3B1cENscyA9IE1hcFBvcHVwQ2xzO1xyXG5leHBvcnQgZGVmYXVsdCBNYXBQb3B1cENscztcclxuIl19 /***/ }), /* 13 */ @@ -1523,7 +1523,7 @@ function quickMapBase(options) { exports.quickMapBase = quickMapBase; nm.quickMapBase = quickMapBase; exports.default = quickMapBase; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2tNYXBCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicXVpY2tNYXBCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFFSCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBQ2pDLDBCQUE2QjtBQUM3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBWWhDOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILHNCQUE2QixPQUF5QjtJQUNsRCxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQXFCLENBQUM7SUFDM0MsT0FBTyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztJQUN2QyxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBQyxDQUFDO0lBQzlELE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxPQUFPLENBQUMsSUFBSSxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNsRSxPQUFPLENBQUMsWUFBWSxHQUFHLE9BQU8sT0FBTyxDQUFDLFlBQVksSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDOUYsT0FBTyxDQUFDLFVBQVUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxVQUFVLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBR3pGLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXBDLElBQUksUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVB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RUgsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDckIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUM7QUFDZixDQUFDO0FBNUVELG9DQTRFQztBQUVELEVBQUUsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0FBQy9CLGtCQUFlLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzE1LzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnb2xIZWxwZXJzJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIHF1aWNrTWFwT3B0aW9ucyB7XHJcbiAgICBkaXZJZD86IHN0cmluZztcclxuICAgIGNlbnRlcj86IHt4OiBudW1iZXIsIHk6IG51bWJlcn07XHJcbiAgICB6b29tPzogbnVtYmVyO1xyXG4gICAgbWluWm9vbT86IG51bWJlcjtcclxuICAgIG1heFpvb20/OiBudW1iZXI7XHJcbiAgICBiYXNlU3dpdGNoZXI/OiBib29sZWFuO1xyXG4gICAgZnVsbFNjcmVlbj86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXRzIHVwIGEgbWFwIHdpdGggc29tZSBkZWZhdWx0IHBhcmFtZXRlcnMgYW5kIGluaXRpYWxpemVzXHJcbiAqIG1hcE1vdmUgYW5kIG1hcFBvcHVwXHJcbiAqXHJcbiAqIEBwYXJhbSBbb3B0aW9ucz17fV0gY29uZmlnIG9wdGlvbnNcclxuICogQHBhcmFtIFtvcHRpb25zLmRpdklkPW1hcF0gbWFwIGRpdiBpZFxyXG4gKiBAcGFyYW0gW29wdGlvbnMuY2VudGVyPXt9XSBjZW50ZXIgY29uZmlnIG9iamVjdFxyXG4gKiBAcGFyYW0gW29wdGlvbnMuY2VudGVyLng9LTEwMDE4Mzc4XSBjZW50ZXIgeCwgd2ViIG1lcmNhdG9yIHggb3IgbG9uXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5jZW50ZXIueT01NTc0OTEwXSBjZW50ZXIgeSwgd2ViIG1lcmNhdG9yIHkgb3IgbGF0XHJcbiAqIEBwYXJhbSBbb3B0aW9ucy56b29tPTddIHpvb20gbGV2ZWxcclxuICogQHBhcmFtIFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSBtaW4gem9vbVxyXG4gKiBAcGFyYW0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIG1heCB6b29tXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5iYXNlU3dpdGNoZXI9dHJ1ZV0gaWYgYWRkIGJhc2UgbWFwIHN3aXRjaGVyXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5mdWxsU2NyZWVuPWZhbHNlXSBpZiBhZGQgYmFzZSBtYXAgc3dpdGNoZXJcclxuICogQHJldHVybnMgdGhlIG9sIG1hcFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHF1aWNrTWFwQmFzZShvcHRpb25zPzogcXVpY2tNYXBPcHRpb25zKTogb2wuTWFwIHtcclxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9IGFzIHF1aWNrTWFwT3B0aW9ucztcclxuICAgIG9wdGlvbnMuZGl2SWQgPSBvcHRpb25zLmRpdklkIHx8ICdtYXAnO1xyXG4gICAgb3B0aW9ucy5jZW50ZXIgPSBvcHRpb25zLmNlbnRlciB8fCB7eDogLTEwMDE4Mzc4LCB5OiA1NTc0OTEwfTtcclxuICAgIG9wdGlvbnMuem9vbSA9IHR5cGVvZiBvcHRpb25zLnpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLnpvb20gOiA3O1xyXG4gICAgb3B0aW9ucy5iYXNlU3dpdGNoZXIgPSB0eXBlb2Ygb3B0aW9ucy5iYXNlU3dpdGNoZXIgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5iYXNlU3dpdGNoZXIgOiB0cnVlO1xyXG4gICAgb3B0aW9ucy5mdWxsU2NyZWVuID0gdHlwZW9mIG9wdGlvbnMuZnVsbFNjcmVlbiA9PSAnYm9vbGVhbicgPyBvcHRpb25zLmZ1bGxTY3JlZW4gOiBmYWxzZTtcclxuXHJcblxyXG4gICAgbGV0ICRtYXBEaXYgPSAkKCcjJyArIG9wdGlvbnMuZGl2SWQpO1xyXG4gICAgJG1hcERpdi5jc3MoJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XHJcblxyXG4gICAgbGV0IG9zbUxheWVyID0gbmV3IG9sLmxheWVyLlRpbGUoe3NvdXJjZTogbmV3IG9sLnNvdXJjZS5PU00oKX0pO1xyXG4gICAgLy8gbGV0IHNhdExheWVyID0gbmV3IG9sLmxheWVyLlRpbGUoe3Zpc2libGU6IGZhbHNlLCBzb3VyY2U6IG5ldyBvbC5zb3VyY2UuTWFwUXVlc3Qoe2xheWVyOiAnc2F0J30pfSk7XHJcblxyXG4gICAgbGV0IG9zbUNzcyA9IFwidXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURBQUFBQXdDQU1BQUFCZzNBbTFBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFNQVVFeFVSUUFBQURRMU5EazVPVVJGUkV0TFMxRkhTRmxaV0dKUlZHSmlZV2RtWld4c2JIUm1hWEJwYW5OMGMzVjBkSHA1ZVg1K2ZJVnpkNEYzZWVWMGp1ZDVqdVo4azRhSGhvbUhob3lHaDVlR2o1T1ZsSmlWbFppWWw1cVptSnlkbktPVGxhS1ptcUtkbmFPaW9hcXFxS3V6c2JPdnJyU3lzTGEzdGJXNHVMbTZ1YjI3dWIrL3ZiR1h3YkNad2JDZ3hMS2x4ck9xeUxTdHliTzN5clN4eXJXenpiVzJ5N2ExemJLNHk3VzZ6Ylc4eTc2MHlyVEF6YlRGenJQS3pyTE96clRKenJUT3pyN0N3YlhDMExYSzBMVE8wTDNJMGJQUXo3VFF6N1BTMGJYUTBMblIwYnJXMWJ6VDByN1UwNzdWMUx6YzJkcU5xdGVVc2R5WHNjYXF1dU9IbmVhR211ZUhuT2VKbnVpQmxlaUtuK2VOb09pT29PV1VwT2lSbytpU3BlaVVwZXFZcHVtYXFPbWRyUFN5bmVtZ3J1U3F0T21pc09tbHN1dXF0ZXF1dU9XMXZPdXh1K3V4dk9xMXZlK3h2UEswcHZXM28vVzVwZk81cXZTN3FmQ3d2TU91d2MyL3dOZW54Tnl5ek5lLzBOcTMxTnE1MWR5NzJPeTN3T3U0d091K3hleTR3Tys2eE8yK3hmVEFyL1RDc3ZmRnRQSEx2dlRKdU1QRHdNZkh4Y1hLeWMzRHhNdkZ5TXZMeU0zUHpjRFYwOERWMU1UWDFjYlkxczdYMXNqWjFzcmEyTW5kM003YjJjN2MydGZIMXRuQjF0N0YyZDdNMjlmWDF0TFkxdERkMnRIZTNOVGYzTm5TMTlyWjF0dmEyTm5mM3QzZDI4cmgzdFhnM05uaDN0emozOTNrMzluaTRON2s0TjduNXVYRHlPZkx6K3pBeHUzQ3lPekV5ZXpLemVESjNlTE0zdXZQMHUzUDBlUGYyKzdSMHU3UTF1L1UwKzdVMWV6YzArN2EyZS9kMiszZjN2YkZ6dkxPd2ZITjBQUFF3L1RVeC9MV3l2TFl6UERRMWZQZTB1YmM0dnZlNHVIaDMrbmgzKy9oMnUvaDN2SGoydkhsM3VIbTRlVG40dURwNWVibzQrWG81T0RxNmVicTZPVHY2K25sNCsvajRPN2w0ZTduNXVqcDQrbnA1T3pxNWU3czV1cnQ2Tzd0Nk9ydzZ1N3g2dTN4N3ZQajVQRGw0ZkRvNHZEcTVmRHQ1dkR1NlBEdjdQVHY2ZkR4NnZIeDdmSDE3Zlh3NmZYeTdmYjA3L2J6OGZUMTh2bjM4dnIzOWZyNDgvcjU5UHI2K1AzKysvLysvZ0FBQUxOVFNrMEFBQUVBZEZKT1UvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vd0JUOXdjbEFBQUFDWEJJV1hNQUFBN0RBQUFPd3dISGI2aGtBQUFBR0hSRldIUlRiMlowZDJGeVpRQndZV2x1ZEM1dVpYUWdOQzR3TGpsc00zNU9BQUFGTkVsRVFWUklTMVZWQ1p4VlV4aS85bDBVSVVUMmJNblk0M2JWSTJjMFkwMWtTV0lhUzBqMkpFdGtONDFwaW9tWnJQUEtRMmFRN0pLSW1PWmxubTI0OTNUSnpEdWZ1VTFaaSt2L2ZlZSttWi8vNzkzdm5QT2Q3enZmZXM1ekRCRVprQkJqQWNJamIrSWlvdHFnZGhhdDhBTUswdmw3L1I5TjdHaVd0c2hxSXIrRVo1Z1lLaWJ5VXNYWTFsL21mRnBzc3ZVbFdRMEZrVTNneTQrUkIvK2t3WWNPOHBSU25sZGNPVS9yMmxBSEFSU3drMk9SZ0VtT2RDMUVzdVJpWVNxTVB3d3JvTUlyYVprNVYyZllKUWpDS2ZaclJtaDNnU0FaaTJpNGI3d1N5bFd1OEVxWndTNTlKa0ZVYVc5NkpiTlNjK0NFVW10NHJvcnd1Wm1XZERhb2MrdVpFVHVRbFRDVTV4WXpSN211VW5WVVZvK0JjUmhyZS9Wd1VwYXNnSndoSDdKa1lJWUEwc054aG1Dd1VLK2x3NnZDS0JaZWh3MDFkRWl5dzRRNGFFMFo0YWhEaEthRlFzR25KMkJncUtvVEJzTmpGeTBTbFc2d2hSQVpUZG04REJKbWtCWmhEaTFqNHhKUUJrNnl3cldVVHltYUN4YWM4bFJPY2RhdVJHelFTTnRBN0VIVVloWHlFd2hoZ2pGVXFSdU8rcmF1aEYxYXdGcHpDc213VWJqSUZCUjB1MWJLdHlHcHVsVy9IL2NWVnpreUdhSVdUSVI5cEZBVjZHSzJnUE1YTVg4Z1BrOXp6eFhnSTFraW1jQWx0RVlyK2NqaW8xaW1sS3BFYTlyT2lwTG0rcCtDWjZCdy8vcWQxL2YvTytHd014YlNMcHlvWkVjd2t5aDJqSWtzKzNobWRkMmpXVXc0c2N4Tnlzbkh4VTduU3NwVFJjSmpDWkdMM0lzanNZSk1NZzVtd2d4N2dhSU9MQkZDb2dBZ0JCb05hOXcrREU2SStCczdGVGd3d3JKYkhqV0RncFlvMkt3dEJUY1lFRHVsb0M5Z2VRdytrMlJHblBHcFRhT2xxN0FTK1lJQ1V6NERaVmFYMlRpTkRodVlmVHRZNGdlTGkwSW9DbTNYY2N3TTloeDRrVTI4U3RRRWxqRHMzWkVwRkdBKzhkS3pMbVY5eW1Jd0Y1Rk9HbjJHZEpNOEtMSERKYlh5aVlWTUc5TVJUTGlYR0dnMlFLYXhNM2toUFNScndNOXpFSWFyZHhVMncvRWlBMGdPZVlLSHpEUjBWNy9RR1YzbEtJQTlrdHJEQXJ4TzNnZEErazZTS29CaVZ3Y203TmpaYjkrSG56dGcyODJUdUhWWjlMT0lTRk50OU1neUNldFpWY3pTeG55RGJsMTdQZW5xNm1xcGcxSWhSYUVPMmFWTFVPNC9yMTdIOHRUdjZmMTNoNzFkZHV2WkkzWSt1TWRXa3NOU2F1TG92Snc1aHNxaVBJVXZ0MGt1Ny9pQmVVUjNza3Ntb21ZV3RSYkFqYmlMZnYybFg5L1Y3TFZHNHVZblVaWGhRN2YyT1BDWkV4OXdyWVdUY2VQRVFxUEVNTDhwbDRtTWRyL2psWGx2SGlSaUoyK01TVEZZNFRUU1lTdHV2ejJSL0pYaCtQUGVHWG0wNTVKKzMvWURXdU51M1IzREFyUHV0eWcwWmd5a01WRFU5TmRtMjIrd1lhbHIycnNlNDhDbnNUSUZjTW43M3ZmaE5ya3R4MUVVY1puUHY2YWgzWXk1Y0RUUmRCRW9Hb0JlYWg3MWRxRnlqWkRKTGtXazNOM3Y0dXVrdHNzaldwemNpTVB4UWVIajhuTUt6Y0d1QjB0QXl6RmhkQ0tPWVd2NEh3T1FWd0l4TEc5OWE2dXZIM3NKQ3lPM2grazRFWitHNyt4ajVmNFhYa3NvYUdyZE1SelNjOEFSQTgrY2RPdWsyeDZmZmZOTnQ1eCtSbzFvbVBsclQvQ1FEbGNObHB4NE5CSVdYaGt4N1kzWnAzb2ZOUjdVdjg5T20vYmVXMFRMSXluSHYzdnMxVnNPRnBTV1NYdmZ1UFVmOUJyUkZ5eGdYZEhvS0puUUZlZ1BPb3Z2eno1OW50cnp5ZTI0MGlnOFVRM2xESTJWcXdhZ3JLSVFjTFhORkwzd2dsTjJPSGRCUTYvdkkza0VORFZCd1JiM2sxWHRjekZialduNEV6TVlpN0NGMzEyOStKVFl1UlNkckd1UzkyZzVkcHFuNnFYb0pRczV4bUw4cCtXdDRoTGJ0MG14Mk9MTlpSMmJiUHk4ekpOUUdGTS9mL0NmWFpla1JZRmpHQ1dqSUpwTStXaUN6R0JQV0hob3lhQXNqUlQvQjJHeTV5ellKa3dVQUFBQUFFbEZUa1N1UW1DQycpXCI7XHJcbiAgICBsZXQgYWVyaWFsQ3NzID0gXCJ1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBREFBQUFBd0NBTUFBQUJnM0FtMUFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQU1BVUV4VVJRQUxCZ0lNRFFnT0J3UU9FUWNUQndVU0N3b1ZEQXdkQnc4WkRnVVJFd1lVR0FZWkZRWVpHZ2tURlFvVkdRc1pGQXdaSEJNZURoSWJGQkViSEF3V0lBNGJJUkVjSVE0aENRd2pGdzRsSEJna0RCOHNEeFVpRXhJaUdoQW9HeG9oRlJzaEdSb3JIUWNyS1FzaUlRd21LZ29vSkEwcEtRODFKdzh5TFJNaUl4SW1LeFVySlJFdUtoc2xKQjBySWhvb0tSVXVNQk15TGhrd0pob3pLaDQ4THhVek1STTlNQnd6TWlVdkZDTXRHaU13RWl3ekZDZ3pIREkrR1NJc0lTa3ZKU1F4SWlNMkxpWTVKaWMrTHlrMEpTbzBLeTQ5SlNzOUtTVTFOU003TkNzMk5TOCtORE0xSnpVOUxqZzdJREpDSFMxRExTTkFNaXRDTVN4SU9qUkVJVFpMSURaSktEbEZJanBGS3p0S0pUMUxLekpCTXpwSE1EMUpNanBLUEQxUktqbFFOQzFEUWo1UVFFQThNRUpHSmtCS0pVSk5LMGxMTEVKTU1rVk1QRXBPTkVOU0xVZFpMMHBUTGtwYUxrUlVNa1JTUEVWWk1rdFVNMHBWT2tsWk1rbFpORXBjTlUxWk1rMVpOVXhmTWs1ZE5reGNPVkZVTTFSVU9GSmJOVkZaT1ZOWVBWRmRPVkpkUEZWYU9WVmFQVlZkT2xWZFBWcGFObHBkTzBwaE4wMWhPbEJpTjFOaFBGTm9QMXBpUFdGYlBtUmpQRU5PUUV0UFNVUlRRa0pWUzB4VlFrMVZTa3hiUWt4Y1MwaGVVVkZYUkZSY1FsSmZURnhlUWxwZVMwNWxRazFrU0ZSalFWUmpTbFpwUTF0a1FseGxTbHhwUkYxclNWVm5VVnRsVTFsbFhGOXRVMXhvWGx4d1NsOXJhbVJmUW1KbFEyRmhTV0ZsU1dGbFRtVmxTV1JtVEdGb1FXRnBSV0ZzUm1WcFJXVnRSbU5zU210bFJHcHFSbXBzUzJCbVdHUnNVbUZyVzJwdFVtWnlSMlJ4VEdweFRXVnlVMlJ5VzJkNVYydHpVbXQwV1cxNVZHMTVXWEZ1VEhOdFZuRnhUWEY0VDNoMFRuSnpVbkoxWEhKNFZYTjZXbnAwVkh4MVczMTVWWHA4WEdSMFlHeDBZSFZ6WlhKMGFIUjlaWFYrYUhsOVlIT0NYWHFCWFhlQ1lIeUNZM2lFYUh5SVluK0phWHFLY1lCNVdJTjZZNFNDWG9DRFpJR0VhWUNJWm9PTGE0aUNhSW1KYklPT2RZdU1jbzZPZUl1VmNwT0tiWktQYzVhUWI1ZVhlNXVmZzZLamhBQUFBQUFBQUFBQUFBQUFBT0dDZVFnQUFBRUFkRkpPVS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy93QlQ5d2NsQUFBQUNYQklXWE1BQUE3REFBQU93d0hIYjZoa0FBQUFHSFJGV0hSVGIyWjBkMkZ5WlFCd1lXbHVkQzV1WlhRZ05DNHdMamxzTTM1T0FBQUg4MGxFUVZSSVN5MVdiWFFVVnhtKzZ3cW5rM1ptcHhsMkZHMkVHZzkyQzhHRGxXcHRWVHdhK3VGM3hjS21EZkZ6Q1V6RHNKTnN1blhpcGdsSlhKYnJ0Sldtd1pOU25IRDNqb2pSZ1VJbTJVdW1JWjBKWjdKQnlyQUxiTVdXMElCVzhhUmE0K2NmNzZUZVgzTm0zdWMrei9zKzcvdnVnbDRyL2FNVHJUNGUxcFBUcW5ubUpObjVBeVV6Um5yUmxlL3FFMzNkc3ZyQnRBUVZveHRwWk5LM3pTellqVWp2aVdPMkFnK1I3N2RsN1czNm4vMUVwOUtCUEcvUytQeTBQa2pVL2dQS1FHcXdUSHJ5aVdZRkFYU3ZNYWlyc2lvN1NqeU5zbkN6aDBxS0ltVjkvN21oZkhRWngyeU4xTys3clhVbTMzTVVQYWJvT2tBSkhhb0lkWGZKajJ4V2V5RDhqTUZFWGt2SXU1cXpwVTk4OGdXQjV6bCtHUytzRmU1NXRyRVZQZFdaQjJtaXE4YkJWa05GTzJSMHFucmZraVhoY0podEROWEU2dGJXOTcvczlPOS83WmZWaHg4Ni9Dd3JST3BmdnZ4Ym9NcWVMc3VxUHIxajQ0cUV3RE5NT0J4aW1VaVlvVThzdzdCQy9hN1Q3MnVFbnlKRGxHeFo5S2NnbFpSeXVxcXJ2L3RTWkVyZ09JNE5nUkJUSXc5RW1IQW9GR1pabnA2YUdhSjJHVHhmeFlzOGtLVlVRaDdXQjVoUWVDM0xzVXhveFZLVzE0bDNCWDJXY29VWVBpWnlMTGU4dGVaK2l1VDRHR2h2VjVLcEtXa3B5enhFcjJNWmdRMXhkUmpmUkJvSCsyazZsSUhqS1RIUFBCbzhDU0pJU3FxcTR3R0dPY1d5bElHbGd2Z05YMUdkOHZGNWYrSVVJd2IzMG5nK0dnMlFmQlJJTXZ5MGpHOFNWa1lvNE4wenZVWFZSenRiSi9MNnhMN2xVWkVYQkVIa3VacWxTNmdFQVVnS0p1cm5oRnRmcEFDT1lkOGIvaFZiSlBxd2k0NGE2S0Ewc1BWaklpL1NJeXhiM3U4S2xBSjBTOGpSVmdybFcrblZIUGRyaGlYQ3h1NDJkODZCeWtzRGM4MFAzTWtKRkJGUThIbzFsUWVncFdKUldGR3NEc1J3d3Y3cEl5dnVRVzBaa3JYNk5EVkZicWN2YVFJOHZieXF6dDVBQVJyc2JLeDV5aFFFR3Mrd1BPNTZiT0srMHJjd01yT0trcFViWldZeFYwNFVlWlp2L2NCS0ZoUkw2UWR2OXk0TGZFREE3L3RoZzd0VG12MWE1L0duTzB3bDBkUWc4MHdnbFphSFVteFJ2andBSE9meU4wbXhycHFMVXBjanNLM05IWU1vNFIxbzZlaG8yWnlJYjJGb2VPQzNJTEs4a1oySFFNT3VXeXdHWFVrSkJDZVRiWUZTMCt5bTFoMi82VWdtdm5ydktZWlp0SUVYR2Y3NUMyY0lBcDVMSE5kNzF4N3VQb1RqYWtyV0g5ZTNLRnBhYXRqVXZKVXlzRncwS3JMTVlNVzJsVGc0UGVVUXg2a0pFQUx2eFhFbUNkVnlQTEh0Q1NqQmhjMDFYQ2pJZ2FmeG91K1BFNktDMWRoeFNDd29CQ2MrTjRQM2J0TTg0cG1kU1NqSm5qTy9udlk0TFFmVnl6NS9JK3Y2SXdqVU9NankrTVZDeEliS3VwVEphRWt0cDdjVEtVNDJQdmpoMm0vOGNTcEM2YVBzYVgvTUhTdVVRTFZWc0lhNFJVVHMvci9CVkFleE5kamRuc05HN2ovclY5M3hoZUxNektuRnJQZVRFUWNoQ3lDY0tiMjVhQUluN2xyQWVydHJad3lOWE04TjZ6ZldyRm8zZDJTbU9FY0Y4M3gvcitPT0ZnckFIWVdGN2NFTGpoVjdVUW8vNldBSVVWbDlKRmw4YS8vSFo2NlZwYlkzSTlRS1pxUHJ1NzdsQStpT1dBSXIwaEt4SENtbXIwb3RoU3llSWw1eTNxdDR4VDhnU05yS0Vab3pzOEVsczY3cmdzTE9aK3lnendNZmJ0TmhvYmZnenBFeUduejdodFB0elVpNlB1T29qN0swV0YvTVhpVUZ4d0dhalJEMWhqWVhIWEk5cDQwNnFPeWlucDUvdGlXY0RIWTBqSXU0bjY0UWZxN2tsaUIyZ2VtYWc5UWJPaWEwUGJiRE1iZDQzU0h1dnhGeHJBb2N4aW5zN01YNUtxYmUxUWl4S0J4b1Y0Ly9QZkFnR0N1K1JsbTRTdlppenlESCswcmVESHA5MmlPMEJ1WDNiQ2ZJdGwwUEV3dllMcXB3WEcyTUhsR3NRNFM4cE1KWnYxSkdtSGlFb0hRRGRPandtVmxFUC9uRTlBREtqSTh4TEkwT09HSVRmeTBTYmVHL0MyaktVREdTbERoTTlJM0lwSzlpdXA2WG5iUk5DN3lxdWVOc0pDQ0lpWHpkUWhuYUdOKzQ2dW1uRWR5NVU1VWJVSjQ4TEZNOUdrSm84QmRET2lBWjdaSVFiS2hZTE1xdmhVMndtTnhqRUFzUzJBSTd5NG5XRjY0ZHVlUGJrN1lWM3p2QVZMRU1EOUF4SlJOYTNLRFVpYlY3RGpua3Vwck1FWWpTY0ZOY2FSMmNlUDJ1OVIvNWsxMDUyUnltZTVwaEFGUnN3bEhqQXVkaVA0ZE95N0NheExnZEpoOXZVbFUxNzAyLytMUGExVTlmdlBpOXFsQTRYRVVCSmMzZEZscHNSNDU3SURsMWlQcUxwN284MU5RZ3lWMTlpWVUzOHVUaXY5NzVQZDNTaXdRY3NHangrdjQvNmZsNVQ3RU9PTVRDdHBiS3hmZW1zUXEvM29sUVpjbWluQURBQUkwY3VHTEhhSE9GeGJ1R3ZSay9aOXU3Q1VMcW9WUjZORTB5eDFhdmozMG9SaGMvaldVb0lBTEd4a3owZGcxRGw5aWFJN0xxT09YS3NYSkZ3aml1RUFpNzBKcmEyblcxUEwwOHpMQmhac01BQnBXNWNzSTdUUGZldzlpcEZLY241azFpKzFLeUNXS2pDM1cvOGRGMWQ2NjYrUmFhYkJWVEZUSGFjam9vakJORGgwTkR4aytJUFRsd2ZxSmtXcGJucEZIWEliTGJtcHhFUTNmZi9aMGcvbWF1WHNvbG45d0RSankvTkhzUUZ3M1A2dld1VEo0My8rRlpyazJjdkFGUmlwQ0tkZkQ5eTIrcGpSajc4czBLZENVREtKdmRWOTFDaG5nVjM4VDIwVE0rZ2doanBKYVBscEZyMnhiRXo1ZzRBL05HdDVyTndkd21ZR2VlZU1YQlNMSEhVSWMrNlJzb2pSSDlWVFVtMy9tTGYvNjRiNDcwWHZveG9US2hsTUJRMmpNRXpvMlBqeGRHTXBwbW4xUk0yNGJXRkpxYVF2NEJjdUphMlNhbTdab2txMWxkQ3N6MDZOQ0JIcmh3cVZRWXBmRmo0Mk5aZXh6MUVXOVNSL2tUNThuRWVRS0piMmZQWGpqcDB1L1lVa3dIRWdMZU9uZjJuT3VmMVRSVE0wMkNMS0xUUHk2MC94MUNDenRxbjdFditCZHNDM20rMzBkZWNRdlcvd0JOVHdVK0NmVVFBUUFBQUFCSlJVNUVya0pnZ2c9PScpXCI7XHJcblxyXG4gICAgaWYgKG9wdGlvbnMuYmFzZVN3aXRjaGVyKSB7XHJcbiAgICAgICAgLy8gIGxldCBzd2l0Y2hlckNvbnRlbnQgPSAnPGRpdiBjbGFzcz1cImJhc2UtbWFwLXN3aXRjaGVyXCIgdGl0bGU9XCJUb2dnbGUgQmFzZSBMYXllclwiIHN0eWxlPVwiJztcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9ICdwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNzBweDsgbGVmdDogNHB4OyBib3JkZXI6IHNvbGlkIGJsYWNrIDFweDsgJztcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9IGBoZWlnaHQ6IDUwcHg7IHdpZHRoOiA1MHB4OyB6LWluZGV4OiAxMDsgYm9yZGVyLXJhZGl1czogNHB4OyBiYWNrZ3JvdW5kOiAke2FlcmlhbENzc307YDtcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9ICdcIj48L2Rpdj4nO1xyXG4gICAgICAgIC8vICAkbWFwRGl2LmFwcGVuZChzd2l0Y2hlckNvbnRlbnQpO1xyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gJG1hcERpdi5maW5kKCcuYmFzZS1tYXAtc3dpdGNoZXInKS5jbGljayhmdW5jdGlvbigpIHtcclxuICAgICAgICAvLyAgICAgIFwidXNlIHN0cmljdFwiO1xyXG4gICAgICAgIC8vICAgICAgb3NtTGF5ZXIuc2V0VmlzaWJsZSghb3NtTGF5ZXIuZ2V0VmlzaWJsZSgpKTtcclxuICAgICAgICAvLyAgICAgIHNhdExheWVyLnNldFZpc2libGUoIXNhdExheWVyLmdldFZpc2libGUoKSk7XHJcbiAgICAgICAgLy9cclxuICAgICAgICAvLyAgICAgIGlmIChvc21MYXllci5nZXRWaXNpYmxlKCkpe1xyXG4gICAgICAgIC8vICAgICAgICAgICQodGhpcykuY3NzKCdiYWNrZ3JvdW5kJywgYWVyaWFsQ3NzKTtcclxuICAgICAgICAvLyAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgJCh0aGlzKS5jc3MoJ2JhY2tncm91bmQnLCBvc21Dc3MpO1xyXG4gICAgICAgIC8vICAgICAgfVxyXG4gICAgICAgIC8vICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0aW9ucy56b29tIDwgMCB8fCBvcHRpb25zLnpvb20gPiAyOCkge1xyXG4gICAgICAgIHRocm93ICd6b29tIG91dCBvZiByYW5nZSc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9wdGlvbnMuY2VudGVyLnggPj0gLTE4MCAmJiBvcHRpb25zLmNlbnRlci54IDw9IDE4MCAmJiBvcHRpb25zLmNlbnRlci55ID49IC05MCAmJiBvcHRpb25zLmNlbnRlci55IDw9IDkwKSB7XHJcbiAgICAgICAgbGV0IHAgPSBuZXcgb2wuZ2VvbS5Qb2ludChbb3B0aW9ucy5jZW50ZXIueCwgb3B0aW9ucy5jZW50ZXIueV0pO1xyXG4gICAgICAgIG5ldyBvbC5wcm9qLlByb2plY3Rpb24oe2NvZGU6IFwiRVBTRzo0MzI2XCJ9KTtcclxuXHJcbiAgICAgICAgcC50cmFuc2Zvcm0obmV3IG9sLnByb2ouUHJvamVjdGlvbih7Y29kZTogXCJFUFNHOjQzMjZcIn0pLCBuZXcgb2wucHJvai5Qcm9qZWN0aW9uKHtjb2RlOiBcIkVQU0c6Mzg1N1wifSkpO1xyXG4gICAgICAgIGxldCBjb29yZGluYXRlcyA9IHAuZ2V0Q29vcmRpbmF0ZXMoKTtcclxuICAgICAgICBvcHRpb25zLmNlbnRlci54ID0gY29vcmRpbmF0ZXNbMF07XHJcbiAgICAgICAgb3B0aW9ucy5jZW50ZXIueSA9IGNvb3JkaW5hdGVzWzFdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xzID0gb2wuY29udHJvbC5kZWZhdWx0cyh7XHJcbiAgICAgICAgICAgIGF0dHJpYnV0aW9uT3B0aW9uczoge2NvbGxhcHNpYmxlOiBmYWxzZX1cclxuICAgICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IHZpZXcgPSBuZXcgb2wuVmlldyh7XHJcbiAgICAgICAgY2VudGVyOiBbb3B0aW9ucy5jZW50ZXIueCwgb3B0aW9ucy5jZW50ZXIueV0sXHJcbiAgICAgICAgem9vbTogb3B0aW9ucy56b29tLFxyXG4gICAgICAgIG1pblpvb206IG9wdGlvbnMubWluWm9vbSxcclxuICAgICAgICBtYXhab29tOiBvcHRpb25zLm1heFpvb21cclxuICAgIH0pO1xyXG5cclxuICAgIGxldCBtYXAgPSBuZXcgb2wuTWFwKHtcclxuICAgICAgICBsYXllcnM6IFtvc21MYXllcl0sXHJcbiAgICAgICAgdGFyZ2V0OiBvcHRpb25zLmRpdklkLFxyXG4gICAgICAgIGNvbnRyb2xzOiBjb250cm9scyxcclxuICAgICAgICB2aWV3OiB2aWV3XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAob3B0aW9ucy5mdWxsU2NyZWVuKSB7XHJcbiAgICAgICAgbWFwLmFkZENvbnRyb2wobmV3IG9sLmNvbnRyb2wuRnVsbFNjcmVlbih7fSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtYXA7XHJcbn1cclxuXHJcbm5tLnF1aWNrTWFwQmFzZSA9IHF1aWNrTWFwQmFzZTtcclxuZXhwb3J0IGRlZmF1bHQgcXVpY2tNYXBCYXNlO1xyXG4iXX0= /***/ }), /* 14 */ @@ -1605,7 +1605,7 @@ function resolutionToZoom(resolution) { } exports.resolutionToZoom = resolutionToZoom; nm.resolutionToZoom = resolutionToZoom; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbVJlc29sdXRpb25Db252ZXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiem9vbVJlc29sdXRpb25Db252ZXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFFSCwyQ0FBc0M7QUFDdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBRXRELElBQUksY0FBYyxHQUFHO0lBQ2pCLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLHFCQUFxQjtJQUNyQixxQkFBcUIsQ0FBQyxJQUFJO0NBQzdCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsMEJBQWlDLFNBQVM7SUFDdEMsWUFBWSxDQUFDO0lBRWIsRUFBRSxDQUFDLENBQUMsT0FBTyxTQUFTLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMvQixFQUFFLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLElBQUksQ0FBQyxJQUFJLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNELE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBZ0MsU0FBVyxDQUFDLENBQUM7WUFFekQsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNyQixDQUFDO0lBQ0wsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUNyQixDQUFDO0FBQ0wsQ0FBQztBQWRELDRDQWNDO0FBQ0QsRUFBRSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0FBR3ZDOzs7O0dBSUc7QUFDSCwwQkFBaUMsVUFBVTtJQUN2QyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUMsQ0FBQztRQUM1QyxFQUFFLENBQUMsQ0FBQyxVQUFVLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUEsQ0FBQztZQUNsQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2IsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ2IsQ0FBQztBQVJELDRDQVFDO0FBRUQsRUFBRSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTQvMjAxNS5cclxuICovXHJcblxyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycy56b29tUmVzb2x1dGlvbkNvbnZlcnQnKTtcclxuXHJcbmxldCBfem9vbVJlc0xvb2t1cCA9IFtcclxuICAgIDE1NjU0My4wMzM5MjgwNDA5NywgLy8wXHJcbiAgICA3ODI3MS41MTY5NjQwMjA0OCwgLy8xXHJcbiAgICAzOTEzNS43NTg0ODIwMTAyNCwgLy8yXHJcbiAgICAxOTU2Ny44NzkyNDEwMDUxMiwgLy8zXHJcbiAgICA5NzgzLjkzOTYyMDUwMjU2LCAvLzRcclxuICAgIDQ4OTEuOTY5ODEwMjUxMjgsIC8vNVxyXG4gICAgMjQ0NS45ODQ5MDUxMjU2NCwgLy82XHJcbiAgICAxMjIyLjk5MjQ1MjU2MjgyLCAvLzdcclxuICAgIDYxMS40OTYyMjYyODE0MSwgLy84XHJcbiAgICAzMDUuNzQ4MTEzMTQwNzA1LCAvLzlcclxuICAgIDE1Mi44NzQwNTY1NzAzNTI1LCAvLzEwXHJcbiAgICA3Ni40MzcwMjgyODUxNzYyNSwgLy8xMVxyXG4gICAgMzguMjE4NTE0MTQyNTg4MTMsIC8vMTJcclxuICAgIDE5LjEwOTI1NzA3MTI5NDA2MywgLy8xM1xyXG4gICAgOS41NTQ2Mjg1MzU2NDcwMzIsIC8vMTRcclxuICAgIDQuNzc3MzE0MjY3ODIzNTE2LCAvLzE1XHJcbiAgICAyLjM4ODY1NzEzMzkxMTc1OCwgLy8xNlxyXG4gICAgMS4xOTQzMjg1NjY5NTU4NzksIC8vMTdcclxuICAgIDAuNTk3MTY0MjgzNDc3OTM5NSwgLy8xOFxyXG4gICAgMC4yOTg1ODIxNDE3Mzg5Njk3NCwgLy8xOVxyXG4gICAgMC4xNDkyOTEwNzA4Njk0ODQ4NywgLy8yMFxyXG4gICAgMC4wNzQ2NDU1MzU0MzQ3NDI0NCwgLy8yMVxyXG4gICAgMC4wMzczMjI3Njc3MTczNzEyMiwgLy8yMlxyXG4gICAgMC4wMTg2NjEzODM4NTg2ODU2MSwgLy8yM1xyXG4gICAgMC4wMDkzMzA2OTE5MjkzNDI4MDQsIC8vMjRcclxuICAgIDAuMDA0NjY1MzQ1OTY0NjcxNDAyLCAvLzI1XHJcbiAgICAwLjAwMjMzMjY3Mjk4MjMzNTcwMSwgLy8yNlxyXG4gICAgMC4wMDExNjYzMzY0OTExNjc4NTA2LCAvLzI3XHJcbiAgICAwLjAwMDU4MzE2ODI0NTU4MzkyNTMgLy8yOFxyXG5dO1xyXG5cclxuLyoqXHJcbiAqIEdldCB0aGUgcmVzb2x1dGlvbiBnaXZlbiB0aGUgem9vbSBsZXZlbFxyXG4gKiBAcGFyYW0ge251bWJlcn0gem9vbUxldmVsIC0gdGhlIHpvb20gbGV2ZWxcclxuICogQHJldHVybnMge251bWJlcnwqfSB0aGUgbWFwIHJlc29sdXRpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB6b29tVG9SZXNvbHV0aW9uKHpvb21MZXZlbCkge1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB6b29tTGV2ZWwgPT0gJ251bWJlcicpIHtcclxuICAgICAgICBpZiAoem9vbUxldmVsICUgMSA9PT0gMCAmJiB6b29tTGV2ZWwgPj0gMCAmJiB6b29tTGV2ZWwgPD0gMjgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIF96b29tUmVzTG9va3VwW3pvb21MZXZlbF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYGludmFsaWQgem9vbSBsZXZlbCBwcm92aWRlZDogJHt6b29tTGV2ZWx9YCk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxufVxyXG5ubS56b29tVG9SZXNvbHV0aW9uID0gem9vbVRvUmVzb2x1dGlvbjtcclxuXHJcblxyXG4vKipcclxuICogR2V0IHJlc29sdXRpb24gZnJvbSB0aGUgem9vbSBsZXZlbFxyXG4gKiBAcGFyYW0ge251bWJlcn0gcmVzb2x1dGlvbiAtIHRoZSByZXNvbHV0aW9uXHJcbiAqIEByZXR1cm5zIHtudW1iZXJ8Kn0gdGhlIHpvb20gbGV2ZWxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZXNvbHV0aW9uVG9ab29tKHJlc29sdXRpb24pe1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBfem9vbVJlc0xvb2t1cC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgaWYgKHJlc29sdXRpb24gPj0gX3pvb21SZXNMb29rdXBbaV0gKXtcclxuICAgICAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAwO1xyXG59XHJcblxyXG5ubS5yZXNvbHV0aW9uVG9ab29tID0gcmVzb2x1dGlvblRvWm9vbTtcclxuIl19 /***/ }), /* 15 */, @@ -1899,13 +1899,12 @@ var LayerLegend = (function () { }()); nm.LayerLegend = LayerLegend; exports.default = LayerLegend; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJMZWdlbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJMYXllckxlZ2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsMkNBQXNDO0FBQ3RDLDZDQUF3QztBQUN4QyxnREFBMkM7QUFFM0MsSUFBSSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNoQywwQkFBNkI7QUFFN0I7SUFpQkk7Ozs7Ozs7T0FPRztJQUNILG9CQUFZLFdBQVksRUFBRSxNQUFPO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUV0QixFQUFFLENBQUMsQ0FBQyxPQUFPLFdBQVcsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFD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RSxPQUFPLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUwsa0JBQUM7QUFBRCxDQUFDLEFBbEpELElBa0pDO0FBRUQsRUFBRSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDN0Isa0JBQWUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTYvMjAxNS5cclxuICovXHJcblxyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFrZUd1aWQgZnJvbSAnLi4vdXRpbC9tYWtlR3VpZCc7XHJcbmltcG9ydCBtYXBNb3ZlIGZyb20gJy4uL29sSGVscGVycy9tYXBNb3ZlJztcclxuXHJcbmxldCBubSA9IHByb3ZpZGUoJ2NvbGxlY3Rpb25zJyk7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcblxyXG5jbGFzcyBMYXllckdyb3VwIHtcclxuICAgIGdyb3VwTGF5ZXJzOiBhbnk7XHJcbiAgICBncm91cExheWVyc0xvb2t1cDogYW55O1xyXG4gICAgZ3JvdXBHcm91cHNMb29rdXA6IGFueTtcclxuICAgIGdyb3VwR3JvdXBzOiBhbnk7XHJcbiAgICBpdGVtSWRBcnJheTogYW55O1xyXG4gICAgZ3JvdXBJZDogYW55O1xyXG4gICAgZ3JvdXBOYW1lOiBhbnk7XHJcbiAgICBhbGxMYXllckFycmF5OiBhbnk7XHJcbiAgICBwYXJlbnQ6IGFueTtcclxuICAgIGFsbEdyb3VwQXJyYXk6IGFueTtcclxuICAgIGFsbEdyb3VwTG9va3VwOiBhbnk7XHJcbiAgICBhbGxMYXllckxvb2t1cDogYW55O1xyXG4gICAgY29sbGFwc2U6IGFueTtcclxuICAgIGFkZENoZWNrOiBhbnk7XHJcbiAgICBsYXllclBhcmVudExvb2t1cDogYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbZ3JvdXBDb25maWc9e31dIC0gZ3JvdXAgY29uZmlndXJhdGlvbiBvYmplY3RcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBncm91cENvbmZpZy5ncm91cE5hbWUgLSB0aGUgZ3JvdXAgbmFtZVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZ3JvdXBDb25maWcuY29sbGFwc2U9ZmFsc2VdIC0gaWYgdGhlIGdyb3VwIHNob3VsZCBiZSBjb2xsYXBzZWQgaW5pdGlhbGx5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtncm91cENvbmZpZy5hZGRDaGVjaz10cnVlXSAtIGlmIHRoZSBncm91cCBzaG91bGQgaGF2ZSBhIGNoZWNrYm94IGNvbnRyb2xsaW5nIHZpc2liaWxpdHkgb2YgYWxsIGxheWVyc1xyXG4gICAgICogQHBhcmFtIHtMYXllckdyb3VwfSBbcGFyZW50PXVuZGVmaW5lZF0gLSB0aGUgcGFyZW50IGdyb3VwXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGdyb3VwQ29uZmlnPywgcGFyZW50Pykge1xyXG4gICAgICAgIHRoaXMuZ3JvdXBMYXllcnMgPSBbXTtcclxuICAgICAgICB0aGlzLmdyb3VwTGF5ZXJzTG9va3VwID0ge307XHJcbiAgICAgICAgdGhpcy5ncm91cEdyb3VwcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuZ3JvdXBHcm91cHNMb29rdXAgPSB7fTtcclxuICAgICAgICB0aGlzLml0ZW1JZEFycmF5ID0gW107XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgZ3JvdXBDb25maWcgPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnQgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLmdyb3VwSWQgPSAncm9vdCc7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBOYW1lID0gJ3Jvb3QnO1xyXG4gICAgICAgICAgICB0aGlzLmFsbEdyb3VwTG9va3VwID0ge3Jvb3Q6IHRoaXN9O1xyXG4gICAgICAgICAgICB0aGlzLmFsbEdyb3VwQXJyYXkgPSBbdGhpc107XHJcbiAgICAgICAgICAgIHRoaXMuYWxsTGF5ZXJBcnJheSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmFsbExheWVyTG9va3VwID0ge307XHJcbiAgICAgICAgICAgIHRoaXMubGF5ZXJQYXJlbnRMb29rdXAgPSB7fTtcclxuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmFkZENoZWNrID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cElkID0gbWFrZUd1aWQoKTtcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBOYW1lID0gZ3JvdXBDb25maWcuZ3JvdXBOYW1lO1xyXG4gICAgICAgICAgICB0aGlzLmNvbGxhcHNlID0gdHlwZW9mICBncm91cENvbmZpZy5jb2xsYXBzZSA9PSAnYm9vbGVhbicgPyBncm91cENvbmZpZy5jb2xsYXBzZSA6IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmFkZENoZWNrID0gdHlwZW9mICBncm91cENvbmZpZy5hZGRDaGVjayA9PSAnYm9vbGVhbicgPyBncm91cENvbmZpZy5hZGRDaGVjayA6IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBncm91cENvbmZpZyAtIGNvbmZpZ3VyYXRpb24gb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZ3JvdXBDb25maWcuZ3JvdXBOYW1lIC0gdGhlIGdyb3VwIG5hbWVcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZ3JvdXBDb25maWcuY29sbGFwc2UgaWYgdGhlIGdyb3VwIHNob3VsZCBiZSBjb2xsYXBzZWQgaW5pdGlhbGx5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGdyb3VwQ29uZmlnLmFkZENoZWNrIGlmIHRoZSBncm91cCBzaG91bGQgaGF2ZSBhIGNoZWNrYm94IGNvbnRyb2xsaW5nIHZpc2liaWxpdHkgb2YgYWxsIGxheWVyc1xyXG4gICAgICogQHBhcmFtIHtBcnJheTxMYXllckdyb3VwPn0gcGFyZW50cyBwYXJlbnQgZ3JvdXBzXHJcbiAgICAgKiBAcmV0dXJucyB7TGF5ZXJHcm91cH0gdGhlIGxheWVyIGdyb3VwIGp1c3QgYWRkZWRcclxuICAgICAqL1xyXG4gICAgYWRkR3JvdXAoZ3JvdXBDb25maWcsIHBhcmVudHMpIHtcclxuICAgICAgICBsZXQgcGFyZW50O1xyXG4gICAgICAgIGlmIChwYXJlbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50c1twYXJlbnRzLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHBhcmVudCA9ICdyb290JztcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAdHlwZSB7TGF5ZXJHcm91cH1cclxuICAgICAgICAgKi9cclxuICAgICAgICBsZXQgcGFyZW50R3JvdXAgPSB0aGlzLmFsbEdyb3VwTG9va3VwW3BhcmVudF07XHJcbiAgICAgICAgbGV0IG5ld0dyb3VwID0gbmV3IExheWVyR3JvdXAoZ3JvdXBDb25maWcsIHBhcmVudEdyb3VwKTtcclxuICAgICAgICB0aGlzLmFsbEdyb3VwTG9va3VwW25ld0dyb3VwLmdyb3VwSWRdID0gbmV3R3JvdXA7XHJcbiAgICAgICAgdGhpcy5hbGxHcm91cEFycmF5LnB1c2gobmV3R3JvdXApO1xyXG5cclxuICAgICAgICBwYXJlbnRHcm91cC5ncm91cEdyb3Vwcy5wdXNoKG5ld0dyb3VwKTtcclxuICAgICAgICBwYXJlbnRHcm91cC5ncm91cEdyb3Vwc0xvb2t1cFtuZXdHcm91cC5ncm91cElkXSA9IG5ld0dyb3VwO1xyXG5cclxuICAgICAgICBpZiAocGFyZW50R3JvdXAuaXRlbUlkQXJyYXkuaW5kZXhPZihuZXdHcm91cC5ncm91cElkKSA+IDApIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2cobmV3R3JvdXAuZ3JvdXBJZCk7XHJcbiAgICAgICAgICAgIHRocm93ICdsYXllciBhbmQgZ3JvdXAgaWRzIG11c3QgYmUgdW5pcXVlJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcGFyZW50R3JvdXAuaXRlbUlkQXJyYXkucHVzaChuZXdHcm91cC5ncm91cElkKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ld0dyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJCYXNlfSBuZXdMYXllciB0aGUgbGF5ZXIgdG8gYmUgYWRkZWRcclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHBhcmVudHMgYXJyYXlcclxuICAgICAqL1xyXG4gICAgYWRkTGVnZW5kTGF5ZXIobmV3TGF5ZXIsIHBhcmVudHMpIHtcclxuICAgICAgICBsZXQgcGFyZW50O1xyXG4gICAgICAgIGlmIChwYXJlbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50c1twYXJlbnRzLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHBhcmVudCA9ICdyb290JztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWxsTGF5ZXJMb29rdXBbbmV3TGF5ZXIuaWRdID0gbmV3TGF5ZXI7XHJcbiAgICAgICAgdGhpcy5hbGxMYXllckFycmF5LnB1c2gobmV3TGF5ZXIpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAdHlwZSB7TGF5ZXJHcm91cH1cclxuICAgICAgICAgKi9cclxuICAgICAgICBsZXQgcGFyZW50R3JvdXAgPSB0aGlzLmFsbEdyb3VwTG9va3VwW3BhcmVudF07XHJcblxyXG4gICAgICAgIHBhcmVudEdyb3VwLmdyb3VwTGF5ZXJzLnB1c2gobmV3TGF5ZXIpO1xyXG4gICAgICAgIHBhcmVudEdyb3VwLmdyb3VwTGF5ZXJzTG9va3VwW25ld0xheWVyLmlkXSA9IG5ld0xheWVyO1xyXG4gICAgICAgIGlmIChwYXJlbnRHcm91cC5pdGVtSWRBcnJheS5pbmRleE9mKG5ld0xheWVyLmlkKSA+IDApIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2cobmV3TGF5ZXIuaWQpO1xyXG4gICAgICAgICAgICB0aHJvdyAnbGF5ZXIgYW5kIGdyb3VwIGlkcyBtdXN0IGJlIHVuaXF1ZSc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBhcmVudEdyb3VwLml0ZW1JZEFycmF5LnB1c2gobmV3TGF5ZXIuaWQpO1xyXG5cclxuICAgICAgICB0aGlzLmxheWVyUGFyZW50TG9va3VwW25ld0xheWVyLmlkXSA9IHBhcmVudEdyb3VwO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBnZXRMZWdlbmRIdG1sKGxlZ2VuZElkLCBvcHRpb25zKSB7XHJcblxyXG5cclxuICAgICAgICBsZXQgbGVnZW5kSHRtbCA9IGA8dWwgaWQ9XCIke2xlZ2VuZElkfVwiIGNsYXNzPVwibGVnZW5kLWNvbnRhaW5lclwiPmA7XHJcblxyXG4gICAgICAgIGxlZ2VuZEh0bWwgKz0gYDxsaT4ke29wdGlvbnMubGVnZW5kVGl0bGV9PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNoZWNrZWQgaWQ9XCJzdXBwcmVzcy1ieS1leHRlbnQtJHtsZWdlbmRJZH1cIiBjbGFzcz1cInN1cHByZXNzLWJ5LWV4dGVudFwiPmAgK1xyXG4gICAgICAgICAgICBgPGxhYmVsIHRpdGxlPVwiU3VwcHJlc3MgbGF5ZXJzIG5vdCB2aXNpYmxlIGF0IHRoaXMgem9vbSBsZXZlbFwiIGZvcj1cInN1cHByZXNzLWJ5LWV4dGVudC0ke2xlZ2VuZElkfVwiPmAgK1xyXG4gICAgICAgICAgICBgPHNwYW4+PC9zcGFuPmAgK1xyXG4gICAgICAgICAgICBgPC9sYWJlbD48L2xpPmA7XHJcblxyXG4gICAgICAgIGxlZ2VuZEh0bWwgKz0gdGhpcy5fYnVpbGRMZWdlbmQodGhpcy5pdGVtSWRBcnJheSwgdGhpcywgb3B0aW9ucy5sYXllckRpdkNsYXNzZXMpICsgJzwvdWw+JztcclxuXHJcbiAgICAgICAgcmV0dXJuIGxlZ2VuZEh0bWw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBpdGVtSWRzIHRoZSBpdGVtcyB0byBwcm9jZXNzXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyR3JvdXB9IHRoZUdyb3VwIG5ldyBncm91cFxyXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2xheWVyRGl2Q2xhc3Nlcz1bXV0gb3B0aW9uYWwgY2xhc3NlcyB0byBhcHBseSB0byB0aGUgbGF5ZXIgZGl2c1xyXG4gICAgICogQHN0YXRpY1xyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gaHRtbCBzdHJpbmdcclxuICAgICAqL1xyXG4gICAgX2J1aWxkTGVnZW5kKGl0ZW1JZHMsIHRoZUdyb3VwLCBsYXllckRpdkNsYXNzZXMpIHtcclxuXHJcbiAgICAgICAgaWYgKGl0ZW1JZHMubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHRoZUhtbCA9ICcnO1xyXG5cclxuICAgICAgICBsZXQgaXRlbUlkID0gaXRlbUlkc1swXTtcclxuXHJcbiAgICAgICAgaWYgKHRoZUdyb3VwLmdyb3VwTGF5ZXJzTG9va3VwW2l0ZW1JZF0pIHtcclxuXHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBAdHlwZSB7TGF5ZXJCYXNlfVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgbGV0IGx5ciA9IHRoZUdyb3VwLmdyb3VwTGF5ZXJzTG9va3VwW2l0ZW1JZF07XHJcbiAgICAgICAgICAgIHRoZUhtbCArPSBgPGxpIGlkPVwiJHtseXIuaWR9LWxheWVyLWxpXCIgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbGkgJHtsYXllckRpdkNsYXNzZXMuam9pbignICcpfVwiPmAgKyBseXIuZ2V0TGVnZW5kRGl2KCkgKyAnPC9saT4nO1xyXG5cclxuXHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGVHcm91cC5ncm91cEdyb3Vwc0xvb2t1cFtpdGVtSWRdKSB7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiB0eXBlIHtMYXllckdyb3VwfVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgbGV0IG90aGVyR3JvdXAgPSB0aGVHcm91cC5ncm91cEdyb3Vwc0xvb2t1cFtpdGVtSWRdO1xyXG5cclxuICAgICAgICAgICAgdGhlSG1sICs9IGA8bGk+YDtcclxuICAgICAgICAgICAgdGhlSG1sICs9IGA8ZGl2IGlkPVwiJHtvdGhlckdyb3VwLmdyb3VwSWR9LWxlZ2VuZC1sYXllci1kaXZcIiBgICtcclxuICAgICAgICAgICAgICAgIGBjbGFzcz1cImxlZ2VuZC1sYXllci1ncm91cCAgJHtsYXllckRpdkNsYXNzZXMuam9pbignICcpfVwiPmA7XHJcblxyXG4gICAgICAgICAgICBpZiAob3RoZXJHcm91cC5hZGRDaGVjaykge1xyXG4gICAgICAgICAgICAgICAgdGhlSG1sICs9IGA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2hlY2tlZCBpZD1cIiR7b3RoZXJHcm91cC5ncm91cElkfS1ncm91cC1jaGNrXCI+YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYDxsYWJlbCBmb3I9XCIke290aGVyR3JvdXAuZ3JvdXBJZH0tZ3JvdXAtY2hja1wiIHRpdGxlPVwiQ2xpY2sgYXJyb3cgdG8gZXhwYW5kIG9yIGNvbGxhcHNlXCI+JHtvdGhlckdyb3VwLmdyb3VwTmFtZX08L2xhYmVsPmA7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGVIbWwgKz0gYDxsYWJlbCB0aXRsZT1cIkNsaWNrIGFycm93IHRvIGV4cGFuZCBvciBjb2xsYXBzZVwiPiR7b3RoZXJHcm91cC5ncm91cE5hbWV9PC9sYWJlbD5gO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGVIbWwgKz0gYDxzcGFuIHRpdGxlPVwiRXhwYW5kL0NvbGxhcHNlXCIgY2xhc3M9XCJsYXllci1ncm91cC1leHBhbmRlcmA7XHJcbiAgICAgICAgICAgIHRoZUhtbCArPSBgJHtvdGhlckdyb3VwLmNvbGxhcHNlID8gJyBsZWdlbmQtbGF5ZXItZ3JvdXAtaW5pdGlhbC1jb2xsYXBzZScgOiAnJ31cIj5gO1xyXG4gICAgICAgICAgICB0aGVIbWwgKz0gb3RoZXJHcm91cC5jb2xsYXBzZSA/ICcmIzk2NTQ7JyA6ICcmIzk2NjA7JztcclxuICAgICAgICAgICAgdGhlSG1sICs9ICc8L3NwYW4+JztcclxuXHJcbiAgICAgICAgICAgIC8vcGFyZW50cy5wdXNoKGdyb3VwSWQpO1xyXG4gICAgICAgICAgICB0aGVIbWwgKz0gJzx1bD4nICsgdGhpcy5fYnVpbGRMZWdlbmQob3RoZXJHcm91cC5pdGVtSWRBcnJheSwgb3RoZXJHcm91cCwgbGF5ZXJEaXZDbGFzc2VzKSArICc8L3VsPic7XHJcbiAgICAgICAgICAgIHRoZUhtbCArPSAnPC9kaXY+JztcclxuICAgICAgICAgICAgdGhlSG1sICs9ICc8L2xpPic7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhlSG1sICsgdGhpcy5fYnVpbGRMZWdlbmQoaXRlbUlkcy5zbGljZSgxKSwgdGhlR3JvdXAsIGxheWVyRGl2Q2xhc3Nlcyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBhIHdyYXBwZXIgdG8gbWFrZSBhIGxlZ2VuZFxyXG4gKi9cclxuY2xhc3MgTGF5ZXJMZWdlbmQge1xyXG5cclxuICAgICRkaXZFbGVtZW50OiBhbnk7XHJcbiAgICBfbGVnZW5kSXRlbXM6IGFueTtcclxuICAgIGxheWVyR3JvdXA6IGFueTtcclxuICAgIGxlZ2VuZElkOiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtBcnJheX0gbGVnZW5kSXRlbXMgYXJyYXkgb2YgbGF5ZXJzIG9yIG9iamVjdHMgd2l0aCB7Z3JvdXBOYW1lOiAge3N0cmluZ30sIGNvbGxhcHNlOiB7Ym9vbGVhbn0sIGFkZENoZWNrOiB7Ym9vbGVhbn0sIGl0ZW1zOiB7QXJyYXl9fVxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGRpdklkIHRoZSBkaXYgd2hlcmUgdGhlIGxlZ2VuZCBzaG91bGQgYmUgYWRkZWRcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIGZvciBsZWdlbmRcclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtvcHRpb25zLmxheWVyRGl2Q2xhc3Nlcz1bXV0gb3B0aW9uYWwgYXJyYXkgb2YgY2xhc3NlcyB0byBiZSBhcHBsaWVkIHRvIHRoZSBsYXllciBsZWdlbmQgZGl2cyBmb3IgY3VzdG9tIHN0eWxpbmdcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5sZWdlbmRUaXRsZT1MZWdlbmRdIHRoZSBsZWdlbmQgdGl0bGVcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuc2NhbGVEZXBlbmRlbnQ9dHJ1ZV0gaWYgbGVnZW5kIGRpc3BsYXkgaXMgc2NhbGUgZGVwZW5kZW50XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGxlZ2VuZEl0ZW1zLCBkaXZJZCwgb3B0aW9ucykge1xyXG4gICAgICAgIGZvciAobGV0IGkgb2YgbGVnZW5kSXRlbXMpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBpID09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyAndW5kZWZpbmVkIGl0ZW0gcGFzc2VkIGluIGFycmF5IHRvIGxlZ2VuZCBjb25zdHJ1Y3Rvcic7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xyXG5cclxuICAgICAgICBvcHRpb25zLmxlZ2VuZFRpdGxlID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kVGl0bGUgPT0gJ3N0cmluZycgPyBvcHRpb25zLmxlZ2VuZFRpdGxlIDogJ0xlZ2VuZCc7XHJcbiAgICAgICAgb3B0aW9ucy5zY2FsZURlcGVuZGVudCA9IHR5cGVvZiBvcHRpb25zLnNjYWxlRGVwZW5kZW50ID09ICdib29sZWFuJyA/IG9wdGlvbnMuc2NhbGVEZXBlbmRlbnQgOiB0cnVlO1xyXG4gICAgICAgIG9wdGlvbnMubGF5ZXJEaXZDbGFzc2VzID0gb3B0aW9ucy5sYXllckRpdkNsYXNzZXMgfHwgW107XHJcblxyXG4gICAgICAgIC8vIGlmIGxlZ2VuZCBkaXNwbGF5IGlzIHNjYWxlIGRlcGVuZGVudCwgbWFrZSBzdXJlIHRoZSBtYXBNb3ZlIG9iamVjdCBpcyBpbml0aWFsaXplZCBmaXJzdFxyXG4gICAgICAgIGlmIChvcHRpb25zLnNjYWxlRGVwZW5kZW50KSB7XHJcbiAgICAgICAgICAgIG1hcE1vdmUuY2hlY2tJbml0KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLiRkaXZFbGVtZW50ID0gJCgnIycgKyBkaXZJZCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZEl0ZW1zID0gbGVnZW5kSXRlbXM7XHJcblxyXG4gICAgICAgIHRoaXMubGF5ZXJHcm91cCA9IG5ldyBMYXllckdyb3VwKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2J1aWxkVHJlZShsZWdlbmRJdGVtcyk7XHJcblxyXG4gICAgICAgIHRoaXMubGVnZW5kSWQgPSBtYWtlR3VpZCgpO1xyXG5cclxuICAgICAgICB0aGlzLiRkaXZFbGVtZW50LmFwcGVuZCh0aGlzLmxheWVyR3JvdXAuZ2V0TGVnZW5kSHRtbCh0aGlzLmxlZ2VuZElkLCBvcHRpb25zKSk7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGwgb2YgdGhpcy5sYXllckdyb3VwLmFsbExheWVyQXJyYXkpe1xyXG4gICAgICAgICAgICBsLmFwcGx5Q29sbGFwc2UoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgLy8vLyBpZiBsZWdlbmQgZGlzcGxheSBpcyBzY2FsZSBkZXBlbmRlbnQsIG1ha2Ugc3VyZSB0aGUgbWFwTW92ZSBvYmplY3QgaXMgaW5pdGlhbGl6ZWQgZmlyc3RcclxuICAgICAgICBpZiAob3B0aW9ucy5zY2FsZURlcGVuZGVudCkge1xyXG4gICAgICAgICAgICBtYXBNb3ZlLmNoZWNrSW5pdCgpO1xyXG5cclxuICAgICAgICAgICAgbWFwTW92ZS5hZGRDYWxsYmFjayhmdW5jdGlvbiAoZXh0LCB6b29tLCBldnQpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGV2dCA9PSAndW5kZWZpbmVkJyB8fCBldnQgPT0gJ2NoYW5nZTpyZXNvbHV0aW9uJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGx5ciBvZiB0aGlzLmxheWVyR3JvdXAuYWxsTGF5ZXJBcnJheSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgJGx5ckxpID0gJCgnIycgKyBseXIuaWQgKyAnLWxheWVyLWxpJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh6b29tID4gbHlyLm1heFpvb20gfHwgem9vbSA8IGx5ci5taW5ab29tKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbHlyTGkuYWRkQ2xhc3MoJ2xheWVyLW5vdC12aXNpYmxlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbHlyTGkucmVtb3ZlQ2xhc3MoJ2xheWVyLW5vdC12aXNpYmxlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sIHRoaXMsIDEwMCwgdHJ1ZSwgJ2xlZ2VuZDEnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIDxlZGl0b3ItZm9sZCBkZXNjPVwiYWRkIGV2ZW50IGxpc3RlbmVyc1wiPlxyXG5cclxuICAgICAgICB0aGlzLiRkaXZFbGVtZW50LmZpbmQoXCIuc3VwcHJlc3MtYnktZXh0ZW50XCIpLmNoYW5nZShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGxldCBsZWdlbmRMYXllckxpcyA9ICQoJy5sZWdlbmQtbGF5ZXItbGknKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tlZCkge1xyXG4gICAgICAgICAgICAgICAgbGVnZW5kTGF5ZXJMaXMucmVtb3ZlQ2xhc3MoJ2xheWVyLWZvcmNlLXNob3cnKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGxlZ2VuZExheWVyTGlzLmFkZENsYXNzKCdsYXllci1mb3JjZS1zaG93Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuJGRpdkVsZW1lbnQuZmluZCgnLmxlZ2VuZC1jaGVjaycpLmNoYW5nZShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGxldCBseXJJZCA9IHRoaXMuaWQucmVwbGFjZSgnLWxlZ2VuZC1sYXllci1jaGVjaycsICcnKTtcclxuICAgICAgICAgICAgX3RoaXMubGF5ZXJHcm91cC5hbGxMYXllckxvb2t1cFtseXJJZF0udmlzaWJsZSA9IHRoaXMuY2hlY2tlZDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy4kZGl2RWxlbWVudC5maW5kKCcubGVnZW5kLWxheWVyLWdyb3VwID4gaW5wdXRbdHlwZT1jaGVja2JveF0nKS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAkKHRoaXMpLnNpYmxpbmdzKCd1bCcpLmZpbmQoJ2lucHV0W3R5cGU9Y2hlY2tib3hdJykucHJvcCgnY2hlY2tlZCcsIHRoaXMuY2hlY2tlZCkudHJpZ2dlcignY2hhbmdlJyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuJGRpdkVsZW1lbnQuZmluZCgnLmxheWVyLWdyb3VwLWV4cGFuZGVyJykuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBsZXQgJHRoaXMgPSAkKHRoaXMpO1xyXG4gICAgICAgICAgICAkdGhpcy5yZW1vdmVDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWluaXRpYWwtY29sbGFwc2UnKTtcclxuXHJcbiAgICAgICAgICAgICR0aGlzLnNpYmxpbmdzKCd1bCcpLnNsaWRlVG9nZ2xlKCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoJHRoaXMuaGFzQ2xhc3MoJ2xlZ2VuZC1sYXllci1ncm91cC1jb2xsYXBzZWQnKSl7XHJcbiAgICAgICAgICAgICAgICAkdGhpcy5yZW1vdmVDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpO1xyXG4gICAgICAgICAgICAgICAgJHRoaXMuaHRtbCgnJiM5NjYwOycpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgJHRoaXMuYWRkQ2xhc3MoJ2xlZ2VuZC1sYXllci1ncm91cC1jb2xsYXBzZWQnKTtcclxuICAgICAgICAgICAgICAgICR0aGlzLmh0bWwoJyYjOTY1NDsnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLiRkaXZFbGVtZW50LmZpbmQoJy5sZWdlbmQtbGF5ZXItZ3JvdXAtaW5pdGlhbC1jb2xsYXBzZScpLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgLy8gPC9lZGl0b3ItZm9sZD5cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbbGVnZW5kSXRlbXM9dGhpcy5fbGF5ZXJDb25maWddIHRoZSBsZWdlbmQgaXRlbXNcclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtwYXJlbnRzPVtdXSB0aGUgb3JkZXJlZCBsaXN0IG9mIGdyb3VwcyBpbiB3aGljaCB0aGlzIGl0ZW0gaXMgYSBtZW1iZXJcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIF9idWlsZFRyZWUobGVnZW5kSXRlbXMsIHBhcmVudHM/KSB7XHJcblxyXG4gICAgICAgIGlmIChsZWdlbmRJdGVtcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgb25lSXRlbSA9IGxlZ2VuZEl0ZW1zWzBdO1xyXG5cclxuICAgICAgICAvL3Jlc2V0IHRoZSBwYXJlbnQgaWYgdGhlIGl0ZW0gaXMgaW4gdGhlIGJhc2UgYXJyYXlcclxuICAgICAgICBpZiAodGhpcy5fbGVnZW5kSXRlbXMuaW5kZXhPZihvbmVJdGVtKSA+IC0xIHx8IHR5cGVvZiBwYXJlbnRzID09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIHBhcmVudHMgPSBbXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb25lSXRlbVsnZ3JvdXBOYW1lJ10gIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIGxldCBncm91cEl0ZW0gPSBsZWdlbmRJdGVtc1swXTtcclxuICAgICAgICAgICAgbGV0IG5ld0dyb3VwID0gdGhpcy5sYXllckdyb3VwLmFkZEdyb3VwKGdyb3VwSXRlbSwgcGFyZW50cyk7XHJcbiAgICAgICAgICAgIHBhcmVudHMucHVzaChuZXdHcm91cC5ncm91cElkKTtcclxuICAgICAgICAgICAgdGhpcy5fYnVpbGRUcmVlKGdyb3VwSXRlbS5pdGVtcywgcGFyZW50cyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEB0eXBlIHtMYXllckJhc2V9XHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBsZXQgbGF5ZXJJdGVtID0gbGVnZW5kSXRlbXNbMF07XHJcblxyXG4gICAgICAgICAgICB0aGlzLmxheWVyR3JvdXAuYWRkTGVnZW5kTGF5ZXIobGF5ZXJJdGVtLCBwYXJlbnRzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2J1aWxkVHJlZShsZWdlbmRJdGVtcy5zbGljZSgxKSwgcGFyZW50cyk7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5ubS5MYXllckxlZ2VuZCA9IExheWVyTGVnZW5kO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckxlZ2VuZDtcclxuIl19 /***/ }), /* 17 */, /* 18 */, -/* 19 */, -/* 20 */ +/* 19 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2204,10 +2203,10 @@ var LayerBaseVector = (function (_super) { exports.LayerBaseVector = LayerBaseVector; nm.LayerBaseVector = LayerBaseVector; exports.default = LayerBaseVector; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJCYXNlVmVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJCYXNlVmVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHlDQUF3RDtBQUN4RCxnREFBMkM7QUFFM0MsMkNBQXNDO0FBQ3RDLDhCQUFpQztBQUNqQywwQkFBNkI7QUFFN0IsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQTRCN0I7Ozs7R0FJRztBQUNIO0lBQXFDLG1DQUFTO0lBZTFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F3Qkc7SUFDSCx5QkFBWSxHQUFXLEVBQUUsT0FBb0M7UUFBcEMsd0JBQUEsRUFBQSxZQUFvQztRQUE3RCxZQUNJLGtCQUFNLEdBQUcsRUFBRSxPQUFPLENBQUMsU0F3RHRCO1FBdERHLE9BQU8sR0FBRyxPQUFpQyxDQUFDO1FBRTVDLGtEQUFrRDtRQUNsRCxFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEIsS0FBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQztRQUVELEtBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxPQUFPLENBQUMsS0FBSyxJQUFJLFdBQVcsR0FBRyxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUU5RSxFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNmLEtBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzFCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLEtBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQzdGLENBQUM7UUFFRCxLQUFJLENB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QUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QyxDQUFDO1FBQ0wsQ0FBQzs7O09BYkE7SUFtQkQsc0JBQUksbUNBQU07UUFKVjs7O1dBR0c7YUFDSDtZQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFzQixDQUFDO1FBQ2hELENBQUM7OztPQUFBO0lBS0Qsc0JBQUkscUNBQVE7UUFIWjs7V0FFRzthQUNIO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckMsQ0FBQzs7O09BQUE7SUFLRCxzQkFBSSxvQ0FBTztRQUhYOztXQUVHO2FBQ0g7WUFDSSxNQUFNLENBQUMsaUJBQU0sVUFBVSxXQUFxQixDQUFDO1FBQ2pELENBQUM7OztPQUFBO0lBRVMsbUNBQVMsR0FBbkIsVUFBb0IsSUFBWTtRQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0wsc0JBQUM7QUFBRCxDQUFDLEFBaFJELENBQXFDLHFCQUFTLEdBZ1I3QztBQWhSWSwwQ0FBZTtBQWtSNUIsRUFBRSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7QUFDckMsa0JBQWUsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMYXllckJhc2UsIExheWVyQmFzZU9wdGlvbnN9IGZyb20gJy4vTGF5ZXJCYXNlJztcclxuaW1wb3J0IG1hcE1vdmUgZnJvbSAnLi4vb2xIZWxwZXJzL21hcE1vdmUnO1xyXG5pbXBvcnQgTWFwTW92ZUNscyBmcm9tICcuLi9vbEhlbHBlcnMvbWFwTW92ZUNscydcclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcblxyXG5jb25zdCBubSA9IHByb3ZpZGUoJ2xheWVycycpO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBtYWtlTWFwTW92ZVBhcmFtcyB7XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gbHlyXHJcbiAgICAgKiBAcGFyYW0gZXh0ZW50XHJcbiAgICAgKiBAcGFyYW0gem9vbUxldmVsXHJcbiAgICAgKi9cclxuICAgIChseXI6IExheWVyQmFzZVZlY3RvciwgZXh0ZW50OiBBcnJheTxudW1iZXI+LCB6b29tTGV2ZWw/OiBudW1iZXIpOiBhbnlcclxufVxyXG5cclxuXHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckJhc2VWZWN0b3JPcHRpb25zIGV4dGVuZHMgTGF5ZXJCYXNlT3B0aW9uc3tcclxuICAgIGF1dG9Mb2FkPzogYm9vbGVhbjtcclxuICAgIHN0eWxlPzogb2wuc3R5bGUuU3R5bGV8QXJyYXk8b2wuc3R5bGUuU3R5bGU+fG9sLlN0eWxlRnVuY3Rpb247XHJcbiAgICBvbkRlbWFuZD86IGJvb2xlYW47XHJcbiAgICBvbkRlbWFuZERlbGF5PzogbnVtYmVyO1xyXG4gICAgbWFwTW92ZU1ha2VHZXRQYXJhbXM/OiBtYWtlTWFwTW92ZVBhcmFtcztcclxuICAgIG1hcE1vdmVPYmo/OiBNYXBNb3ZlQ2xzO1xyXG4gICAgcmVuZGVyT3JkZXI/OiAoYTogb2wuRmVhdHVyZSwgYjogb2wuRmVhdHVyZSkgPT4gbnVtYmVyO1xyXG5cclxufVxyXG5cclxuXHJcblxyXG4vKipcclxuICogVGhlIFZlY3RvciBsYXllciBiYXNlXHJcbiAqIEBhdWdtZW50cyBMYXllckJhc2VcclxuICogQGFic3RyYWN0XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTGF5ZXJCYXNlVmVjdG9yIGV4dGVuZHMgTGF5ZXJCYXNlIHtcclxuICAgIF9vbExheWVyOiBvbC5sYXllci5WZWN0b3I7XHJcbiAgICBfc291cmNlOiBvbC5zb3VyY2UuVmVjdG9yO1xyXG4gICAgX3N0eWxlOiBvbC5zdHlsZS5TdHlsZXxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuU3R5bGVGdW5jdGlvbjtcclxuICAgIF9hdXRvTG9hZDogYm9vbGVhbjtcclxuICAgIF9vbkRlbWFuZDogYm9vbGVhbjtcclxuICAgIF9vbkRlbWFuZERlbGF5OiBudW1iZXI7XHJcbiAgICBfbWFwTW92ZU1ha2VHZXRQYXJhbXM6IG1ha2VNYXBNb3ZlUGFyYW1zO1xyXG4gICAgX21hcE1vdmVQYXJhbXM6IGFueTtcclxuICAgIF9tYXBNb3ZlOiBNYXBNb3ZlQ2xzO1xyXG4gICAgX3Byb2plY3Rpb25NYXA6IG9sLnByb2ouUHJvamVjdGlvbjtcclxuICAgIF9wcm9qZWN0aW9uNDMyNjogb2wucHJvai5Qcm9qZWN0aW9uO1xyXG5cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYmFzZSB2ZWN0b3IgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgLSBwYXNzIGFuIGVtcHR5IHN0cmluZyB0byBwcmV2ZW50IGRlZmF1bHQgbG9hZCBhbmQgYWRkIGZyb20gYSBqc29uIHNvdXJjZVxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgLSBjb25maWdcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5pZF0gLSBsYXllciBpZFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLm5hbWU9VW5uYW1lZCBMYXllcl0gLSBsYXllciBuYW1lXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMub3BhY2l0eT0xXSAtIG9wYWNpdHlcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMudmlzaWJsZT10cnVlXSAtIGRlZmF1bHQgdmlzaWJsZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSAtIG1pbiB6b29tIGxldmVsLCAwIC0gMjhcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5tYXhab29tPXVuZGVmaW5lZF0gLSBtYXggem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMucGFyYW1zPXt9XSB0aGUgZ2V0IHBhcmFtZXRlcnMgdG8gaW5jbHVkZSB0byByZXRyaWV2ZSB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56SW5kZXg9MF0gdGhlIHogaW5kZXggZm9yIHRoZSBsYXllclxyXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbn0gW29wdGlvbnMubG9hZENhbGxiYWNrXSBmdW5jdGlvbiB0byBjYWxsIG9uIGxvYWQsIGNvbnRleHQgdGhpcyBpcyB0aGUgbGF5ZXIgb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENvbGxhcHNlPWZhbHNlXSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGJlIGluaXRpYWxseSBjb2xsYXBzZWRcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ2hlY2tib3g9dHJ1ZV0gaWYgdGhlIGxlZ2VuZCBpdGVtIHNob3VsZCBoYXZlIGEgY2hlY2tib3ggZm9yIHZpc2liaWxpdHlcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ29udGVudF0gYWRkaXRpb25hbCBjb250ZW50IHRvIGFkZCB0byB0aGUgbGVnZW5kXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5hdXRvTG9hZD1mYWxzZV0gaWYgdGhlIGxheWVyIHNob3VsZCBhdXRvIGxvYWQgaWYgbm90IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucy5zdHlsZT11bmRlZmluZWRdIHRoZSBsYXllciBzdHlsZSwgdXNlIG9wZW5sYXllcnMgZGVmYXVsdCBzdHlsZSBpZiBub3QgZGVmaW5lZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5vbkRlbWFuZD1mYWxzZV0gaWYgdGhlIGxheWVyIHNob3VsZCBiZSBsb2FkZWQgYnkgZXh0ZW50IG9uIG1hcCBtb3ZlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMub25EZW1hbmREZWxheT0zMDBdIGRlbGF5IGJlZm9yZSB0aGUgbWFwIG1vdmUgY2FsbGJhY2sgc2hvdWxkIGJlIGNhbGxlZFxyXG4gICAgICogQHBhcmFtIHttYXBNb3ZlTWFrZUdldFBhcmFtc30gW29wdGlvbnMubWFwTW92ZU1ha2VHZXRQYXJhbXM9ZnVuY3Rpb24obHlyLCBleHRlbnQsIHpvb21MZXZlbCl7fV0gZnVuY3Rpb24gdG8gY3JlYXRlIGFkZGl0aW9uYWwgbWFwIG1vdmUgcGFyYW1zXHJcbiAgICAgKiBAcGFyYW0ge01hcE1vdmVDbHN9IFtvcHRpb25zLm1hcE1vdmVPYmo9bWFwTW92ZV0gYWx0ZXJuYXRlIG1hcCBtb3ZlIG9iamVjdCBmb3IgdXNlIHdpdGggbXVsdGkgbWFwIHBhZ2VzXHJcbiAgICAgKlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcih1cmw6IHN0cmluZywgb3B0aW9uczogTGF5ZXJCYXNlVmVjdG9yT3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIodXJsLCBvcHRpb25zKTtcclxuXHJcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgYXMgTGF5ZXJCYXNlVmVjdG9yT3B0aW9ucztcclxuXHJcbiAgICAgICAgLy9wcmV2ZW50IHJlZ3VsYXIgbG9hZCBpZiBubyB1cmwgaGFzIGJlZW4gcHJvdmlkZWRcclxuICAgICAgICBpZiAodGhpcy51cmwudHJpbSgpID09ICcnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zdHlsZSA9IHR5cGVvZiBvcHRpb25zLnN0eWxlID09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogb3B0aW9ucy5zdHlsZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9hdXRvTG9hZCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fYXV0b0xvYWQgPSAodHlwZW9mIG9wdGlvbnNbJ2F1dG9Mb2FkJ10gPT0gJ2Jvb2xlYW4nID8gb3B0aW9uc1snYXV0b0xvYWQnXSA6IGZhbHNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX29uRGVtYW5kID0gdHlwZW9mIG9wdGlvbnMub25EZW1hbmQgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5vbkRlbWFuZCA6IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX29uRGVtYW5kRGVsYXkgPSB0eXBlb2Ygb3B0aW9ucy5vbkRlbWFuZERlbGF5ID09ICdudW1iZXInID8gb3B0aW9ucy5vbkRlbWFuZERlbGF5IDogMzAwO1xyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5tYXBNb3ZlT2JqKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX21hcE1vdmUgPSBvcHRpb25zLm1hcE1vdmVPYmo7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fbWFwTW92ZSA9IHRoaXMuX29uRGVtYW5kID8gbWFwTW92ZSA6IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9tYXBNb3ZlTWFrZUdldFBhcmFtcyA9IHR5cGVvZiBvcHRpb25zLm1hcE1vdmVNYWtlR2V0UGFyYW1zID09ICdmdW5jdGlvbicgPyBvcHRpb25zLm1hcE1vdmVNYWtlR2V0UGFyYW1zIDpcclxuICAgICAgICAgICAgZnVuY3Rpb24gKCkge3JldHVybiB7fTt9O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fb25EZW1hbmQpIHtcclxuICAgICAgICAgICAgdGhpcy5fbG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5fbWFwTW92ZVBhcmFtcyA9IHt9O1xyXG4gICAgICAgICAgICB0aGlzLl9tYXBNb3ZlLmNoZWNrSW5pdCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9tYXBNb3ZlLmFkZFZlY3RvckxheWVyKHRoaXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fc291cmNlID0gbmV3IG9sLnNvdXJjZS5WZWN0b3IoKTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIgPSBuZXcgb2wubGF5ZXIuVmVjdG9yKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IHRoaXMuX3NvdXJjZSxcclxuICAgICAgICAgICAgICAgIHZpc2libGU6IHRoaXMudmlzaWJsZSxcclxuICAgICAgICAgICAgICAgIHN0eWxlOiB0aGlzLnN0eWxlLFxyXG4gICAgICAgICAgICAgICAgbWluUmVzb2x1dGlvbjogdGhpcy5fbWluUmVzb2x1dGlvbixcclxuICAgICAgICAgICAgICAgIG1heFJlc29sdXRpb246IHRoaXMuX21heFJlc29sdXRpb24sXHJcbiAgICAgICAgICAgICAgICByZW5kZXJPcmRlcjogb3B0aW9ucy5yZW5kZXJPcmRlclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5vbExheWVyLnNldFpJbmRleCh0aGlzLl96SW5kZXgpO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5fcHJvamVjdGlvbk1hcCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fcHJvamVjdGlvbjQzMjYgPSBuZXcgb2wucHJvai5Qcm9qZWN0aW9uKHtjb2RlOiBcIkVQU0c6NDMyNlwifSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBkdW1teSB0byBiZSBvdmVycmlkZGVuXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZmVhdHVyZUNvbGxlY3Rpb24gLSBnZW9qc29uIG9yIGVzcmlqc29uIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBhZGRGZWF0dXJlcyhmZWF0dXJlQ29sbGVjdGlvbikge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdMYXllciB2ZWN0b3IgYmFzZSBhZGRGZWF0dXJlcyBpcyBhIHBsYWNlaG9sZGVyIGFuZCBkb2VzIG5vdGhpbmcnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEJlZm9yZSBjYWxsIHRvIG1hcCBtb3ZlIGNhbGxiYWNrLCBjYW4gcHJldmVudCBjYWxsIGJ5IHJldHVybmluZyBmYWxzZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHpvb20gLSB6b29tIGxldmVsXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2V2dFR5cGU9dW5kZWZpbmVkXSB1bmRlZmluZWQgZm9yIGluaXRpYWwgbG9hZCwgb3RoZXJ3aXNlIG9uZSBvZiAnY2hhbmdlOmNlbnRlcicsICdjaGFuZ2U6cmVzb2x1dGlvbidcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBpZiB0aGUgY2FsbCBzaG91bGQgcHJvY2VlZFxyXG4gICAgICovXHJcbiAgICBtYXBNb3ZlQmVmb3JlKHpvb20sIGV2dFR5cGUpIHtcclxuICAgICAgICBpZiAodGhpcy5taW5ab29tICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgaWYgKHpvb20gPCB0aGlzLm1pblpvb20pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMubWF4Wm9vbSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGlmICh6b29tID4gdGhpcy5tYXhab29tKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnZpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBjYWxsYmFjayB0byBnZW5lcmF0ZSB0aGUgcGFyYW1ldGVycyBwYXNzZWQgaW4gdGhlIGdldCByZXF1ZXN0XHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZXh0ZW50IC0gZXh0ZW50IG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5taW5YIC0gbWluWFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5taW5ZIC0gbWluWVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5tYXhYIC0gbWF4WFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5tYXhZIC0gbWF4WVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHpvb21MZXZlbCAtIHpvb20gbGV2ZWxcclxuICAgICAqL1xyXG4gICAgbWFwTW92ZU1ha2VHZXRQYXJhbXMoZXh0ZW50LCB6b29tTGV2ZWwpIHtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlUGFyYW1zID0ge307XHJcbiAgICAgICAgJC5leHRlbmQodGhpcy5fbWFwTW92ZVBhcmFtcywgdGhpcy5wYXJhbXMpO1xyXG4gICAgICAgICQuZXh0ZW5kKHRoaXMuX21hcE1vdmVQYXJhbXMsIHRoaXMuX21hcE1vdmVNYWtlR2V0UGFyYW1zKHRoaXMsIGV4dGVudCwgem9vbUxldmVsKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBjYWxsYmFjayBmdW5jdGlvbiBvbiBtYXAgbW92ZVxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGQgLSB0aGUganNvbiByZXNwb25zZVxyXG4gICAgICovXHJcbiAgICBtYXBNb3ZlQ2FsbGJhY2soZCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNvdXJjZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9zb3VyY2UuY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBjbGVhciBmZWF0dXJlcyBpbiB0aGUgbGF5ZXJcclxuICAgICAqL1xyXG4gICAgY2xlYXIoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3NvdXJjZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9zb3VyY2UuY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgb24gZGVtYW5kIGRlbGF5IGluIG1pbGlzZWNvbmRzXHJcbiAgICAgKi9cclxuICAgIGdldCBvbkRlbWFuZERlbGF5KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29uRGVtYW5kRGVsYXk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgaWYgdGhlIGxheWVyIGlzIGF1dG9sb2FkZWRcclxuICAgICAqL1xyXG4gICAgZ2V0IGF1dG9Mb2FkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRvTG9hZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgc3R5bGUgZGVmaW5pdGlvblxyXG4gICAgICovXHJcbiAgICBnZXQgc3R5bGUoKTogb2wuU3R5bGVGdW5jdGlvbnxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuc3R5bGUuU3R5bGUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdHlsZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgc3R5bGVcclxuICAgICAqIEBwYXJhbSBzdHlsZSAtIHRoZSBzdHlsZSBvciBmdW5jdGlvblxyXG4gICAgICovXHJcbiAgICBzZXQgc3R5bGUoc3R5bGU6IG9sLlN0eWxlRnVuY3Rpb258QXJyYXk8b2wuc3R5bGUuU3R5bGU+fG9sLnN0eWxlLlN0eWxlKSB7XHJcbiAgICAgICAgdGhpcy5fc3R5bGUgPSBzdHlsZTtcclxuICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0U3R5bGUodGhpcy5fc3R5bGUgYXMgb2wuc3R5bGUuU3R5bGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtYXAgQ1JTIGlmIGl0IGlzIGRlZmluZWQgYnkgdGhlIG1hcCBtb3ZlIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBnZXQgbWFwQ3JzKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwUHJvaiA9PSBudWxsID8gbnVsbCA6IHRoaXMubWFwUHJvai5nZXRDb2RlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG1hcFByb2ooKTogb2wucHJvai5Qcm9qZWN0aW9ue1xyXG4gICAgICAgIGlmICh0aGlzLl9wcm9qZWN0aW9uTWFwICE9IG51bGwpe1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcHJvamVjdGlvbk1hcDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9tYXBNb3ZlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3Byb2plY3Rpb25NYXAgPSB0aGlzLl9tYXBNb3ZlLm1hcC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcHJvamVjdGlvbk1hcDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtYXAgbW92ZSBvYmplY3RcclxuICAgICAqIEB0eXBlIHtNYXBNb3ZlQ2xzfCp9XHJcbiAgICAgKi9cclxuICAgIGdldCBtYXBNb3ZlKCk6IE1hcE1vdmVDbHMge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXBNb3ZlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIG1vdmUgcGFyYW1zXHJcbiAgICAgKiBAdHlwZSB7b2JqZWN0fVxyXG4gICAgICovXHJcbiAgICBnZXQgbWFwTW92ZVBhcmFtcygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWFwTW92ZVBhcmFtcztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdmlzaWJsZSgpOiBib29sZWFue1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSBsYXllciB2aXNpYmlsaXR5XHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqIEBvdmVycmlkZVxyXG4gICAgICovXHJcbiAgICBzZXQgdmlzaWJsZSh2aXNpYmlsaXR5KSB7XHJcbiAgICAgICAgc3VwZXIuc2V0VmlzaWJsZSh2aXNpYmlsaXR5KTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX29uRGVtYW5kKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWFwTW92ZS50cmlnZ2VyTHlyTG9hZCh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIGxheWVyIHZlY3RvciBzb3VyY2VcclxuICAgICAqIEBvdmVycmlkZVxyXG4gICAgICovXHJcbiAgICBnZXQgc291cmNlKCk6IG9sLnNvdXJjZS5WZWN0b3Ige1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNvdXJjZSgpIGFzIG9sLnNvdXJjZS5WZWN0b3I7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhcnJheSBvZiBvbCBmZWF0dXJlc1xyXG4gICAgICovXHJcbiAgICBnZXQgZmVhdHVyZXMoKTogQXJyYXk8b2wuRmVhdHVyZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNvdXJjZS5nZXRGZWF0dXJlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqL1xyXG4gICAgZ2V0IG9sTGF5ZXIoKTogb2wubGF5ZXIuVmVjdG9yIHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0T2xMYXllcigpIGFzIG9sLmxheWVyLlZlY3RvcjtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0WkluZGV4KG5ld1o6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMub2xMYXllci5zZXRaSW5kZXgobmV3Wik7XHJcbiAgICB9XHJcbn1cclxuXHJcbm5tLkxheWVyQmFzZVZlY3RvciA9IExheWVyQmFzZVZlY3RvcjtcclxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJCYXNlVmVjdG9yO1xyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXX0= /***/ }), -/* 21 */ +/* 20 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2220,10 +2219,10 @@ var ol = __webpack_require__(2); exports.proj4326 = new ol.proj.Projection({ code: 'EPSG:4326' }); exports.proj3857 = new ol.proj.Projection({ code: 'EPSG:3857' }); exports.proj3070 = new ol.proj.Projection({ code: 'EPSG:3070' }); - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcm9qZWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOztHQUVHO0FBQ0gsOEJBQWlDO0FBR3BCLFFBQUEsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQztBQUN2RCxRQUFBLFFBQVEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUM7QUFDdkQsUUFBQSxRQUFRLEdBQUcsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTAvMy8yMDE2LlxyXG4gKi9cclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IHByb2o0MzI2ID0gbmV3IG9sLnByb2ouUHJvamVjdGlvbih7Y29kZTogJ0VQU0c6NDMyNid9KTtcclxuZXhwb3J0IGNvbnN0IHByb2ozODU3ID0gbmV3IG9sLnByb2ouUHJvamVjdGlvbih7Y29kZTogJ0VQU0c6Mzg1Nyd9KTtcclxuZXhwb3J0IGNvbnN0IHByb2ozMDcwID0gbmV3IG9sLnByb2ouUHJvamVjdGlvbih7Y29kZTogJ0VQU0c6MzA3MCd9KTtcclxuXHJcbiJdfQ== /***/ }), -/* 22 */ +/* 21 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2232,9 +2231,9 @@ exports.proj3070 = new ol.proj.Projection({ code: 'EPSG:3070' }); */ Object.defineProperty(exports, "__esModule", { value: true }); -var colors = __webpack_require__(33); +var colors = __webpack_require__(32); var provide_1 = __webpack_require__(0); -var LayerItsInventory_1 = __webpack_require__(30); +var LayerItsInventory_1 = __webpack_require__(29); var nm = provide_1.default('collections'); var itsConfig = [ { @@ -2382,15 +2381,15 @@ var ItsLayerCollection = (function () { exports.ItsLayerCollection = ItsLayerCollection; nm.ItsLayerCollection = ItsLayerCollection; exports.default = ItsLayerCollection; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXRzTGF5ZXJDb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiSXRzTGF5ZXJDb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFFSCx1Q0FBeUM7QUFDekMsMkNBQXNDO0FBRXRDLGlFQUE0RDtBQUM1RCxJQUFJLEVBQUUsR0FBRyxpQkFBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBR2hDLElBQUksU0FBUyxHQUFHO0lBQ1o7UUFDSSxJQUFJLEVBQUUsUUFBUTtRQUNkLE9BQU8sRUFBRSxNQUFNO1FBQ2YsT0FBTyxFQUFFLEVBQUU7UUFDWCxhQUFhLEVBQUU7WUFDWCxJQUFJLEVBQUUsT0FBTztZQUNiLFdBQVcsRUFBRSxRQUFRO1lBQ3JCLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLFNBQVMsRUFBRTtnQkFDUCxDQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxjQUFjLENBQUM7YUFDakQ7U0FDSjtLQUNKO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsZUFBZTtRQUNyQixPQUFPLEVBQUUsS0FBSztRQUNkLE9BQU8sRUFBRSxFQUFFO1FBQ1gsYUFBYSxFQUFFO1lBQ1gsSUFBSSxFQUFFLFNBQVM7WUFDZixXQUFXLEVBQUUsS0FBSztZQUNsQixXQUFXLEVBQUUsU0FBUztZQUN0QixTQUFTLEVBQUU7Z0JBQ1AsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQzthQUMvQjtTQUNKO0tBQ0o7SUFDRCxFQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBQztJQUM3RSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFB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Q0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBTUQsc0JBQUksc0NBQU07UUFKVjs7O1dBR0c7YUFDSDtZQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3hCLENBQUM7OztPQUFBO0lBQ0wseUJBQUM7QUFBRCxDQUFDLEFBN0RELElBNkRDO0FBN0RZLGdEQUFrQjtBQStEL0IsRUFBRSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0FBQzNDLGtCQUFlLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTQvMjAxNS5cclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBjb2xvcnMgZnJvbSAnLi4vdXRpbC9jb2xvcnMnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgb2wgPSByZXF1aXJlKCdjdXN0b20tb2wnKTtcclxuaW1wb3J0IExheWVySXRzSW52ZW50b3J5IGZyb20gXCIuLi9sYXllcnMvTGF5ZXJJdHNJbnZlbnRvcnlcIjtcclxubGV0IG5tID0gcHJvdmlkZSgnY29sbGVjdGlvbnMnKTtcclxuXHJcblxyXG5sZXQgaXRzQ29uZmlnID0gW1xyXG4gICAge1xyXG4gICAgICAgIG5hbWU6ICdDYW1lcmEnLFxyXG4gICAgICAgIGl0c1R5cGU6ICdjY3R2JyxcclxuICAgICAgICBtaW5ab29tOiAxMSxcclxuICAgICAgICBpdHNJY29uQ29uZmlnOiB7XHJcbiAgICAgICAgICAgIHByb3A6ICdvd25lcicsXHJcbiAgICAgICAgICAgIGRlZmF1bHROYW1lOiAnV2lzRE9UJyxcclxuICAgICAgICAgICAgZGVmYXVsdEljb246ICdjY3R2LnBuZycsXHJcbiAgICAgICAgICAgIGljb25BcnJheTogW1xyXG4gICAgICAgICAgICAgICAgWydDaXR5IG9mIE1hZGlzb24nLCAnTWFkaXNvbicsICdjY3R2LW1hZC5wbmcnXVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBuYW1lOiAnTWVzc2FnZSBTaWducycsXHJcbiAgICAgICAgaXRzVHlwZTogJ0RNUycsXHJcbiAgICAgICAgbWluWm9vbTogMTEsXHJcbiAgICAgICAgaXRzSWNvbkNvbmZpZzoge1xyXG4gICAgICAgICAgICBwcm9wOiAnZG1zVHlwZScsXHJcbiAgICAgICAgICAgIGRlZmF1bHROYW1lOiAnRE1TJyxcclxuICAgICAgICAgICAgZGVmYXVsdEljb246ICdkbXMucG5nJyxcclxuICAgICAgICAgICAgaWNvbkFycmF5OiBbXHJcbiAgICAgICAgICAgICAgICBbJ3BjbXMnLCAnUENNUycsICdwY21zLnBuZyddXHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAge25hbWU6ICdBVFInLCBpdHNUeXBlOiAnYXRyJywgbWluWm9vbTogOCwgaXRzSWNvbjogJ2F0ci5wbmcnLCB2aXNpYmxlOiBmYWxzZX0sXHJcbiAgICB7bmFtZTogJ0xpZ2h0aW5nJywgaXRzVHlwZTogJ2xpZ2h0JywgbWluWm9vbTogMTYsIGl0c0ljb246ICdzdHJlZXRsaWdodC5wbmcnLCB2aXNpYmxlOiBmYWxzZSwgb25EZW1hbmQ6IHRydWV9LFxyXG4gICAge25hbWU6ICdCbHVldG9vdGgnLCBpdHNUeXBlOiAnYmx1ZScsIG1pblpvb206IDEwLCBpdHNJY29uOiAnYmx1ZXRvb3RoLnBuZycsIHZpc2libGU6IGZhbHNlfSxcclxuICAgIHtuYW1lOiAnQ2FiaW5ldHMnLCBpdHNUeXBlOiAnY2FiaW5ldCcsIG1pblpvb206IDEwLCBpdHNJY29uOiAnY2FiaW5ldC5wbmcnLCB2aXNpYmxlOiBmYWxzZX0sXHJcbiAgICB7bmFtZTogJ0h1dCcsIGl0c1R5cGU6ICdodXQnLCBtaW5ab29tOiAxMCwgaXRzSWNvbjogJ2h1dC5wbmcnLCB2aXNpYmxlOiBmYWxzZX0sXHJcbiAgICB7bmFtZTogJ1ZhdWx0JywgaXRzVHlwZTogJ3ZhdWx0JywgbWluWm9vbTogMTMsIGl0c0ljb246ICd2YXVsdC5wbmcnLCB2aXNpYmxlOiBmYWxzZX0sXHJcbiAgICB7bmFtZTogJ0Fkdmlzb3J5IFJhZGlvJywgaXRzVHlwZTogJ2hhcicsIG1pblpvb206IDEwLCBpdHNJY29uOiAnaGFyLnBuZycsIHZpc2libGU6IGZhbHNlfSxcclxuICAgIHtcclxuICAgICAgICBuYW1lOiAnTG9vcCBEZXRlY3RvcnMnLFxyXG4gICAgICAgIGl0c1R5cGU6ICdsb29wJyxcclxuICAgICAgICBsZWdlbmRDb2xsYXBzZTogdHJ1ZSxcclxuICAgICAgICBtaW5ab29tOiAxNCxcclxuICAgICAgICB2aXNpYmxlOiBmYWxzZSxcclxuICAgICAgICBpdHNJY29uQ29uZmlnOiB7XHJcbiAgICAgICAgICAgIHByb3A6ICdkdGN0clR5cGUnLFxyXG4gICAgICAgICAgICBkZWZhdWx0TmFtZTogJ090aGVyJyxcclxuICAgICAgICAgICAgZGVmYXVsdEljb246ICdsb29wZGV0ZWN0b3JvdGhlci5wbmcnLFxyXG4gICAgICAgICAgICBpY29uQXJyYXk6IFtcclxuICAgICAgICAgICAgICAgIFsnZGV0ZWN0b3InLCAnRGV0ZWN0b3InLCAnbG9vcGRldGVjdG9yLnBuZyddLFxyXG4gICAgICAgICAgICAgICAgWydsb25nJywgJ0xvbmcnLCAnbG9vcGRldGVjdG9ybG9uZy5wbmcnXSxcclxuICAgICAgICAgICAgICAgIFsnem9uZScsICdab25lJywgJ2xvb3BkZXRlY3RvcnpvbmUucG5nJ11cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25EZW1hbmQ6IHRydWVcclxuICAgIH0sXHJcbiAgICB7bmFtZTogJ01pY3Jvd2F2ZScsIGl0c1R5cGU6ICdtaWNyb3dhdmUnLCBtaW5ab29tOiAxNCwgaXRzSWNvbjogJ21pY3Jvd2F2ZS5wbmcnLCB2aXNpYmxlOiBmYWxzZX0sXHJcbiAgICB7bmFtZTogJ1B1bGwgQm94JywgaXRzVHlwZTogJ3B1bGwnLCBtaW5ab29tOiAxNCwgaXRzSWNvbjogJ3B1bGxib3gucG5nJywgdmlzaWJsZTogZmFsc2UsIG9uRGVtYW5kOiB0cnVlfSxcclxuICAgIHtuYW1lOiAnUldJUycsIGl0c1R5cGU6ICdyd2lzJywgbWluWm9vbTogNywgaXRzSWNvbjogJ3J3aXMucG5nJywgdmlzaWJsZTogZmFsc2V9LFxyXG4gICAge25hbWU6ICdSYW1wIEdhdGVzJywgaXRzVHlwZTogJ2dhdGUnLCBtaW5ab29tOiAxMCwgaXRzSWNvbjogJ3JhbXBnYXRlLnBuZycsIHZpc2libGU6IGZhbHNlfSxcclxuICAgIHtuYW1lOiAnUmFtcCBNZXRlcicsIGl0c1R5cGU6ICdtZXRlcicsIG1pblpvb206IDEwLCBpdHNJY29uOiAncmFtcG1ldGVyLnBuZycsIHZpc2libGU6IGZhbHNlfSxcclxuICAgIHtuYW1lOiAnU2lnbmFsJywgaXRzVHlwZTogJ3NpZ25hbCcsIG1pblpvb206IDEzLCBpdHNJY29uOiAnc2lnbmFsLnBuZycsIHZpc2libGU6IGZhbHNlLCBvbkRlbWFuZDogdHJ1ZX0sXHJcbiAgICB7bmFtZTogJ1Rvd2VyJywgaXRzVHlwZTogJ3Rvd2VyJywgbWluWm9vbTogMTAsIGl0c0ljb246ICd0b3dlci5wbmcnLCB2aXNpYmxlOiBmYWxzZX0sXHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogJ1RyZW5jaCcsXHJcbiAgICAgICAgaXRzVHlwZTogJ3RyZW5jaCcsXHJcbiAgICAgICAgb25EZW1hbmQ6IHRydWUsXHJcbiAgICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgb25EZW1hbmREZWxheTogNTAwLFxyXG4gICAgICAgIG1pblpvb206IDE1LFxyXG4gICAgICAgIGxlZ2VuZENvbGxhcHNlOiB0cnVlLFxyXG4gICAgICAgIGl0c0xpbmVDb25maWc6IHtcclxuICAgICAgICAgICAgcHJvcDogJ293bmVyJyxcclxuICAgICAgICAgICAgLy9kZWZhdWx0TmFtZTogJ090aGVyJyxcclxuICAgICAgICAgICAgLy9kZWZhdWx0V2lkdGg6IDcsXHJcbiAgICAgICAgICAgIGRlZmF1bHRDb2xvcjogY29sb3JzLmhleEFscGhhVG9SZ2JPclJnYmEoJyM3NDc0NzQnLCAwLjgpLFxyXG4gICAgICAgICAgICBsaW5lQXJyYXk6IFtcclxuICAgICAgICAgICAgICAgIFsnV2lzRE9UJywgJ1dpc0RPVCcsIGNvbG9ycy5oZXhBbHBoYVRvUmdiT3JSZ2JhKCcjRkYwMzJGJywgMC43KV0sXHJcbiAgICAgICAgICAgICAgICBbJ1dJTicsICdXSU4nLCBjb2xvcnMuaGV4QWxwaGFUb1JnYk9yUmdiYSgnI0ZGQzYzMicsIDAuNyldLFxyXG4gICAgICAgICAgICAgICAgWydVU1hjaGFuZ2UnLCAnVVNYY2hhbmdlJywgY29sb3JzLmhleEFscGhhVG9SZ2JPclJnYmEoJyMyREZGNDYnLCAwLjcpXSxcclxuICAgICAgICAgICAgICAgIFsnQVQmVCcsICdBVCZUJywgY29sb3JzLmhleEFscGhhVG9SZ2JPclJnYmEoJyNmZjJiZTUnLCAwLjcpXSxcclxuICAgICAgICAgICAgICAgIFsnVG91Y2ggQW1lcmljYScsICdUb3VjaCBBbWVyaWNhJywgY29sb3JzLmhleEFscGhhVG9SZ2JPclJnYmEoJyM1MmYzZmYnLCAwLjcpXSxcclxuICAgICAgICAgICAgICAgIFsnUXdlc3QnLCAnUXdlc3QnLCBjb2xvcnMuaGV4QWxwaGFUb1JnYk9yUmdiYSgnIzkyNzhmZicsIDAuNyldLFxyXG4gICAgICAgICAgICAgICAgWydNY0xlb2RVU0EnLCAnTWNMZW9kVVNBJywgY29sb3JzLmhleEFscGhhVG9SZ2JPclJnYmEoJyMyOTI2RkYnLCAwLjcpXSxcclxuICAgICAgICAgICAgICAgIFsnQ0lOQycsICdDSU5DJywgY29sb3JzLmhleEFscGhhVG9SZ2JPclJnYmEoJyNDQjAwRkYnLCAwLjcpXSxcclxuICAgICAgICAgICAgICAgIFsnQ2l0eSBvZiBNYWRpc29uJywgJ01hZGlzb24nLCBjb2xvcnMuaGV4QWxwaGFUb1JnYk9yUmdiYSgnIzAwMDM4MCcsIDAuNyldXHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXTtcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgSXRzTGF5ZXJDb2xsZWN0aW9uIHtcclxuICAgIF9tYXA6IG9sLk1hcDtcclxuICAgIF9sYXllcnM6IEFycmF5PExheWVySXRzSW52ZW50b3J5PjtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGUgYSBjb2xsZWN0aW9uIG9mIGFsbCBJVFMgbGF5ZXJzXHJcbiAgICAgKiBAcGFyYW0ge29sLk1hcH0gdGhlTWFwIHRoZSBvcGVubGF5ZXJzIG1hcFxyXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2V4Y2x1ZGU9W11dIGFycmF5IG9mIEl0cyBsYXllciBpZGVudGlmaWVycyB0byBleGNsdWRlXHJcbiAgICAgKlxyXG4gICAgICogQkxVRSBCbHVldG9vdGggRGV0ZWN0b3IgLSBCbHVldG9vdGggRGV0ZWN0b3JcclxuICAgICAqIENBQklORVQgQ2FiaW5ldHMgLSBUaGUgY2FiaW5ldHNcclxuICAgICAqIENDVFYgQ2FtZXJhIC0gVHJhZmZpYyBDYW1lcmFzXHJcbiAgICAgKiBIVVQgQ29tbXVuaWNhdGlvbiBIdXQgLSBDb21tdW5pY2F0aW9uIEh1dFxyXG4gICAgICogVkFVTFQgQ29tbXVuaWNhdGlvbiBWYXVsdCAtIFRoZSBjb21tdW5pY2F0aW9uIHZhdWx0c1xyXG4gICAgICogSEFSIEhpZ2h3YXkgQWR2aXNvcnkgUmFkaW8gLSBBZHZpc29yeSBSYWRpb3NcclxuICAgICAqIExJR0hUIExpZ2h0aW5nIC0gTGlnaHRpbmdcclxuICAgICAqIExPT1AgTG9vcCBEZXRlY3RvcnMgLSBMb29wIERldGVjdG9yc1xyXG4gICAgICogRE1TIE1lc3NhZ2UgQm9hcmQgLSBNZXNzYWdlIEJvYXJkcyBhbmQgU2lnbnNcclxuICAgICAqIE1JQ1JPV0FWRSBNaWNyb3dhdmUgRGV0ZWN0b3IgLSBNaWNyb3dhdmUgRGV0ZWN0b3JzXHJcbiAgICAgKiBQVUxMIFB1bGwgQm94IC0gQSBwdWxsIGJveFxyXG4gICAgICogUldJUyBSV0lTIC0gUm9hZCB3ZWF0aGVyIGluZm9ybWF0aW9uIHN5c3RlbVxyXG4gICAgICogR0FURSBSYW1wIEdhdGUgLSBUaGUgcmFtcCBHYXRlc1xyXG4gICAgICogTUVURVIgUmFtcCBNZXRlciAtIFRoZSByYW1wIG1ldGVyc1xyXG4gICAgICogU0lHTkFMIFNpZ25hbCAtIFRyYWZmaWMgU2lnbmFsXHJcbiAgICAgKiBUT1dFUiBUb3dlciAtIFRoZSB0b3dlcnNcclxuICAgICAqIFRSRU5DSFxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcih0aGVNYXA6IG9sLk1hcCwgZXhjbHVkZT86IEFycmF5PHN0cmluZz4pIHtcclxuXHJcbiAgICAgICAgdGhpcy5fbWFwID0gdGhlTWFwO1xyXG4gICAgICAgIHRoaXMuX2xheWVycyA9IFtdO1xyXG5cclxuICAgICAgICBleGNsdWRlID0gdHlwZW9mIGV4Y2x1ZGUgPT0gJ29iamVjdCcgPyBleGNsdWRlIDogW107XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRzQ29uZmlnLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBseXJDb25maWcgPSBpdHNDb25maWdbaV07XHJcbiAgICAgICAgICAgIGxldCBhZGRMYXllciA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGV4Y2x1ZGUubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICAgIGlmIChleGNsdWRlW2pdID09IGx5ckNvbmZpZy5pdHNUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWRkTGF5ZXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGFkZExheWVyKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgaW52ZW50THlyID0gbmV3IExheWVySXRzSW52ZW50b3J5KGx5ckNvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9tYXAuYWRkTGF5ZXIoaW52ZW50THlyLm9sTGF5ZXIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbGF5ZXJzLnB1c2goaW52ZW50THlyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybiB0aGUgYXJyYXkgb2YgbGF5ZXJzIGluIHRoaXMgY29sbGVjdGlvblxyXG4gICAgICogQHJldHVybnMge0FycmF5PExheWVySXRzSW52ZW50b3J5Pn0gYW4gYXJyYXkgb2YgbGF5ZXJzXHJcbiAgICAgKi9cclxuICAgIGdldCBsYXllcnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xheWVycztcclxuICAgIH1cclxufVxyXG5cclxubm0uSXRzTGF5ZXJDb2xsZWN0aW9uID0gSXRzTGF5ZXJDb2xsZWN0aW9uO1xyXG5leHBvcnQgZGVmYXVsdCBJdHNMYXllckNvbGxlY3Rpb247XHJcbiJdfQ== /***/ }), +/* 22 */, /* 23 */, /* 24 */, /* 25 */, /* 26 */, -/* 27 */, -/* 28 */ +/* 27 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2409,12 +2408,12 @@ var __extends = (this && this.__extends) || (function () { }; })(); Object.defineProperty(exports, "__esModule", { value: true }); -var LayerBaseVector_1 = __webpack_require__(20); +var LayerBaseVector_1 = __webpack_require__(19); var provide_1 = __webpack_require__(0); var ol = __webpack_require__(2); var $ = __webpack_require__(1); -var proj = __webpack_require__(21); -var projections_1 = __webpack_require__(21); +var proj = __webpack_require__(20); +var projections_1 = __webpack_require__(20); var nm = provide_1.default('layers'); /** * The Vector GeoJson Layer @@ -2468,7 +2467,8 @@ var LayerBaseVectorGeoJson = (function (_super) { * @param {object} featureCollection - as geojson object */ LayerBaseVectorGeoJson.prototype.addFeatures = function (featureCollection) { - this.source.addFeatures(this._geoJsonFormat.readFeatures(featureCollection)); + this.source.addFeatures(this._geoJsonFormat.readFeatures(featureCollection, { dataProjection: this._transform.dataProjection, + featureProjection: this._transform.featureProjection })); }; /** * trigger load features @@ -2502,11 +2502,11 @@ var LayerBaseVectorGeoJson = (function (_super) { exports.LayerBaseVectorGeoJson = LayerBaseVectorGeoJson; nm.LayerBaseVectorGeoJson = LayerBaseVectorGeoJson; exports.default = LayerBaseVectorGeoJson; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJCYXNlVmVjdG9yR2VvSnNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkxheWVyQmFzZVZlY3Rvckdlb0pzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7Ozs7Ozs7Ozs7Ozs7QUFFSCxxREFBMEU7QUFDMUUsMkNBQXNDO0FBQ3RDLDhCQUFpQztBQUNqQywwQkFBNkI7QUFFN0IsK0NBQWlEO0FBQ2pELHdEQUFrRDtBQUVsRCxJQUFJLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBYTNCOzs7R0FHRztBQUNIO0lBQTRDLDBDQUFlO0lBSXZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTBCRztJQUNILGdDQUFZLEdBQVksRUFBRSxPQUEyQztRQUEzQyx3QkFBQSxFQUFBLFlBQTJDO1FBQXJFLGlCQWFDO1FBWkcsR0FBRyxHQUFHLE9BQU8sR0FBRyxJQUFJLFFBQVEsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ3hDLFFBQUEsa0JBQU0sR0FBRyxFQUFFLE9BQU8sQ0FBQyxTQUFDO1FBRXBCLEtBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRTlDLEtBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDMUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEdBQUcsS0FBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNqRixLQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixHQUFHLEtBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLElBQUksc0JBQVEsQ0FBQztRQUVsRixFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsUUFBUSxJQUFJLEtBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLEtBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQixDQUFDOztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCw0Q0FBVyxHQUFYLFVBQVksaUJBQXNCO1FBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFDOUMsRUFBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjO1lBQzNDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUMsQ0FDeEQsQ0FDUixDQUFDO0lBQ04sQ0FBQztJQUdEOzs7O09BSUc7SUFDSCxzQ0FBSyxHQUFMO1FBQUEsaUJBa0JDO1FBaEJHLEVBQUUsQ0FBQyxDQUFDLGlCQUFNLEtBQUssV0FBRSxDQUFDLENBQUMsQ0FBQztZQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQ1gsSUFBSSxDQUFDLE9BQU8sRUFDWixVQUFDLENBQUM7WUFDRSxLQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLEtBQUksQ0FBQyxZQUFZLENBQUMsS0FBSSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDZjtZQUNJLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FDSixDQUFDO1FBRUYsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGdEQUFlLEdBQWYsVUFBZ0IsQ0FBQztRQUNiLGlCQUFNLGVBQWUsWUFBQyxDQUFDLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQ3ZELEVBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUNMLDZCQUFDO0FBQUQsQ0FBQyxBQS9GRCxDQUE0QyxpQ0FBZSxHQStGMUQ7QUEvRlksd0RBQXNCO0FBaUduQyxFQUFFLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7QUFDbkQsa0JBQWUsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8yLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtMYXllckJhc2VWZWN0b3IsIExheWVyQmFzZVZlY3Rvck9wdGlvbnN9IGZyb20gJy4vTGF5ZXJCYXNlVmVjdG9yJztcclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcbmltcG9ydCB7TWFwTW92ZUNsc30gZnJvbSBcIi4uL29sSGVscGVycy9tYXBNb3ZlQ2xzXCI7XHJcbmltcG9ydCAqIGFzIHByb2ogZnJvbSAnLi4vb2xIZWxwZXJzL3Byb2plY3Rpb25zJztcclxuaW1wb3J0IHtwcm9qMzg1N30gZnJvbSBcIi4uL29sSGVscGVycy9wcm9qZWN0aW9uc1wiO1xyXG5cclxubGV0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIGNyc1RyYW5zZm9ybSB7XHJcbiAgICBkYXRhUHJvamVjdGlvbj86IG9sLnByb2ouUHJvamVjdGlvbjtcclxuICAgIGZlYXR1cmVQcm9qZWN0aW9uPzogb2wucHJvai5Qcm9qZWN0aW9uO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckJhc2VWZWN0b3JHZW9Kc29uT3B0aW9ucyBleHRlbmRzIExheWVyQmFzZVZlY3Rvck9wdGlvbnMge1xyXG4gICAgdHJhbnNmb3JtPzogY3JzVHJhbnNmb3JtO1xyXG4gICAgbWFwTW92ZU9iaj86IE1hcE1vdmVDbHM7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgVmVjdG9yIEdlb0pzb24gTGF5ZXJcclxuICogQGF1Z21lbnRzIExheWVyQmFzZVZlY3RvclxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIExheWVyQmFzZVZlY3Rvckdlb0pzb24gZXh0ZW5kcyBMYXllckJhc2VWZWN0b3Ige1xyXG4gICAgX2dlb0pzb25Gb3JtYXQ6IG9sLmZvcm1hdC5HZW9KU09OO1xyXG4gICAgX3RyYW5zZm9ybTogY3JzVHJhbnNmb3JtO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd8bnVsbH0gdXJsIC0gcmVzb3VyY2UgdXJsLCBzZXQgdG8gJycgdG8gbWFrZSBibGFuayBsYXllclxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgLSBjb25maWdcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5pZF0gLSBsYXllciBpZFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLm5hbWU9VW5uYW1lZCBMYXllcl0gLSBsYXllciBuYW1lXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMub3BhY2l0eT0xXSAtIG9wYWNpdHlcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMudmlzaWJsZT10cnVlXSAtIGRlZmF1bHQgdmlzaWJsZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSAtIG1pbiB6b29tIGxldmVsLCAwIC0gMjhcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5tYXhab29tPXVuZGVmaW5lZF0gLSBtYXggem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMucGFyYW1zPXt9XSB0aGUgZ2V0IHBhcmFtZXRlcnMgdG8gaW5jbHVkZSB0byByZXRyaWV2ZSB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56SW5kZXg9MF0gdGhlIHogaW5kZXggZm9yIHRoZSBsYXllclxyXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbn0gW29wdGlvbnMubG9hZENhbGxiYWNrXSBmdW5jdGlvbiB0byBjYWxsIG9uIGxvYWQsIGNvbnRleHQgdGhpcyBpcyB0aGUgbGF5ZXIgb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENvbGxhcHNlPWZhbHNlXSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGJlIGluaXRpYWxseSBjb2xsYXBzZWRcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ2hlY2tib3g9dHJ1ZV0gaWYgdGhlIGxlZ2VuZCBpdGVtIHNob3VsZCBoYXZlIGEgY2hlY2tib3ggZm9yIHZpc2liaWxpdHlcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ29udGVudF0gYWRkaXRpb25hbCBjb250ZW50IHRvIGFkZCB0byB0aGUgbGVnZW5kXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5hdXRvTG9hZD1mYWxzZV0gaWYgdGhlIGxheWVyIHNob3VsZCBhdXRvIGxvYWQgaWYgbm90IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucy5zdHlsZT11bmRlZmluZWRdIHRoZSBsYXllciBzdHlsZSwgdXNlIG9wZW5sYXllcnMgZGVmYXVsdCBzdHlsZSBpZiBub3QgZGVmaW5lZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5vbkRlbWFuZD1mYWxzZV0gaWYgdGhlIGxheWVyIHNob3VsZCBiZSBsb2FkZWQgYnkgZXh0ZW50IG9uIG1hcCBtb3ZlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMub25EZW1hbmREZWxheT0zMDBdIGRlbGF5IGJlZm9yZSB0aGUgbWFwIG1vdmUgY2FsbGJhY2sgc2hvdWxkIGJlIGNhbGxlZFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucy50cmFuc2Zvcm09e31dIFNSIHRyYW5zZm9ybSwgc2V0IGFzIGZhbHNlIGZvciBubyB0cmFuc2Zvcm1cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnRyYW5zZm9ybS5kYXRhUHJvamVjdGlvbj1FUFNHOjQzMjYgdGhlIGRhdGEgQ1JTXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy50cmFuc2Zvcm0uZmVhdHVyZVByb2plY3Rpb249RVBTRzozODU3IHRoZSBmZWF0dXJlL21hcCBDUlNcclxuICAgICAqIEBwYXJhbSB7bWFwTW92ZU1ha2VHZXRQYXJhbXN9IFtvcHRpb25zLm1hcE1vdmVNYWtlR2V0UGFyYW1zPWZ1bmN0aW9uKGx5ciwgZXh0ZW50LCB6b29tTGV2ZWwpe31dIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhZGRpdGlvbmFsIG1hcCBtb3ZlIHBhcmFtc1xyXG4gICAgICogQHBhcmFtIHtNYXBNb3ZlQ2xzfSBbb3B0aW9ucy5tYXBNb3ZlT2JqPW1hcE1vdmVdIGFsdGVybmF0ZSBtYXAgbW92ZSBvYmplY3QgZm9yIHVzZSB3aXRoIG11bHRpIG1hcCBwYWdlc1xyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcih1cmw/OiBzdHJpbmcsIG9wdGlvbnM6IExheWVyQmFzZVZlY3Rvckdlb0pzb25PcHRpb25zID0ge30pIHtcclxuICAgICAgICB1cmwgPSB0eXBlb2YgdXJsID09ICdzdHJpbmcnID8gdXJsIDogJyc7XHJcbiAgICAgICAgc3VwZXIodXJsLCBvcHRpb25zKTtcclxuXHJcbiAgICAgICAgdGhpcy5fZ2VvSnNvbkZvcm1hdCA9IG5ldyBvbC5mb3JtYXQuR2VvSlNPTigpO1xyXG5cclxuICAgICAgICB0aGlzLl90cmFuc2Zvcm0gPSBvcHRpb25zLnRyYW5zZm9ybSB8fCB7fTtcclxuICAgICAgICB0aGlzLl90cmFuc2Zvcm0uZGF0YVByb2plY3Rpb24gPSB0aGlzLl90cmFuc2Zvcm0uZGF0YVByb2plY3Rpb24gfHwgcHJvai5wcm9qNDMyNjtcclxuICAgICAgICB0aGlzLl90cmFuc2Zvcm0uZmVhdHVyZVByb2plY3Rpb24gPSB0aGlzLl90cmFuc2Zvcm0uZmVhdHVyZVByb2plY3Rpb24gfHwgcHJvajM4NTc7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmF1dG9Mb2FkIHx8IHRoaXMudmlzaWJsZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9sb2FkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogYWRkIGZlYXR1cmUgY29sbGVjdGlvblxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGZlYXR1cmVDb2xsZWN0aW9uIC0gYXMgZ2VvanNvbiBvYmplY3RcclxuICAgICAqL1xyXG4gICAgYWRkRmVhdHVyZXMoZmVhdHVyZUNvbGxlY3Rpb246IGFueSkge1xyXG4gICAgICAgIHRoaXMuc291cmNlLmFkZEZlYXR1cmVzKFxyXG4gICAgICAgICAgICB0aGlzLl9nZW9Kc29uRm9ybWF0LnJlYWRGZWF0dXJlcyhmZWF0dXJlQ29sbGVjdGlvbixcclxuICAgICAgICAgICAgICAgIHtkYXRhUHJvamVjdGlvbjogdGhpcy5fdHJhbnNmb3JtLmRhdGFQcm9qZWN0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiB0aGlzLl90cmFuc2Zvcm0uZmVhdHVyZVByb2plY3Rpb259XHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmlnZ2VyIGxvYWQgZmVhdHVyZXNcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBpZiBhbHJlYWR5IGxvYWRlZFxyXG4gICAgICovXHJcbiAgICBfbG9hZCgpIHtcclxuXHJcbiAgICAgICAgaWYgKHN1cGVyLl9sb2FkKCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAkLmdldCh0aGlzLl91cmwsXHJcbiAgICAgICAgICAgIHRoaXMuX3BhcmFtcyxcclxuICAgICAgICAgICAgKGQpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWRkRmVhdHVyZXMoZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRDYWxsYmFjayh0aGlzKTtcclxuICAgICAgICAgICAgfSwgJ2pzb24nKS5mYWlsKFxyXG4gICAgICAgICAgICBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2FkZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGNhbGxiYWNrIGZ1bmN0aW9uIG9uIG1hcCBtb3ZlXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZCB0aGUganNvbiByZXNwb25zZVxyXG4gICAgICogQG92ZXJyaWRlXHJcbiAgICAgKi9cclxuICAgIG1hcE1vdmVDYWxsYmFjayhkKSB7XHJcbiAgICAgICAgc3VwZXIubWFwTW92ZUNhbGxiYWNrKGQpO1xyXG4gICAgICAgIHRoaXMuX3NvdXJjZS5hZGRGZWF0dXJlcyh0aGlzLl9nZW9Kc29uRm9ybWF0LnJlYWRGZWF0dXJlcyhkLFxyXG4gICAgICAgICAgICB7ZmVhdHVyZVByb2plY3Rpb246IHRoaXMuX3RyYW5zZm9ybS5mZWF0dXJlUHJvamVjdGlvbiwgZGF0YVByb2plY3Rpb246IHRoaXMuX3RyYW5zZm9ybS5kYXRhUHJvamVjdGlvbn0pKTtcclxuICAgIH1cclxufVxyXG5cclxubm0uTGF5ZXJCYXNlVmVjdG9yR2VvSnNvbiA9IExheWVyQmFzZVZlY3Rvckdlb0pzb247XHJcbmV4cG9ydCBkZWZhdWx0IExheWVyQmFzZVZlY3Rvckdlb0pzb247XHJcbiJdfQ== /***/ }), -/* 29 */, -/* 30 */ +/* 28 */, +/* 29 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2525,11 +2525,12 @@ var __extends = (this && this.__extends) || (function () { }; })(); Object.defineProperty(exports, "__esModule", { value: true }); -var LayerBaseVectorGeoJson_1 = __webpack_require__(28); +var LayerBaseVectorGeoJson_1 = __webpack_require__(27); var mapPopup_1 = __webpack_require__(4); var provide_1 = __webpack_require__(0); var ol = __webpack_require__(2); var $ = __webpack_require__(1); +var projections_1 = __webpack_require__(20); var nm = provide_1.default('layers'); function checkStyleNumber(itsIcon, itsLineStyle, itsIconConfig, itsLineConfig) { "use strict"; @@ -2772,6 +2773,7 @@ var LayerItsInventory = (function (_super) { if (typeof options.itsType !== 'string') { throw 'its type must be defined'; } + options.transform = { dataProjection: projections_1.proj4326, featureProjection: projections_1.proj3857 }; var addToLegend = ''; // define a style with the helper function if it is not explicitly defined if (typeof options.style == 'undefined') { @@ -2821,12 +2823,12 @@ var LayerItsInventory = (function (_super) { }(LayerBaseVectorGeoJson_1.default)); nm.LayerItsInventory = LayerItsInventory; exports.default = LayerItsInventory; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJJdHNJbnZlbnRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJMYXllckl0c0ludmVudG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7Ozs7Ozs7Ozs7OztBQUVILG1FQUE4RDtBQUM5RCxrREFBNkM7QUFDN0MsMkNBQXNDO0FBQ3RDLDhCQUFpQztBQUNqQywwQkFBNkI7QUFDN0Isd0RBQTJEO0FBRTNELElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFHM0IsMEJBQTBCLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGFBQWE7SUFDekUsWUFBWSxDQUFDO0lBRWIsc0RBQXNEO0lBQ3RELElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztJQUNwQixFQUFFLENBQUMsQ0FBQyxPQUFPLE9BQU8sSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzdCLFdBQVcsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxFQUFFLENBQUMsQ0FBQyxPQUFPLFlBQVksSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLFlBQVksQ0FBQyxLQUFLLEdBQUcsT0FBTyxZQUFZLENBQUMsS0FBSyxJQUFJLFFBQVEsR0FBRyxZQUFZLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNwRixZQUFZLENBQUMsS0FBSyxHQUFHLE9BQU8sWUFBWSxDQUFDLEtBQUssSUFBSSxRQUFRLEdBQUcsWUFBWSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDeEYsV0FBVyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELEVBQUUsQ0FBQyxDQUFDLE9BQU8sYUFBYSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbkMsYUFBYSxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQztRQUVqRSxFQUFFLENBQUMsQ0FBQyxPQUFPLGFBQWEsQ0FBQyxTQUFTLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNoRCxhQUFhLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNqQyxDQUFDO1FBRUQsV0FBVyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELEVBQUUsQ0FBQyxDQUFDLE9BQU8sYUFBYSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbkMsYUFBYSxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQztRQUNqRSxhQUFhLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO1FBQzdELGFBQWEsQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUM7UUFHakUsRUFBRSxDQUFDLENBQUMsT0FBTyxhQUFhLENBQUMsU0FBUyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDaEQsYUFBYSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDakMsQ0FBQztRQUVELCtCQUErQjtRQUMvQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDdEQsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDekMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNMLENBQUM7UUFFRCxXQUFXLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsRUFBRSxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsTUFBTSxzQ0FBc0MsQ0FBQztJQUNqRCxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxxQkFBcUIsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYTtJQUNwRSxZQUFZLENBQUM7SUFDYixnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUV0RSxJQUFJLFlBQVksR0FBRyxzREFBc0QsQ0FBQztJQUUxRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ1YsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDdEIsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ3BCO2dCQUNJLEdBQUcsRUFBRSxZQUFZLEdBQUcsT0FBTztnQkFDM0IsV0FBVyxFQUFFLFdBQVc7YUFDM0IsQ0FDSjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUN0QixNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztnQkFDeEIsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLO2dCQUN6QixLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7YUFDNUIsQ0FBQztTQUNMLENBQUMsQ0FBQztJQUNQLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUN2QixNQUFNLENBQUMsVUFBVSxPQUFtQjtZQUNoQyxJQUFJLFVBQVUsR0FBRyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdELElBQUksT0FBTyxHQUFHLFlBQVksR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDO1lBRXZELEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxRQUFRLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFMUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLGlCQUFpQixFQUFFLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNsRixPQUFPLEdBQUcsWUFBWSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDckMsS0FBSyxDQUFDO2dCQUNWLENBQUM7WUFDTCxDQUFDO1lBRUQsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztvQkFDdkIsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ3BCO3dCQUNJLEdBQUcsRUFBRSxPQUFPO3dCQUNaLFdBQVcsRUFBRSxXQUFXO3FCQUMzQixDQUNKO2lCQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ1IsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxVQUFVLE9BQW1CO1lBQ2hDLElBQUksVUFBVSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0QsSUFBSSxJQUFJLEdBQUcsYUFBYSxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUM7WUFDL0MsSUFBSSxLQUFLLEdBQUcsYUFBYSxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUM7WUFFNUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUN0RCxJQUFJLFFBQVEsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUUxQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ2xGLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ25CLEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3BCLEtBQUssQ0FBQztnQkFDVixDQUFDO1lBQ0wsQ0FBQztZQUVELE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7b0JBQ3ZCLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO3dCQUN4QixLQUFLLEVBQUUsSUFBSTt3QkFDWCxLQUFLLEVBQUUsS0FBSztxQkFDZixDQUFDO2lCQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1IsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUNyQixDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxzQkFBc0IsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYTtJQUNyRSxZQUFZLENBQUM7SUFFYixJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFFcEIsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFFdEUsSUFBSSxZQUFZLEdBQUcsc0RBQXNELENBQUM7SUFFMUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNWLE1BQU0sQ0FBQyxpQkFBYSxZQUFZLEdBQUcsT0FBTyxpREFBdUMsVUFBVSxRQUFJLENBQUM7SUFDcEcsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sQ0FBQyx5QkFBc0IsWUFBWSxDQUFDLEtBQUssOEJBQXlCLFlBQVksQ0FBQyxLQUFLLFFBQUksQ0FBQztJQUNuRyxDQUFDO0lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDdkIsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sSUFBSSxNQUFNLENBQUM7UUFFbEIsR0FBRyxDQUFDLENBQVUsVUFBdUIsRUFBdkIsS0FBQSxhQUFhLENBQUMsU0FBUyxFQUF2QixjQUF1QixFQUF2QixJQUF1QjtZQUFoQyxJQUFJLENBQUMsU0FBQTtZQUNOLE9BQU8sSUFBSSw4Q0FBMEMsQ0FBQyxDQUFDLENBQUMsQ0FBQywyQkFBb0IsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsaURBQXVDLFVBQVUsUUFBSSxDQUFDO1NBQ3pKO1FBQ0QsT0FBTyxJQUFJLDhDQUEwQyxhQUFhLENBQUMsV0FBVyxZQUFTO2FBQ25GLGlCQUFhLFlBQVksR0FBRyxhQUFhLENBQUMsV0FBVyxpREFBdUMsVUFBVSxhQUFTLENBQUEsQ0FBQztRQUNwSCxPQUFPLElBQUksT0FBTyxDQUFDO1FBRW5CLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNqQixPQUFPLElBQUksTUFBTSxDQUFDO1FBQ2xCLEdBQUcsQ0FBQyxDQUFXLFVBQXVCLEVBQXZCLEtBQUEsYUFBYSxDQUFDLFNBQVMsRUFBdkIsY0FBdUIsRUFBdkIsSUFBdUI7WUFBakMsSUFBSSxFQUFFLFNBQUE7WUFDUCxPQUFPLElBQUksOENBQTBDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBUztpQkFDL0QseUJBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUMsOEJBQXlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBSSxDQUFBLENBQUM7U0FDckU7UUFDRCxPQUFPLElBQUksOENBQTBDLGFBQWEsQ0FBQyxXQUFXLFlBQVM7YUFDbkYseUJBQXNCLGFBQWEsQ0FBQyxZQUFZLDhCQUF5QixhQUFhLENBQUMsWUFBWSxhQUFTLENBQUEsQ0FBQztRQUNqSCxPQUFPLElBQUksT0FBTyxDQUFDO1FBRW5CLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUNkLENBQUM7QUFDTCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0g7SUFBZ0MscUNBQXNCO0lBRWxEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BMkNHO0lBQ0gsMkJBQVksT0FBTztRQUFuQixpQkFtQ0M7UUFsQ0csRUFBRSxDQUFDLENBQUMsT0FBTyxPQUFPLENBQUMsT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSwwQkFBMEIsQ0FBQztRQUNyQyxDQUFDO1FBRUQsT0FBTyxDQUFDLFNBQVMsR0FBRyxFQUFDLGNBQWMsRUFBRSxzQkFBUSxFQUFFLGlCQUFpQixFQUFFLHNCQUFRLEVBQUMsQ0FBQztRQUU1RSxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFFckIsMEVBQTBFO1FBQzFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sT0FBTyxDQUFDLEtBQUssSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUN2QixPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUN0RixDQUFDO1lBQ0YsV0FBVyxHQUFHLFlBQVksQ0FDdEIsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FDdEYsQ0FBQztRQUNOLENBQUM7UUFFRCxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sT0FBTyxDQUFDLE1BQU0sSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDekUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQUM7UUFFdEUsUUFBQSxrQkFBTSxnREFBZ0QsRUFBRSxPQUFPLENBQUMsU0FBQztRQUVqRSwwQ0FBMEM7UUFDMUMsS0FBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRW5DLE9BQU8sQ0FBQyxRQUFRLEdBQUcsT0FBTyxPQUFPLENBQUMsUUFBUSxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUVsRixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNuQixrQkFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFJLEVBQUUsVUFBVSxLQUFLO2dCQUN6QyxNQUFNLENBQUMsMEVBQXVFLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBSTtvQkFDbEcsd0NBQW9DLENBQUM7WUFDN0MsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDOztJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxnREFBb0IsR0FBcEIsVUFBcUIsTUFBTSxFQUFFLFNBQVM7UUFDbEMsaUJBQU0sb0JBQW9CLFlBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLElBQUksU0FBUyxHQUFHLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlELFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEQsSUFBSSxvQkFBb0IsR0FBRyxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEQsSUFBSSxVQUFVLEdBQUcsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0QsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN6RCxJQUFJLHFCQUFxQixHQUFHLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV4RCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQ3ZCO1lBQ0ksQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQztZQUMxQixDQUFDLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1lBQzNCLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7WUFDMUIsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQztTQUM5QixDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0wsd0JBQUM7QUFBRCxDQUFDLEFBOUdELENBQWdDLGdDQUFzQixHQThHckQ7QUFFRCxFQUFFLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7QUFDekMsa0JBQWUsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMi84LzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IExheWVyQmFzZVZlY3Rvckdlb0pzb24gZnJvbSAnLi9MYXllckJhc2VWZWN0b3JHZW9Kc29uJztcclxuaW1wb3J0IG1hcFBvcHVwIGZyb20gJy4uL29sSGVscGVycy9tYXBQb3B1cCc7XHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5pbXBvcnQge3Byb2o0MzI2LCBwcm9qMzg1N30gZnJvbSAnLi4vb2xIZWxwZXJzL3Byb2plY3Rpb25zJ1xyXG5cclxubGV0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5cclxuZnVuY3Rpb24gY2hlY2tTdHlsZU51bWJlcihpdHNJY29uLCBpdHNMaW5lU3R5bGUsIGl0c0ljb25Db25maWcsIGl0c0xpbmVDb25maWcpIHtcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG5cclxuICAgIC8vbWFrZSBzdXJlIG9uZSBhbmQgb25seSBvbmUgY29uZmlndXJhdGlvbiBpcyBkZWZpbmVkO1xyXG4gICAgbGV0IGNvbmZpZ0NvdW50ID0gMDtcclxuICAgIGlmICh0eXBlb2YgaXRzSWNvbiA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgIGNvbmZpZ0NvdW50Kys7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZiBpdHNMaW5lU3R5bGUgPT0gJ29iamVjdCcpIHtcclxuICAgICAgICBpdHNMaW5lU3R5bGUud2lkdGggPSB0eXBlb2YgaXRzTGluZVN0eWxlLndpZHRoID09ICdudW1iZXInID8gaXRzTGluZVN0eWxlLndpZHRoIDogNTtcclxuICAgICAgICBpdHNMaW5lU3R5bGUuY29sb3IgPSB0eXBlb2YgaXRzTGluZVN0eWxlLmNvbG9yID09ICdzdHJpbmcnID8gaXRzTGluZVN0eWxlLmNvbG9yIDogJ3JlZCc7XHJcbiAgICAgICAgY29uZmlnQ291bnQrKztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIGl0c0ljb25Db25maWcgPT0gJ29iamVjdCcpIHtcclxuICAgICAgICBpdHNJY29uQ29uZmlnLmRlZmF1bHROYW1lID0gaXRzSWNvbkNvbmZpZy5kZWZhdWx0TmFtZSB8fCAnT3RoZXInO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIGl0c0ljb25Db25maWcuaWNvbkFycmF5ID09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIGl0c0ljb25Db25maWcuaWNvbkFycmF5ID0gW107XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25maWdDb3VudCsrO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlb2YgaXRzTGluZUNvbmZpZyA9PSAnb2JqZWN0Jykge1xyXG4gICAgICAgIGl0c0xpbmVDb25maWcuZGVmYXVsdE5hbWUgPSBpdHNMaW5lQ29uZmlnLmRlZmF1bHROYW1lIHx8ICdPdGhlcic7XHJcbiAgICAgICAgaXRzTGluZUNvbmZpZy5kZWZhdWx0V2lkdGggPSBpdHNMaW5lQ29uZmlnLmRlZmF1bHRXaWR0aCB8fCA1O1xyXG4gICAgICAgIGl0c0xpbmVDb25maWcuZGVmYXVsdENvbG9yID0gaXRzTGluZUNvbmZpZy5kZWZhdWx0Q29sb3IgfHwgJ3JlZCc7XHJcblxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIGl0c0xpbmVDb25maWcubGluZUFycmF5ID09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIGl0c0xpbmVDb25maWcubGluZUFycmF5ID0gW107XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBzZXQgdGhlIHdpZHRoIGlmIG5vdCBkZWZpbmVkXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdHNMaW5lQ29uZmlnLmxpbmVBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoaXRzTGluZUNvbmZpZy5saW5lQXJyYXlbaV0ubGVuZ3RoID09IDMpIHtcclxuICAgICAgICAgICAgICAgIGl0c0xpbmVDb25maWcubGluZUFycmF5W2ldLnB1c2goNSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbmZpZ0NvdW50Kys7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZ0NvdW50ID4gMSkge1xyXG4gICAgICAgIHRocm93ICdPbmx5IG9uZSBzdHlsZSBjb25maWcgY2FuIGJlIGRlZmluZWQnO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IFtpdHNJY29uPXVuZGVmaW5lZF0gdGhlIElUUyBkZXZpY2UgdHlwZSBpY29uIGltYWdlIHNlZSBodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2l0cy9pbnZlbnRvcnkvaWNvbnMvXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBbaXRzTGluZVN0eWxlPXVuZGVmaW5lZF0gQSBzaW5nbGUgbGluZSBzdHlsZVxyXG4gKiBAcGFyYW0ge3N0cmluZ30gaXRzTGluZVN0eWxlLmNvbG9yIHRoZSBsaW5lIGNvbG9yIGFzIHJnYiBvciBoZXhcclxuICogQHBhcmFtIHtudW1iZXJ9IFtpdHNMaW5lU3R5bGUud2lkdGg9NV0gdGhlIGxpbmUgd2lkdGhcclxuICpcclxuICogQHBhcmFtIHtvYmplY3R9IFtpdHNJY29uQ29uZmlnPXVuZGVmaW5lZF0gVGhlIGljb24gc3VidHlwZSBjb25maWd1cmF0aW9uXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBpdHNJY29uQ29uZmlnLnByb3AgVGhlIHByb3BlcnR5IHVzZWQgdG8gZGVmaW5lIGljb24gYXR0cmlidXRlIHN5bWJvbGl6YXRpb25cclxuICogQHBhcmFtIHtzdHJpbmd9IGl0c0ljb25Db25maWcuZGVmYXVsdE5hbWUgVGhlIGRlZmF1bHQgbmFtZSB0byBiZSB1c2VkIGlmIG5vIG90aGVyIG1hdGNoIGlzIGZvdW5kXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBpdHNJY29uQ29uZmlnLmRlZmF1bHRJY29uIFRoZSBkZWZhdWx0IGljb24gdG8gYmUgdXNlZCBmb3Igbm8gb3RoZXIgbWF0Y2hlc1xyXG4gKiBAcGFyYW0ge29iamVjdH0gW2l0c0ljb25Db25maWcuaWNvbkFycmF5PVtdXSBhbiBhcnJheSwgaXRlbXMgd2l0aCBmb3JtYXQgW3Byb3BlcnR5LCBuYW1lLCBpbWddXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBbaXRzTGluZUNvbmZpZz11bmRlZmluZWRdIFRoZSBwcm9wZXJ0eSB1c2VkIHRvIGRlZmluZSBpY29uIGF0dHJpYnV0ZSBzeW1ib2xpemF0aW9uXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBpdHNMaW5lQ29uZmlnLnByb3AgVGhlIHByb3BlcnR5IHVzZWQgdG8gZGVmaW5lIGljb24gYXR0cmlidXRlIHN5bWJvbGl6YXRpb25cclxuICogQHBhcmFtIHtzdHJpbmd9IFtpdHNMaW5lQ29uZmlnLmRlZmF1bHROYW1lPU90aGVyXSBUaGUgZGVmYXVsdCBuYW1lIHRvIGJlIHVzZWQgaWYgbm8gb3RoZXIgbWF0Y2ggaXMgZm91bmRcclxuICogQHBhcmFtIHtzdHJpbmd9IFtpdHNMaW5lQ29uZmlnLmRlZmF1bHRDb2xvcj1yZWRdIFRoZSBkZWZhdWx0IGxpbmUgY29sb3IgdG8gYmUgdXNlZCBmb3Igbm8gb3RoZXIgbWF0Y2hlc1xyXG4gKiBAcGFyYW0ge251bWJlcn0gW2l0c0xpbmVDb25maWcuZGVmYXVsdFdpZHRoPTVdIFRoZSBkZWZhdWx0IGxpbmUgd2lkdGggdG8gYmUgdXNlZCBmb3Igbm8gb3RoZXIgbWF0Y2hlc1xyXG4gKiBAcGFyYW0ge29iamVjdH0gW2l0c0xpbmVDb25maWcubGluZUFycmF5PVtdXSBhbiBhcnJheSwgaXRlbXMgd2l0aCBmb3JtYXQgW3Byb3BlcnR5LCBuYW1lLCBjb2xvciwgb3B0aW9uYWwgd2lkdGhdXHJcbiAqIEByZXR1cm5zIHsqfSB1bmRlZmluZWQsIHN0eWxlLCBvciBzdHlsZSBmdW5jdGlvblxyXG4gKi9cclxuZnVuY3Rpb24gZGVmaW5lU3R5bGUoaXRzSWNvbiwgaXRzTGluZVN0eWxlLCBpdHNJY29uQ29uZmlnLCBpdHNMaW5lQ29uZmlnKSA6IG9sLnN0eWxlLlN0eWxlfEFycmF5PG9sLnN0eWxlLlN0eWxlPnxvbC5TdHlsZUZ1bmN0aW9ue1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcbiAgICBjaGVja1N0eWxlTnVtYmVyKGl0c0ljb24sIGl0c0xpbmVTdHlsZSwgaXRzSWNvbkNvbmZpZywgaXRzTGluZUNvbmZpZyk7XHJcblxyXG4gICAgbGV0IF9pY29uVXJsUm9vdCA9ICdodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2l0cy9pbnZlbnRvcnkvaWNvbnMvJztcclxuXHJcbiAgICBpZiAoaXRzSWNvbikge1xyXG4gICAgICAgIHJldHVybiBuZXcgb2wuc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICBpbWFnZTogbmV3IG9sLnN0eWxlLkljb24oXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3JjOiBfaWNvblVybFJvb3QgKyBpdHNJY29uLFxyXG4gICAgICAgICAgICAgICAgICAgIGNyb3NzT3JpZ2luOiAnYW5vbnltb3VzJ1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGl0c0xpbmVTdHlsZSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgb2wuc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICBzdHJva2U6IG5ldyBvbC5zdHlsZS5TdHJva2Uoe1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IGl0c0xpbmVTdHlsZS5jb2xvcixcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBpdHNMaW5lU3R5bGUud2lkdGhcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoaXRzSWNvbkNvbmZpZykge1xyXG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoZmVhdHVyZTogb2wuRmVhdHVyZSkge1xyXG4gICAgICAgICAgICBsZXQgc3ltYm9sUHJvcCA9IGZlYXR1cmUuZ2V0UHJvcGVydGllcygpW2l0c0ljb25Db25maWcucHJvcF07XHJcbiAgICAgICAgICAgIGxldCBpY29uVXJsID0gX2ljb25VcmxSb290ICsgaXRzSWNvbkNvbmZpZy5kZWZhdWx0SWNvbjtcclxuXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRzSWNvbkNvbmZpZy5pY29uQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCB0aGlzUHJvcCA9IGl0c0ljb25Db25maWcuaWNvbkFycmF5W2ldO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChzeW1ib2xQcm9wLnRyaW0oKS50b0xvY2FsZUxvd2VyQ2FzZSgpID09IHRoaXNQcm9wWzBdLnRyaW0oKS50b0xvY2FsZUxvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWNvblVybCA9IF9pY29uVXJsUm9vdCArIHRoaXNQcm9wWzJdO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gW25ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICBpbWFnZTogbmV3IG9sLnN0eWxlLkljb24oXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzcmM6IGljb25VcmwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyb3NzT3JpZ2luOiAnYW5vbnltb3VzJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgfSldO1xyXG4gICAgICAgIH07XHJcbiAgICB9IGVsc2UgaWYgKGl0c0xpbmVDb25maWcpIHtcclxuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGZlYXR1cmU6IG9sLkZlYXR1cmUpIHtcclxuICAgICAgICAgICAgbGV0IHN5bWJvbFByb3AgPSBmZWF0dXJlLmdldFByb3BlcnRpZXMoKVtpdHNMaW5lQ29uZmlnLnByb3BdO1xyXG4gICAgICAgICAgICBsZXQgY29sciA9IGl0c0xpbmVDb25maWcuZGVmYXVsdENvbG9yIHx8ICdyZWQnO1xyXG4gICAgICAgICAgICBsZXQgd2lkdGggPSBpdHNMaW5lQ29uZmlnLmRlZmF1bHRXaWR0aCB8fCA1O1xyXG5cclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdHNMaW5lQ29uZmlnLmxpbmVBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHRoaXNQcm9wID0gaXRzTGluZUNvbmZpZy5saW5lQXJyYXlbaV07XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHN5bWJvbFByb3AudHJpbSgpLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT0gdGhpc1Byb3BbMF0udHJpbSgpLnRvTG9jYWxlTG93ZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xyID0gdGhpc1Byb3BbMl07XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGggPSB0aGlzUHJvcFszXTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIFtuZXcgb2wuc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgc3Ryb2tlOiBuZXcgb2wuc3R5bGUuU3Ryb2tlKHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogY29scixcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGhcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH0pXTtcclxuICAgICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IFtpdHNJY29uPXVuZGVmaW5lZF0gdGhlIElUUyBkZXZpY2UgdHlwZSBpY29uIGltYWdlIHNlZSBodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2l0cy9pbnZlbnRvcnkvaWNvbnMvXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBbaXRzTGluZVN0eWxlPXVuZGVmaW5lZF0gQSBzaW5nbGUgbGluZSBzdHlsZVxyXG4gKiBAcGFyYW0ge3N0cmluZ30gaXRzTGluZVN0eWxlLmNvbG9yIHRoZSBsaW5lIGNvbG9yIGFzIHJnYiBvciBoZXhcclxuICogQHBhcmFtIHtudW1iZXJ9IFtpdHNMaW5lU3R5bGUud2lkdGg9NV0gdGhlIGxpbmUgd2lkdGhcclxuICpcclxuICogQHBhcmFtIHtvYmplY3R9IFtpdHNJY29uQ29uZmlnPXVuZGVmaW5lZF0gVGhlIGljb24gc3VidHlwZSBjb25maWd1cmF0aW9uXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBpdHNJY29uQ29uZmlnLnByb3AgVGhlIHByb3BlcnR5IHVzZWQgdG8gZGVmaW5lIGljb24gYXR0cmlidXRlIHN5bWJvbGl6YXRpb25cclxuICogQHBhcmFtIHtzdHJpbmd9IGl0c0ljb25Db25maWcuZGVmYXVsdE5hbWUgVGhlIGRlZmF1bHQgbmFtZSB0byBiZSB1c2VkIGlmIG5vIG90aGVyIG1hdGNoIGlzIGZvdW5kXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBpdHNJY29uQ29uZmlnLmRlZmF1bHRJY29uIFRoZSBkZWZhdWx0IGljb24gdG8gYmUgdXNlZCBmb3Igbm8gb3RoZXIgbWF0Y2hlc1xyXG4gKiBAcGFyYW0ge29iamVjdH0gW2l0c0ljb25Db25maWcuaWNvbkFycmF5PVtdXSBhbiBhcnJheSwgaXRlbXMgd2l0aCBmb3JtYXQgW3Byb3BlcnR5LCBuYW1lLCBpbWddXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBbaXRzTGluZUNvbmZpZz11bmRlZmluZWRdIFRoZSBwcm9wZXJ0eSB1c2VkIHRvIGRlZmluZSBpY29uIGF0dHJpYnV0ZSBzeW1ib2xpemF0aW9uXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBpdHNMaW5lQ29uZmlnLnByb3AgVGhlIHByb3BlcnR5IHVzZWQgdG8gZGVmaW5lIGljb24gYXR0cmlidXRlIHN5bWJvbGl6YXRpb25cclxuICogQHBhcmFtIHtzdHJpbmd9IFtpdHNMaW5lQ29uZmlnLmRlZmF1bHROYW1lPU90aGVyXSBUaGUgZGVmYXVsdCBuYW1lIHRvIGJlIHVzZWQgaWYgbm8gb3RoZXIgbWF0Y2ggaXMgZm91bmRcclxuICogQHBhcmFtIHtzdHJpbmd9IFtpdHNMaW5lQ29uZmlnLmRlZmF1bHRDb2xvcj1yZWRdIFRoZSBkZWZhdWx0IGxpbmUgY29sb3IgdG8gYmUgdXNlZCBmb3Igbm8gb3RoZXIgbWF0Y2hlc1xyXG4gKiBAcGFyYW0ge251bWJlcn0gW2l0c0xpbmVDb25maWcuZGVmYXVsdFdpZHRoPTVdIFRoZSBkZWZhdWx0IGxpbmUgd2lkdGggdG8gYmUgdXNlZCBmb3Igbm8gb3RoZXIgbWF0Y2hlc1xyXG4gKiBAcGFyYW0ge29iamVjdH0gW2l0c0xpbmVDb25maWcubGluZUFycmF5PVtdXSBhbiBhcnJheSwgaXRlbXMgd2l0aCBmb3JtYXQgW3Byb3BlcnR5LCBuYW1lLCBjb2xvciwgb3B0aW9uYWwgd2lkdGhdXHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IGh0bWwgdG8gYmUgYWRkZWQgdG8gdGhlIGxlZ2VuZFxyXG4gKi9cclxuZnVuY3Rpb24gZGVmaW5lTGVnZW5kKGl0c0ljb24sIGl0c0xpbmVTdHlsZSwgaXRzSWNvbkNvbmZpZywgaXRzTGluZUNvbmZpZykge1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG4gICAgbGV0IGljb25IZWlnaHQgPSAxNztcclxuXHJcbiAgICBjaGVja1N0eWxlTnVtYmVyKGl0c0ljb24sIGl0c0xpbmVTdHlsZSwgaXRzSWNvbkNvbmZpZywgaXRzTGluZUNvbmZpZyk7XHJcblxyXG4gICAgbGV0IF9pY29uVXJsUm9vdCA9ICdodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2l0cy9pbnZlbnRvcnkvaWNvbnMvJztcclxuXHJcbiAgICBpZiAoaXRzSWNvbikge1xyXG4gICAgICAgIHJldHVybiBgPGltZyBzcmM9XCIke19pY29uVXJsUm9vdCArIGl0c0ljb259XCIgY2xhc3M9XCJsZWdlbmQtbGF5ZXItaWNvblwiIGhlaWdodD1cIiR7aWNvbkhlaWdodH1cIj5gO1xyXG4gICAgfSBlbHNlIGlmIChpdHNMaW5lU3R5bGUpIHtcclxuICAgICAgICByZXR1cm4gYDxociBzdHlsZT1cImhlaWdodDogJHtpdHNMaW5lU3R5bGUud2lkdGh9cHg7IGJhY2tncm91bmQtY29sb3I6ICR7aXRzTGluZVN0eWxlLmNvbG9yfVwiPmA7XHJcbiAgICB9IGVsc2UgaWYgKGl0c0ljb25Db25maWcpIHtcclxuICAgICAgICBsZXQgb3V0SHRtbCA9ICcnO1xyXG4gICAgICAgIG91dEh0bWwgKz0gJzx1bD4nO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBhIG9mIGl0c0ljb25Db25maWcuaWNvbkFycmF5KSB7XHJcbiAgICAgICAgICAgIG91dEh0bWwgKz0gYDxsaT48c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHthWzFdfTwvc3Bhbj48aW1nIHNyYz1cIiR7X2ljb25VcmxSb290ICsgYVsyXX1cIiBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgaGVpZ2h0PVwiJHtpY29uSGVpZ2h0fVwiPmA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG91dEh0bWwgKz0gYDxsaT48c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtpdHNJY29uQ29uZmlnLmRlZmF1bHROYW1lfTwvc3Bhbj5gICtcclxuICAgICAgICAgICAgYDxpbWcgc3JjPVwiJHtfaWNvblVybFJvb3QgKyBpdHNJY29uQ29uZmlnLmRlZmF1bHRJY29ufVwiIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBoZWlnaHQ9XCIke2ljb25IZWlnaHR9XCI+PC9saT5gO1xyXG4gICAgICAgIG91dEh0bWwgKz0gJzwvdWw+JztcclxuXHJcbiAgICAgICAgcmV0dXJuIG91dEh0bWw7XHJcbiAgICB9IGVsc2UgaWYgKGl0c0xpbmVDb25maWcpIHtcclxuICAgICAgICBsZXQgb3V0SHRtbCA9ICcnO1xyXG4gICAgICAgIG91dEh0bWwgKz0gJzx1bD4nO1xyXG4gICAgICAgIGZvciAobGV0IGxzIG9mIGl0c0xpbmVDb25maWcubGluZUFycmF5KSB7XHJcbiAgICAgICAgICAgIG91dEh0bWwgKz0gYDxsaT48c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtsc1sxXX08L3NwYW4+YCArXHJcbiAgICAgICAgICAgICAgICBgPGhyIHN0eWxlPVwiaGVpZ2h0OiAke2xzWzNdfXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAke2xzWzJdfVwiPmA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG91dEh0bWwgKz0gYDxsaT48c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtpdHNMaW5lQ29uZmlnLmRlZmF1bHROYW1lfTwvc3Bhbj5gICtcclxuICAgICAgICAgICAgYDxociBzdHlsZT1cImhlaWdodDogJHtpdHNMaW5lQ29uZmlnLmRlZmF1bHRXaWR0aH1weDsgYmFja2dyb3VuZC1jb2xvcjogJHtpdHNMaW5lQ29uZmlnLmRlZmF1bHRDb2xvcn1cIj48L2xpPmA7XHJcbiAgICAgICAgb3V0SHRtbCArPSAnPC91bD4nO1xyXG5cclxuICAgICAgICByZXR1cm4gb3V0SHRtbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogSXRzIExheWVyIGNsYXNzXHJcbiAqIEBhdWdtZW50cyBMYXllckJhc2VWZWN0b3JHZW9Kc29uXHJcbiAqL1xyXG5jbGFzcyBMYXllckl0c0ludmVudG9yeSBleHRlbmRzIExheWVyQmFzZVZlY3Rvckdlb0pzb24ge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSVRTIGRldmljZSBsYXllciwgdHlwZXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly90cmFuc3BvcnRhbC5jZWUud2lzYy5lZHUvaXRzL2ludmVudG9yeS9cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIC0gY29uZmlnXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuaWRdIC0gbGF5ZXIgaWRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5uYW1lPVVubmFtZWQgTGF5ZXJdIC0gbGF5ZXIgbmFtZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm9wYWNpdHk9MV0gLSBvcGFjaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnZpc2libGU9dHJ1ZV0gLSBkZWZhdWx0IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5ab29tPXVuZGVmaW5lZF0gLSBtaW4gem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIC0gbWF4IHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnBhcmFtcz17fV0gdGhlIGdldCBwYXJhbWV0ZXJzIHRvIGluY2x1ZGUgdG8gcmV0cmlldmUgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuekluZGV4PTBdIHRoZSB6IGluZGV4IGZvciB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtvcHRpb25zLmxvYWRDYWxsYmFja10gZnVuY3Rpb24gdG8gY2FsbCBvbiBsb2FkLCBjb250ZXh0IHRoaXMgaXMgdGhlIGxheWVyIG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb2xsYXBzZT1mYWxzZV0gaWYgdGhlIGxlZ2VuZCBpdGVtIHNob3VsZCBiZSBpbml0aWFsbHkgY29sbGFwc2VkXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENoZWNrYm94PXRydWVdIGlmIHRoZSBsZWdlbmQgaXRlbSBzaG91bGQgaGF2ZSBhIGNoZWNrYm94IGZvciB2aXNpYmlsaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENvbnRlbnRdIGFkZGl0aW9uYWwgY29udGVudCB0byBhZGQgdG8gdGhlIGxlZ2VuZFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuYXV0b0xvYWQ9ZmFsc2VdIGlmIHRoZSBsYXllciBzaG91bGQgYXV0byBsb2FkIGlmIG5vdCB2aXNpYmxlXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdHwqfSBbb3B0aW9ucy5zdHlsZT11bmRlZmluZWRdIHRoZSBsYXllciBzdHlsZSwgdXNlIG9wZW5sYXllcnMgZGVmYXVsdCBzdHlsZSBpZiBub3QgZGVmaW5lZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5vbkRlbWFuZD1mYWxzZV0gaWYgdGhlIGxheWVyIHNob3VsZCBiZSBsb2FkZWQgYnkgZXh0ZW50IG9uIG1hcCBtb3ZlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMub25EZW1hbmREZWxheT0zMDBdIGRlbGF5IGJlZm9yZSB0aGUgbWFwIG1vdmUgY2FsbGJhY2sgc2hvdWxkIGJlIGNhbGxlZFxyXG4gICAgICogQHBhcmFtIHtNYXBNb3ZlQ2xzfSBbb3B0aW9ucy5tYXBNb3ZlT2JqPW1hcE1vdmVdIGFsdGVybmF0ZSBtYXAgbW92ZSBvYmplY3QgZm9yIHVzZSB3aXRoIG11bHRpIG1hcCBwYWdlc1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLml0c1R5cGUgdGhlIElUUyBkZXZpY2UgdHlwZSwgdXNlIHRoZSB1cmwgZmxhZyBhdCBodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2l0cy9pbnZlbnRvcnkvXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmFkZFBvcHVwPXRydWVdIGlmIHRoZSBwb3B1cCBzaG91bGQgYmUgYWRkZWQgYXV0b21hdGljYWxseVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5pdHNJY29uPXVuZGVmaW5lZF0gdGhlIElUUyBkZXZpY2UgdHlwZSBpY29uIGltYWdlIHNlZSBodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2l0cy9pbnZlbnRvcnkvaWNvbnMvXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLml0c0xpbmVTdHlsZT11bmRlZmluZWRdIEEgc2luZ2xlIGxpbmUgc3R5bGVcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLml0c0xpbmVTdHlsZS5jb2xvciB0aGUgbGluZSBjb2xvciBhcyByZ2Igb3IgaGV4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuaXRzTGluZVN0eWxlLndpZHRoPTVdIHRoZSBsaW5lIHdpZHRoXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLml0c0ljb25Db25maWc9dW5kZWZpbmVkXSBUaGUgaWNvbiBzdWJ0eXBlIGNvbmZpZ3VyYXRpb25cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLml0c0ljb25Db25maWcucHJvcCBUaGUgcHJvcGVydHkgdXNlZCB0byBkZWZpbmUgaWNvbiBhdHRyaWJ1dGUgc3ltYm9saXphdGlvblxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuaXRzSWNvbkNvbmZpZy5kZWZhdWx0TmFtZSBUaGUgZGVmYXVsdCBuYW1lIHRvIGJlIHVzZWQgaWYgbm8gb3RoZXIgbWF0Y2ggaXMgZm91bmRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLml0c0ljb25Db25maWcuZGVmYXVsdEljb24gVGhlIGRlZmF1bHQgaWNvbiB0byBiZSB1c2VkIGZvciBubyBvdGhlciBtYXRjaGVzXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMuaXRzSWNvbkNvbmZpZy5pY29uQXJyYXk9W11dIGFuIGFycmF5LCBpdGVtcyB3aXRoIGZvcm1hdCBbcHJvcGVydHksIG5hbWUsIGltZ11cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMuaXRzTGluZUNvbmZpZz11bmRlZmluZWRdIFRoZSBwcm9wZXJ0eSB1c2VkIHRvIGRlZmluZSBpY29uIGF0dHJpYnV0ZSBzeW1ib2xpemF0aW9uXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5pdHNMaW5lQ29uZmlnLnByb3AgVGhlIHByb3BlcnR5IHVzZWQgdG8gZGVmaW5lIGljb24gYXR0cmlidXRlIHN5bWJvbGl6YXRpb25cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5pdHNMaW5lQ29uZmlnLmRlZmF1bHROYW1lPU90aGVyXSBUaGUgZGVmYXVsdCBuYW1lIHRvIGJlIHVzZWQgaWYgbm8gb3RoZXIgbWF0Y2ggaXMgZm91bmRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5pdHNMaW5lQ29uZmlnLmRlZmF1bHRDb2xvcj1yZWRdIFRoZSBkZWZhdWx0IGxpbmUgY29sb3IgdG8gYmUgdXNlZCBmb3Igbm8gb3RoZXIgbWF0Y2hlc1xyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLml0c0xpbmVDb25maWcuZGVmYXVsdFdpZHRoXSBUaGUgZGVmYXVsdCBsaW5lIHdpZHRoIHRvIGJlIHVzZWQgZm9yIG5vIG90aGVyIG1hdGNoZXNcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucy5pdHNMaW5lQ29uZmlnLmxpbmVBcnJheT1bXV0gYW4gYXJyYXksIGl0ZW1zIHdpdGggZm9ybWF0IFtwcm9wZXJ0eSwgbmFtZSwgY29sb3IsIG9wdGlvbmFsIHdpZHRoID0gNV1cclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5pdHNUeXBlICE9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB0aHJvdyAnaXRzIHR5cGUgbXVzdCBiZSBkZWZpbmVkJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG9wdGlvbnMudHJhbnNmb3JtID0ge2RhdGFQcm9qZWN0aW9uOiBwcm9qNDMyNiwgZmVhdHVyZVByb2plY3Rpb246IHByb2ozODU3fTtcclxuXHJcbiAgICAgICAgbGV0IGFkZFRvTGVnZW5kID0gJyc7XHJcblxyXG4gICAgICAgIC8vIGRlZmluZSBhIHN0eWxlIHdpdGggdGhlIGhlbHBlciBmdW5jdGlvbiBpZiBpdCBpcyBub3QgZXhwbGljaXRseSBkZWZpbmVkXHJcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnN0eWxlID09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIG9wdGlvbnMuc3R5bGUgPSBkZWZpbmVTdHlsZShcclxuICAgICAgICAgICAgICAgIG9wdGlvbnMuaXRzSWNvbiwgb3B0aW9ucy5pdHNMaW5lU3R5bGUsIG9wdGlvbnMuaXRzSWNvbkNvbmZpZywgb3B0aW9ucy5pdHNMaW5lQ29uZmlnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGFkZFRvTGVnZW5kID0gZGVmaW5lTGVnZW5kKFxyXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5pdHNJY29uLCBvcHRpb25zLml0c0xpbmVTdHlsZSwgb3B0aW9ucy5pdHNJY29uQ29uZmlnLCBvcHRpb25zLml0c0xpbmVDb25maWdcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG9wdGlvbnMucGFyYW1zID0gdHlwZW9mIG9wdGlvbnMucGFyYW1zID09ICdvYmplY3QnID8gb3B0aW9ucy5wYXJhbXMgOiB7fTtcclxuICAgICAgICAkLmV4dGVuZChvcHRpb25zLnBhcmFtcywge2Zvcm1hdDogJ0pTT04nLCByZXNvdXJjZTogb3B0aW9ucy5pdHNUeXBlfSk7XHJcblxyXG4gICAgICAgIHN1cGVyKCdodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2l0cy9pbnZlbnRvcnkvJywgb3B0aW9ucyk7XHJcblxyXG4gICAgICAgIC8vYWRkIGFueSBhZGRpdGlvbmFsIGNvbnRlbnQgdG8gdGhlIGxlZ2VuZFxyXG4gICAgICAgIHRoaXMuYWRkTGVnZW5kQ29udGVudChhZGRUb0xlZ2VuZCk7XHJcblxyXG4gICAgICAgIG9wdGlvbnMuYWRkUG9wdXAgPSB0eXBlb2Ygb3B0aW9ucy5hZGRQb3B1cCA9PSAnYm9vbGVhbicgPyBvcHRpb25zLmFkZFBvcHVwIDogdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuYWRkUG9wdXApIHtcclxuICAgICAgICAgICAgbWFwUG9wdXAuYWRkVmVjdG9yUG9wdXAodGhpcywgZnVuY3Rpb24gKHByb3BzKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYDxpZnJhbWUgc3JjPVwiaHR0cDovL3RyYW5zcG9ydGFsLmNlZS53aXNjLmVkdS9pdHMvaW52ZW50b3J5Lz9mZWF0dXJlPSR7cHJvcHNbJ2ZlYXR1cmVHdWlkJ119XCIgYCArXHJcbiAgICAgICAgICAgICAgICAgICAgYGhlaWdodD1cIjI1MFwiIHdpZHRoPVwiMzUwXCI+PC9pZnJhbWU+YDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogY2FsbGJhY2sgdG8gZ2VuZXJhdGUgdGhlIHBhcmFtZXRlcnMgcGFzc2VkIGluIHRoZSBnZXQgcmVxdWVzdFxyXG4gICAgICogQGNhbGxiYWNrIG1ha2VHZXRQYXJhbXNcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBleHRlbnQgLSBleHRlbnQgb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZXh0ZW50Lm1pblggLSBtaW5YXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZXh0ZW50Lm1pblkgLSBtaW5ZXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZXh0ZW50Lm1heFggLSBtYXhYXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZXh0ZW50Lm1heFkgLSBtYXhZXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gem9vbUxldmVsIC0gem9vbSBsZXZlbFxyXG4gICAgICovXHJcbiAgICBtYXBNb3ZlTWFrZUdldFBhcmFtcyhleHRlbnQsIHpvb21MZXZlbCkge1xyXG4gICAgICAgIHN1cGVyLm1hcE1vdmVNYWtlR2V0UGFyYW1zKGV4dGVudCwgem9vbUxldmVsKTtcclxuICAgICAgICBsZXQgbG93ZXJMZWZ0ID0gbmV3IG9sLmdlb20uUG9pbnQoW2V4dGVudC5taW5YLCBleHRlbnQubWluWV0pO1xyXG4gICAgICAgIGxvd2VyTGVmdC50cmFuc2Zvcm0odGhpcy5tYXBQcm9qLCB0aGlzLl9wcm9qZWN0aW9uNDMyNik7XHJcbiAgICAgICAgbGV0IGxvd2VyTGVmdENvb3JkaW5hdGVzID0gbG93ZXJMZWZ0LmdldENvb3JkaW5hdGVzKCk7XHJcbiAgICAgICAgbGV0IHVwcGVyUmlnaHQgPSBuZXcgb2wuZ2VvbS5Qb2ludChbZXh0ZW50Lm1heFgsIGV4dGVudC5tYXhZXSk7XHJcbiAgICAgICAgdXBwZXJSaWdodC50cmFuc2Zvcm0odGhpcy5tYXBQcm9qLCB0aGlzLl9wcm9qZWN0aW9uNDMyNik7XHJcbiAgICAgICAgbGV0IHVwcGVyUmlnaHRDb29yZGluYXRlcyA9IHVwcGVyUmlnaHQuZ2V0Q29vcmRpbmF0ZXMoKTtcclxuXHJcbiAgICAgICAgJC5leHRlbmQodGhpcy5tYXBNb3ZlUGFyYW1zLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBMOiBsb3dlckxlZnRDb29yZGluYXRlc1swXSxcclxuICAgICAgICAgICAgICAgIFI6IHVwcGVyUmlnaHRDb29yZGluYXRlc1swXSxcclxuICAgICAgICAgICAgICAgIEI6IGxvd2VyTGVmdENvb3JkaW5hdGVzWzFdLFxyXG4gICAgICAgICAgICAgICAgVDogdXBwZXJSaWdodENvb3JkaW5hdGVzWzFdXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5ubS5MYXllckl0c0ludmVudG9yeSA9IExheWVySXRzSW52ZW50b3J5O1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckl0c0ludmVudG9yeTtcclxuIl19 /***/ }), +/* 30 */, /* 31 */, -/* 32 */, -/* 33 */ +/* 32 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2987,13 +2989,13 @@ function makeBlueGreenRedGradientZScore(median, stdDev, flipColors) { } exports.makeBlueGreenRedGradientZScore = makeBlueGreenRedGradientZScore; nm.makeBlueGreenRedGradientZScore = makeBlueGreenRedGradientZScore; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29sb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7O0dBRUc7QUFDSCxxQ0FBZ0M7QUFDaEMsb0NBQXNDO0FBQ3RDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7QUFHaEM7Ozs7O0dBS0c7QUFDSCxjQUFjLENBQUM7SUFDWCxJQUFJLFNBQVMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRWpHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUM5RSxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILGlCQUF3QixHQUFHO0lBQ3ZCLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUV6RCxNQUFNLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUMvRSxDQUFDO0FBSkQsMEJBSUM7QUFFRCxFQUFFLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztBQUdyQjs7Ozs7R0FLRztBQUNILDZC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TSxDQUFDO1FBQ3hDLENBQUM7UUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQztBQUNOLENBQUM7QUFmRCx3RUFlQztBQUVELEVBQUUsQ0FBQyw4QkFBOEIsR0FBRyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDExLzMvMjAxNS5cclxuICovXHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4vcHJvdmlkZSc7XHJcbmltcG9ydCAqIGFzIGNoayBmcm9tICcuL2NoZWNrRGVmaW5lZCc7XHJcbmxldCBubSA9IHByb3ZpZGUoJ3V0aWwuY29sb3JzJyk7XHJcblxyXG5cclxuLyoqXHJcbiAqIGhlbHBlciBmdW5jdGlvbiB0byBjb252ZXJ0IHRvIGhleFxyXG4gKiBAcGFyYW0ge251bWJlcnxzdHJpbmd9IHggLSB0aGUgbnVtYmVyIHRvIGNvbnZlcnQgdG8gaGV4XHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IG51bWJlciBhcyBoZXhcclxuICogQHByaXZhdGVcclxuICovXHJcbmZ1bmN0aW9uIF9oZXgoeCkge1xyXG4gICAgbGV0IGhleERpZ2l0cyA9IFtcIjBcIiwgXCIxXCIsIFwiMlwiLCBcIjNcIiwgXCI0XCIsIFwiNVwiLCBcIjZcIiwgXCI3XCIsIFwiOFwiLCBcIjlcIiwgXCJhXCIsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwiZVwiLCBcImZcIl07XHJcblxyXG4gICAgcmV0dXJuIGlzTmFOKHgpID8gXCIwMFwiIDogaGV4RGlnaXRzWyh4IC0geCAlIDE2KSAvIDE2XSArIGhleERpZ2l0c1t4ICUgMTZdO1xyXG59XHJcblxyXG4vKipcclxuICogY29udmVydHMgYW4gUkdCIHN0cmluZyB0byBoZXhcclxuICogQHBhcmFtIHtzdHJpbmd9IHJnYiAtIHJnYiBjb2xvclxyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSByYmcgYXMgaGV4XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmdiMmhleChyZ2IpIHtcclxuICAgIGxldCByZ2IxID0gcmdiLm1hdGNoKC9ecmdiXFwoKFxcZCspLFxccyooXFxkKyksXFxzKihcXGQrKVxcKSQvKTtcclxuXHJcbiAgICByZXR1cm4gKFwiI1wiICsgX2hleChyZ2IxWzFdKSArIF9oZXgocmdiMVsyXSkgKyBfaGV4KHJnYjFbM10pKS50b1VwcGVyQ2FzZSgpO1xyXG59XHJcblxyXG5ubS5yZ2IyaGV4ID0gcmdiMmhleDtcclxuXHJcblxyXG4vKipcclxuICogQ29udmVydCBoZXggc3RyaW5nIHRvIFJHQiBvciBSR0JBIHN0cmluZ1xyXG4gKiBAcGFyYW0ge3N0cmluZ30gaGV4U3RyaW5nIC0gaGV4IGNvbG9yIHN0cmluZ1xyXG4gKiBAcGFyYW0ge251bWJlcn0gW2FscGhhVmFsPXVuZGVmaW5lZF0gQWxwaGEgdmFsdWVcclxuICogQHJldHVybnMge3N0cmluZ30gLSByZ2Igb3IgcmdiYSBjb2xvclxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGhleEFscGhhVG9SZ2JPclJnYmEoaGV4U3RyaW5nLCBhbHBoYVZhbCkge1xyXG4gICAgaGV4U3RyaW5nID0gKChoZXhTdHJpbmcuY2hhckF0KDApID09IFwiI1wiKSA/IGhleFN0cmluZy5zdWJzdHJpbmcoMSwgNykgOiBoZXhTdHJpbmcpO1xyXG4gICAgbGV0IHIgPSBwYXJzZUludChoZXhTdHJpbmcuc3Vic3RyaW5nKDAsIDIpLCAxNikudG9TdHJpbmcoKSB8fCAnMCc7XHJcbiAgICBsZXQgZyA9IHBhcnNlSW50KGhleFN0cmluZy5zdWJzdHJpbmcoMiwgNCksIDE2KS50b1N0cmluZygpIHx8ICcwJztcclxuICAgIGxldCBiID0gcGFyc2VJbnQoaGV4U3RyaW5nLnN1YnN0cmluZyg0LCA2KSwgMTYpLnRvU3RyaW5nKCkgfHwgJzAnO1xyXG4gICAgaWYgKGFscGhhVmFsKSB7XHJcbiAgICAgICAgcmV0dXJuIGByZ2JhKCR7cn0sJHtnfSwke2J9LCR7YWxwaGFWYWx9KWA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBgcmdiYSgke3J9LCR7Z30sJHtifSlgO1xyXG4gICAgfVxyXG59XHJcblxyXG5ubS5oZXhBbHBoYVRvUmdiT3JSZ2JhID0gaGV4QWxwaGFUb1JnYk9yUmdiYTtcclxuXHJcblxyXG4vKipcclxuICogYWRkcyBhbHBoYSB2YWx1ZSB0byByZ2Igc3RyaW5nICdyZ2IociwgYiwgZyknLCByZXR1cm5zICdyZ2JhKHIsIGcsIGIsIGEpJ1xyXG4gKiBAcGFyYW0ge3N0cmluZ30gcmdiIC0gcmdiIGNvbG9yXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBhbHBoYSAtIGFscGhhIHZhbHVlIDAgdG8gMVxyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSByZ2JhIGNvbG9yXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmdiVG9SZ2JhKHJnYiwgYWxwaGEpIHtcclxuICAgIGxldCBwaWVjZXMgPSByZ2Iuc3BsaXQoJywnKTtcclxuICAgIHBpZWNlc1swXSA9IHBpZWNlc1swXS5yZXBsYWNlKCdyZ2InLCAncmdiYScpO1xyXG4gICAgcGllY2VzWzJdID0gcGllY2VzWzJdLnJlcGxhY2UoJyknLCAnJyk7XHJcbiAgICBwaWVjZXMucHVzaCgnICcgKyBhbHBoYS50b0ZpeGVkKDEpICsgJyknKTtcclxuXHJcbiAgICByZXR1cm4gcGllY2VzLmpvaW4oJywnKTtcclxufVxyXG5cclxubm0ucmdiVG9SZ2JhID0gcmdiVG9SZ2JhO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBAdHlwZWRlZiB7ZnVuY3Rpb259IGNvbG9yTG9va3VwQnlOdW1iZXJcclxuICogQHBhcmFtIHtudW1iZXJ9IG51bSAtIHRoZSBudW1iZXIgdG8gdXNlIHRvIHJldHJpZXZlIHRoZSBjb2xvclxyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSByZ2IgY29sb3JcclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIE1ha2UgYSBibHVlIGdyZWVuIHJlZCBncmFkaWVudFxyXG4gKiBAcGFyYW0ge251bWJlcn0gbWluVmFsIC0gbWluaW11bSB2YWx1ZVxyXG4gKiBAcGFyYW0ge251bWJlcn0gbWF4VmFsIC0gbWF4aW11bSB2YWx1ZVxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGZsaXBDb2xvcnMgLSBpZiB0aGUgY29sb3JzIHNob3VsZCBiZSBmbGlwcGVkXHJcbiAqIEByZXR1cm5zIHtjb2xvckxvb2t1cEJ5TnVtYmVyfSBjb2xvciBsb29rdXAgZnVuY3Rpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBtYWtlQmx1ZUdyZWVuUmVkR3JhZGllbnQobWluVmFsLCBtYXhWYWwsIGZsaXBDb2xvcnMpIHtcclxuXHJcbiAgICBpZiAodHlwZW9mIGZsaXBDb2xvcnMgIT0gXCJib29sZWFuXCIpIHtcclxuICAgICAgICBmbGlwQ29sb3JzID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0aGVWYWwpIHtcclxuICAgICAgICBsZXQgciwgZywgYjtcclxuICAgICAgICBsZXQgcmF0aW87XHJcblxyXG4gICAgICAgIGlmIChjaGsudW5kZWZpbmVkT3JOdWxsKHRoZVZhbCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuICdyZ2IoMTAwLDEwMCwxMDApJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBwZXJjZW50ID0gKHRoZVZhbCAtIG1pblZhbCkgLyAobWF4VmFsIC0gbWluVmFsKTtcclxuXHJcbiAgICAgICAgaWYgKGZsaXBDb2xvcnMgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBwZXJjZW50ID0gMSAtIHBlcmNlbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocGVyY2VudCA+PSAxKSB7XHJcbiAgICAgICAgICAgIHIgPSAyNTU7XHJcbiAgICAgICAgICAgIGcgPSAwO1xyXG4gICAgICAgICAgICBiID0gMDtcclxuICAgICAgICB9IGVsc2UgaWYgKHBlcmNlbnQgPD0gMCkge1xyXG4gICAgICAgICAgICByID0gMDtcclxuICAgICAgICAgICAgZyA9IDA7XHJcbiAgICAgICAgICAgIGIgPSAyNTU7XHJcbiAgICAgICAgfSBlbHNlIGlmIChwZXJjZW50IDwgLjI1KSB7XHJcbiAgICAgICAgICAgIC8vIGdyZWVuIHVwLCBibHVlIGNvbnN0YW50XHJcbiAgICAgICAgICAgIHIgPSAwO1xyXG4gICAgICAgICAgICBnID0gTWF0aC5mbG9vcigyNTUgKiBwZXJjZW50IC8gMC4yNSk7XHJcbiAgICAgICAgICAgIGIgPSAyNTU7XHJcbiAgICAgICAgfSBlbHNlIGlmIChwZXJjZW50IDwgMC41MCkge1xyXG4gICAgICAgICAgICAvL2JsdWUgZG93biwgZ3JlZW4gY29uc3RhbnRcclxuICAgICAgICAgICAgcmF0aW8gPSAocGVyY2VudCAtIDAuMjUpIC8gMC4yNTtcclxuICAgICAgICAgICAgciA9IDA7XHJcbiAgICAgICAgICAgIGcgPSAyNTU7XHJcbiAgICAgICAgICAgIGIgPSAyNTUgLSBNYXRoLmZsb29yKDI1NSAqIHJhdGlvKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHBlcmNlbnQgPCAwLjc1KSB7XHJcbiAgICAgICAgICAgIC8vIHJlZCB1cCwgZ3JlZW4gY29uc3RhbnRcclxuICAgICAgICAgICAgcmF0aW8gPSAocGVyY2VudCAtIDAuNSkgLyAwLjI1O1xyXG4gICAgICAgICAgICByID0gTWF0aC5mbG9vcigyNTUgKiByYXRpbyk7XHJcbiAgICAgICAgICAgIGcgPSAyNTU7XHJcbiAgICAgICAgICAgIGIgPSAwO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIGdyZWVuIGRvd24sIHJlZCBjb25zdGFudFxyXG4gICAgICAgICAgICByYXRpbyA9IChwZXJjZW50IC0gMC43NSkgLyAwLjI1O1xyXG4gICAgICAgICAgICByID0gMjU1O1xyXG4gICAgICAgICAgICBnID0gMjU1IC0gTWF0aC5mbG9vcigyNTUgKiByYXRpbyk7XHJcbiAgICAgICAgICAgIGIgPSAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgciA9IHIudG9GaXhlZCgpO1xyXG4gICAgICAgIGcgPSBnLnRvRml4ZWQoKTtcclxuICAgICAgICBiID0gYi50b0ZpeGVkKCk7XHJcblxyXG4gICAgICAgIHJldHVybiAncmdiKCcgKyByICsgJywnICsgZyArICcsJyArIGIgKyAnKSc7XHJcbiAgICB9O1xyXG59XHJcblxyXG5ubS5tYWtlQmx1ZUdyZWVuUmVkR3JhZGllbnQgPSBtYWtlQmx1ZUdyZWVuUmVkR3JhZGllbnQ7XHJcblxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZSBhIGZ1bmN0aW9uIHRoYXQgd2lsbCByZXR1cm4gY29sb3JzIGJhc2VkIG9uIGEgZ3JhZGllbnRcclxuICogQHBhcmFtIHtudW1iZXJ9IG1lZGlhbiAtIG1lZGlhbiB2YWx1ZVxyXG4gKiBAcGFyYW0ge251bWJlcn0gc3RkRGV2IC0gc3RhbmRhcmQgZGV2aWF0aW9uXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gZmxpcENvbG9ycyAtIGlmIHRoZSBjb2xvcnMgc2hvdWxkIGJlIGZsaXBwZWRcclxuICogQHJldHVybnMge2NvbG9yTG9va3VwQnlOdW1iZXJ9IGNvbG9yIGxvb2t1cCBmdW5jdGlvblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VCbHVlR3JlZW5SZWRHcmFkaWVudFpTY29yZShtZWRpYW4sIHN0ZERldiwgZmxpcENvbG9ycykge1xyXG5cclxuICAgIGxldCBncmQgPSBtYWtlQmx1ZUdyZWVuUmVkR3JhZGllbnQoLTIuNSwgMi41LCBmbGlwQ29sb3JzKTtcclxuXHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRoZVZhbCkge1xyXG5cclxuICAgICAgICBsZXQgelNjb3JlO1xyXG4gICAgICAgIGlmICh0aGVWYWwgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB6U2NvcmUgPSBudWxsO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHpTY29yZSA9ICh0aGVWYWwgLSBtZWRpYW4pIC8gc3RkRGV2O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGdyZCh6U2NvcmUpO1xyXG4gICAgfTtcclxufVxyXG5cclxubm0ubWFrZUJsdWVHcmVlblJlZEdyYWRpZW50WlNjb3JlID0gbWFrZUJsdWVHcmVlblJlZEdyYWRpZW50WlNjb3JlO1xyXG4iXX0= /***/ }), +/* 33 */, /* 34 */, /* 35 */, -/* 36 */, -/* 37 */ +/* 36 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3002,7 +3004,7 @@ nm.makeBlueGreenRedGradientZScore = makeBlueGreenRedGradientZScore; */ Object.defineProperty(exports, "__esModule", { value: true }); -var ItsLayerCollection_1 = __webpack_require__(22); +var ItsLayerCollection_1 = __webpack_require__(21); var LayerLegend_1 = __webpack_require__(16); var quickMap_1 = __webpack_require__(7); var map = quickMap_1.default(); @@ -3018,7 +3020,7 @@ var layerArray = [ ]; var legend = new LayerLegend_1.default(layerArray, 'legend-container', {}); console.log('it works'); - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRzTWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaXRzTWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFHSCwrRUFBMEU7QUFDMUUsaUVBQTREO0FBQzVELHlEQUFvRDtBQUVwRCxJQUFJLEdBQUcsR0FBRyxrQkFBUSxFQUFFLENBQUM7QUFFckIsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUVwQixJQUFJLGtCQUFrQixHQUFHLElBQUksNEJBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFckQsSUFBSSxVQUFVLEdBQUc7SUFDYjtRQUNJLFNBQVMsRUFBRSxzQkFBc0I7UUFDakMsUUFBUSxFQUFFLEtBQUs7UUFDZixRQUFRLEVBQUUsSUFBSTtRQUNkLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxNQUFNO0tBQ25DO0NBQ0osQ0FBQztBQUVGLElBQUksTUFBTSxHQUFHLElBQUkscUJBQVcsQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFakUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzE4LzIwMTUuXHJcbiAqL1xyXG5cclxuXHJcbmltcG9ydCBJdHNMYXllckNvbGxlY3Rpb24gZnJvbSAnLi4vLi4vc3JjL2NvbGxlY3Rpb25zL0l0c0xheWVyQ29sbGVjdGlvbic7XHJcbmltcG9ydCBMYXllckxlZ2VuZCBmcm9tICcuLi8uLi9zcmMvY29sbGVjdGlvbnMvTGF5ZXJMZWdlbmQnO1xyXG5pbXBvcnQgcXVpY2tNYXAgZnJvbSAnLi4vLi4vc3JjL29sSGVscGVycy9xdWlja01hcCc7XHJcblxyXG5sZXQgbWFwID0gcXVpY2tNYXAoKTtcclxuXHJcbndpbmRvd1snbWFwJ10gPSBtYXA7XHJcblxyXG5sZXQgaXRzTGF5ZXJDb2xsZWN0aW9uID0gbmV3IEl0c0xheWVyQ29sbGVjdGlvbihtYXApO1xyXG5cclxubGV0IGxheWVyQXJyYXkgPSBbXHJcbiAgICB7XHJcbiAgICAgICAgZ3JvdXBOYW1lOiAnSVRTIEludmVudG9yeSBMYXllcnMnLFxyXG4gICAgICAgIGNvbGxhcHNlOiBmYWxzZSxcclxuICAgICAgICBhZGRDaGVjazogdHJ1ZSxcclxuICAgICAgICBpdGVtczogaXRzTGF5ZXJDb2xsZWN0aW9uLmxheWVyc1xyXG4gICAgfVxyXG5dO1xyXG5cclxubGV0IGxlZ2VuZCA9IG5ldyBMYXllckxlZ2VuZChsYXllckFycmF5LCAnbGVnZW5kLWNvbnRhaW5lcicsIHt9KTtcclxuXHJcbmNvbnNvbGUubG9nKCdpdCB3b3JrcycpO1xyXG4iXX0= /***/ }) /******/ ]); diff --git a/test/serve/js/itsMap.js.map b/test/serve/js/itsMap.js.map index 013f727..f99fcf3 100644 --- a/test/serve/js/itsMap.js.map +++ b/test/serve/js/itsMap.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap b4e25e5e5539f3f3f6dd?fe66","webpack:///./src/util/provide.ts?5c82","webpack:///external \"$\"?57aa","webpack:///external \"ol\"?81ed","webpack:///./src/util/makeGuid.ts?e80e","webpack:///./src/olHelpers/mapPopup.ts?5d6c","webpack:///./src/olHelpers/mapInteractionBase.ts?f419","webpack:///./src/olHelpers/mapMove.ts?6a2b","webpack:///./src/olHelpers/quickMap.ts?1069","webpack:///./src/layers/LayerBase.ts?bf94","webpack:///./src/util/checkDefined.ts?bcd7","webpack:///./src/olHelpers/mapMoveCls.ts?cd45","webpack:///./src/olHelpers/mapPopupCls.ts?e3f7","webpack:///./src/olHelpers/quickMapBase.ts?fb65","webpack:///./src/olHelpers/zoomResolutionConvert.ts?dd4b","webpack:///./src/collections/LayerLegend.ts","webpack:///./src/layers/LayerBaseVector.ts?c105","webpack:///./src/olHelpers/projections.ts","webpack:///./src/collections/ItsLayerCollection.ts","webpack:///./src/layers/LayerBaseVectorGeoJson.ts","webpack:///./src/layers/LayerItsInventory.ts","webpack:///./src/util/colors.ts","webpack:///./test/demo/itsMap.ts"],"names":[],"mappings":"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","file":"itsMap.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\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 37);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap b4e25e5e5539f3f3f6dd","/**\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","module.exports = $;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"$\"\n// module id = 1\n// module chunks = 0 1 2 3 4 5 6","module.exports = ol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ol\"\n// module id = 2\n// module chunks = 0 1 2 3","/**\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","/**\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\nexport const mapPopup = new MapPopupCls() as MapPopupCls;\r\nexport default mapPopup;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/olHelpers/mapPopup.ts","/**\r\n * Created by gavorhes on 12/8/2015.\r\n */\r\nimport provide from '../util/provide';\r\nimport ol = require('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","/**\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","/**\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 = require('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 {ol.Map} 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 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","import * as zoomResolutionConvert from '../olHelpers/zoomResolutionConvert';\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport makeGuid from '../util/makeGuid';\r\nimport $ = require('jquery');\r\n\r\nconst nm = provide('layers');\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 protected _legendCheckbox: boolean;\r\n protected _url: string;\r\n protected _opacity: number;\r\n protected _minZoom: number;\r\n protected _maxZoom: number;\r\n protected _visible: boolean;\r\n protected _loaded: boolean;\r\n protected _zIndex: number;\r\n protected _legendContent: string;\r\n protected _params: any;\r\n protected _id: string;\r\n protected _name: string;\r\n protected _source: ol.source.Source;\r\n protected _animate: boolean;\r\n protected _legendCollapse: boolean;\r\n protected _maxResolution: number;\r\n protected _minResolution: number;\r\n protected _$legendDiv: JQuery;\r\n loadCallback: Function;\r\n protected _olLayer: ol.layer.Layer;\r\n protected _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 additionalContent - additional content to add to legend\r\n * @private\r\n */\r\n _addLegendContent(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 get id(): string{\r\n return this._id;\r\n }\r\n\r\n set id(newId: string){\r\n this._id = newId;\r\n }\r\n\r\n get animate(): boolean{\r\n return this._animate;\r\n }\r\n\r\n set animate(animate: boolean){\r\n this._animate = animate;\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","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","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 = require('custom-ol');\r\nimport $ = 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<number>;\r\n _mapMoveCallbackTimeout: Array<number>;\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","/**\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 = require('custom-ol');\r\nimport {LayerBaseVector} from \"../layers/LayerBaseVector\";\r\nimport LayerEsriMapServer from \"../layers/LayerEsriMapServer\";\r\nimport $ = 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 private _popupOpen: boolean;\r\n private _passThroughLayerFeatureArray: Array<FeatureLayerProperties>;\r\n private _currentPopupIndex: number;\r\n private _popupContentLength: number;\r\n private _esriMapServiceLayers: Array<LayerEsriMapServer>;\r\n private _$popupCloser: JQuery;\r\n private _$popupContent: JQuery;\r\n private _$popupContainer: JQuery;\r\n private _popupOverlay: ol.Overlay;\r\n private _arrPopupLayers: Array<LayerBaseVector>;\r\n private _popupCoordinate: ol.Coordinate;\r\n private _popupChangedFunctions: Array<popupChangedFunction>;\r\n private _mapClickFunctions: Array<Function>;\r\n private _selectionLayerLookup: Object;\r\n private _arrPopupLayerIds: Array<string>;\r\n private _arrPopupLayerNames: Array<string>;\r\n private _arrPopupOlLayers: Array<ol.layer.Vector>;\r\n private _arrPopupContentFunction: Array<popupCallback>;\r\n private _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: LayerBaseVector, selectionStyle: {color?: string, width?: number, olStyle?: ol.style.Style}): 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?: {color?: string, width?: number, olStyle?: ol.style.Style}) {\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","/**\r\n * Created by gavorhes on 12/15/2015.\r\n */\r\n\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport $ = require('jquery');\r\nconst nm = provide('olHelpers');\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 const controls = ol.control.defaults({\r\n attributionOptions: {collapsible: false}\r\n }\r\n );\r\n\r\n const 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 let map = new ol.Map({\r\n layers: [osmLayer],\r\n target: options.divId,\r\n controls: controls,\r\n view: view\r\n });\r\n\r\n if (options.fullScreen) {\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","/**\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","/**\r\n * Created by gavorhes on 12/16/2015.\r\n */\r\n\r\nimport provide from '../util/provide';\r\nimport makeGuid from '../util/makeGuid';\r\nimport mapMove from '../olHelpers/mapMove';\r\n\r\nlet nm = provide('collections');\r\nimport $ = require('jquery');\r\n\r\nclass LayerGroup {\r\n groupLayers: any;\r\n groupLayersLookup: any;\r\n groupGroupsLookup: any;\r\n groupGroups: any;\r\n itemIdArray: any;\r\n groupId: any;\r\n groupName: any;\r\n allLayerArray: any;\r\n parent: any;\r\n allGroupArray: any;\r\n allGroupLookup: any;\r\n allLayerLookup: any;\r\n collapse: any;\r\n addCheck: any;\r\n layerParentLookup: any;\r\n\r\n /**\r\n *\r\n * @param {object} [groupConfig={}] - group configuration object\r\n * @param {string} groupConfig.groupName - the group name\r\n * @param {boolean} [groupConfig.collapse=false] - if the group should be collapsed initially\r\n * @param {boolean} [groupConfig.addCheck=true] - if the group should have a checkbox controlling visibility of all layers\r\n * @param {LayerGroup} [parent=undefined] - the parent group\r\n */\r\n constructor(groupConfig?, parent?) {\r\n this.groupLayers = [];\r\n this.groupLayersLookup = {};\r\n this.groupGroups = [];\r\n this.groupGroupsLookup = {};\r\n this.itemIdArray = [];\r\n\r\n if (typeof groupConfig == 'undefined') {\r\n this.parent = null;\r\n this.groupId = 'root';\r\n this.groupName = 'root';\r\n this.allGroupLookup = {root: this};\r\n this.allGroupArray = [this];\r\n this.allLayerArray = [];\r\n this.allLayerLookup = {};\r\n this.layerParentLookup = {};\r\n this.collapse = false;\r\n this.addCheck = false;\r\n } else {\r\n this.groupId = makeGuid();\r\n this.parent = parent;\r\n this.groupName = groupConfig.groupName;\r\n this.collapse = typeof groupConfig.collapse == 'boolean' ? groupConfig.collapse : false;\r\n this.addCheck = typeof groupConfig.addCheck == 'boolean' ? groupConfig.addCheck : true;\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {object} groupConfig - configuration object\r\n * @param {string} groupConfig.groupName - the group name\r\n * @param {boolean} groupConfig.collapse if the group should be collapsed initially\r\n * @param {boolean} groupConfig.addCheck if the group should have a checkbox controlling visibility of all layers\r\n * @param {Array<LayerGroup>} parents parent groups\r\n * @returns {LayerGroup} the layer group just added\r\n */\r\n addGroup(groupConfig, parents) {\r\n let parent;\r\n if (parents.length > 0) {\r\n parent = parents[parents.length - 1];\r\n } else {\r\n parent = 'root';\r\n }\r\n\r\n\r\n /**\r\n * @type {LayerGroup}\r\n */\r\n let parentGroup = this.allGroupLookup[parent];\r\n let newGroup = new LayerGroup(groupConfig, parentGroup);\r\n this.allGroupLookup[newGroup.groupId] = newGroup;\r\n this.allGroupArray.push(newGroup);\r\n\r\n parentGroup.groupGroups.push(newGroup);\r\n parentGroup.groupGroupsLookup[newGroup.groupId] = newGroup;\r\n\r\n if (parentGroup.itemIdArray.indexOf(newGroup.groupId) > 0) {\r\n console.log(newGroup.groupId);\r\n throw 'layer and group ids must be unique';\r\n }\r\n parentGroup.itemIdArray.push(newGroup.groupId);\r\n\r\n return newGroup;\r\n }\r\n\r\n /**\r\n *\r\n * @param {LayerBase} newLayer the layer to be added\r\n * @param {Array} parents array\r\n */\r\n addLegendLayer(newLayer, parents) {\r\n let parent;\r\n if (parents.length > 0) {\r\n parent = parents[parents.length - 1];\r\n } else {\r\n parent = 'root';\r\n }\r\n\r\n this.allLayerLookup[newLayer.id] = newLayer;\r\n this.allLayerArray.push(newLayer);\r\n\r\n /**\r\n * @type {LayerGroup}\r\n */\r\n let parentGroup = this.allGroupLookup[parent];\r\n\r\n parentGroup.groupLayers.push(newLayer);\r\n parentGroup.groupLayersLookup[newLayer.id] = newLayer;\r\n if (parentGroup.itemIdArray.indexOf(newLayer.id) > 0) {\r\n console.log(newLayer.id);\r\n throw 'layer and group ids must be unique';\r\n }\r\n parentGroup.itemIdArray.push(newLayer.id);\r\n\r\n this.layerParentLookup[newLayer.id] = parentGroup;\r\n\r\n }\r\n\r\n getLegendHtml(legendId, options) {\r\n\r\n\r\n let legendHtml = `<ul id=\"${legendId}\" class=\"legend-container\">`;\r\n\r\n legendHtml += `<li>${options.legendTitle}<input type=\"checkbox\" checked id=\"suppress-by-extent-${legendId}\" class=\"suppress-by-extent\">` +\r\n `<label title=\"Suppress layers not visible at this zoom level\" for=\"suppress-by-extent-${legendId}\">` +\r\n `<span></span>` +\r\n `</label></li>`;\r\n\r\n legendHtml += this._buildLegend(this.itemIdArray, this, options.layerDivClasses) + '</ul>';\r\n\r\n return legendHtml;\r\n }\r\n\r\n /**\r\n * @param {Array} itemIds the items to process\r\n * @param {LayerGroup} theGroup new group\r\n * @param {Array} [layerDivClasses=[]] optional classes to apply to the layer divs\r\n * @static\r\n * @returns {string} html string\r\n */\r\n _buildLegend(itemIds, theGroup, layerDivClasses) {\r\n\r\n if (itemIds.length == 0) {\r\n return '';\r\n }\r\n\r\n let theHml = '';\r\n\r\n let itemId = itemIds[0];\r\n\r\n if (theGroup.groupLayersLookup[itemId]) {\r\n\r\n /**\r\n * @type {LayerBase}\r\n */\r\n let lyr = theGroup.groupLayersLookup[itemId];\r\n theHml += `<li id=\"${lyr.id}-layer-li\" class=\"legend-layer-li ${layerDivClasses.join(' ')}\">` + lyr.getLegendDiv() + '</li>';\r\n\r\n\r\n } else if (theGroup.groupGroupsLookup[itemId]) {\r\n /**\r\n * type {LayerGroup}\r\n */\r\n let otherGroup = theGroup.groupGroupsLookup[itemId];\r\n\r\n theHml += `<li>`;\r\n theHml += `<div id=\"${otherGroup.groupId}-legend-layer-div\" ` +\r\n `class=\"legend-layer-group ${layerDivClasses.join(' ')}\">`;\r\n\r\n if (otherGroup.addCheck) {\r\n theHml += `<input type=\"checkbox\" checked id=\"${otherGroup.groupId}-group-chck\">` +\r\n `<label for=\"${otherGroup.groupId}-group-chck\" title=\"Click arrow to expand or collapse\">${otherGroup.groupName}</label>`;\r\n } else {\r\n theHml += `<label title=\"Click arrow to expand or collapse\">${otherGroup.groupName}</label>`;\r\n }\r\n\r\n theHml += `<span title=\"Expand/Collapse\" class=\"layer-group-expander`;\r\n theHml += `${otherGroup.collapse ? ' legend-layer-group-initial-collapse' : ''}\">`;\r\n theHml += otherGroup.collapse ? '▶' : '▼';\r\n theHml += '</span>';\r\n\r\n //parents.push(groupId);\r\n theHml += '<ul>' + this._buildLegend(otherGroup.itemIdArray, otherGroup, layerDivClasses) + '</ul>';\r\n theHml += '</div>';\r\n theHml += '</li>';\r\n }\r\n\r\n return theHml + this._buildLegend(itemIds.slice(1), theGroup, layerDivClasses);\r\n }\r\n}\r\n\r\n/**\r\n * a wrapper to make a legend\r\n */\r\nclass LayerLegend {\r\n\r\n $divElement: any;\r\n _legendItems: any;\r\n layerGroup: any;\r\n legendId: any;\r\n\r\n /**\r\n *\r\n * @param {Array} legendItems array of layers or objects with {groupName: {string}, collapse: {boolean}, addCheck: {boolean}, items: {Array}}\r\n * @param {string} divId the div where the legend should be added\r\n * @param {object} options for legend\r\n * @param {Array} [options.layerDivClasses=[]] optional array of classes to be applied to the layer legend divs for custom styling\r\n * @param {string} [options.legendTitle=Legend] the legend title\r\n * @param {boolean} [options.scaleDependent=true] if legend display is scale dependent\r\n */\r\n constructor(legendItems, divId, options) {\r\n for (let i of legendItems) {\r\n if (typeof i == 'undefined') {\r\n throw 'undefined item passed in array to legend constructor';\r\n }\r\n }\r\n\r\n options = options || {};\r\n\r\n options.legendTitle = typeof options.legendTitle == 'string' ? options.legendTitle : 'Legend';\r\n options.scaleDependent = typeof options.scaleDependent == 'boolean' ? options.scaleDependent : true;\r\n options.layerDivClasses = options.layerDivClasses || [];\r\n\r\n // if legend display is scale dependent, make sure the mapMove object is initialized first\r\n if (options.scaleDependent) {\r\n mapMove.checkInit();\r\n }\r\n\r\n this.$divElement = $('#' + divId);\r\n\r\n this._legendItems = legendItems;\r\n\r\n this.layerGroup = new LayerGroup();\r\n\r\n this._buildTree(legendItems);\r\n\r\n this.legendId = makeGuid();\r\n\r\n this.$divElement.append(this.layerGroup.getLegendHtml(this.legendId, options));\r\n\r\n for (let l of this.layerGroup.allLayerArray){\r\n l.applyCollapse();\r\n }\r\n\r\n let _this = this;\r\n //// if legend display is scale dependent, make sure the mapMove object is initialized first\r\n if (options.scaleDependent) {\r\n mapMove.checkInit();\r\n\r\n mapMove.addCallback(function (ext, zoom, evt) {\r\n\r\n if (typeof evt == 'undefined' || evt == 'change:resolution') {\r\n for (let lyr of this.layerGroup.allLayerArray) {\r\n let $lyrLi = $('#' + lyr.id + '-layer-li');\r\n if (zoom > lyr.maxZoom || zoom < lyr.minZoom) {\r\n $lyrLi.addClass('layer-not-visible');\r\n } else {\r\n $lyrLi.removeClass('layer-not-visible');\r\n }\r\n }\r\n }\r\n }, this, 100, true, 'legend1');\r\n }\r\n\r\n // <editor-fold desc=\"add event listeners\">\r\n\r\n this.$divElement.find(\".suppress-by-extent\").change(function () {\r\n let legendLayerLis = $('.legend-layer-li');\r\n if (this.checked) {\r\n legendLayerLis.removeClass('layer-force-show');\r\n } else {\r\n legendLayerLis.addClass('layer-force-show');\r\n }\r\n });\r\n\r\n\r\n this.$divElement.find('.legend-check').change(function () {\r\n let lyrId = this.id.replace('-legend-layer-check', '');\r\n _this.layerGroup.allLayerLookup[lyrId].visible = this.checked;\r\n });\r\n\r\n this.$divElement.find('.legend-layer-group > input[type=checkbox]').change(function () {\r\n $(this).siblings('ul').find('input[type=checkbox]').prop('checked', this.checked).trigger('change');\r\n });\r\n\r\n this.$divElement.find('.layer-group-expander').click(function () {\r\n let $this = $(this);\r\n $this.removeClass('legend-layer-group-initial-collapse');\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 this.$divElement.find('.legend-layer-group-initial-collapse').trigger('click');\r\n // </editor-fold>\r\n }\r\n\r\n\r\n /**\r\n * @param {Array} [legendItems=this._layerConfig] the legend items\r\n * @param {Array} [parents=[]] the ordered list of groups in which this item is a member\r\n * @private\r\n */\r\n _buildTree(legendItems, parents?) {\r\n\r\n if (legendItems.length == 0) {\r\n return;\r\n }\r\n\r\n let oneItem = legendItems[0];\r\n\r\n //reset the parent if the item is in the base array\r\n if (this._legendItems.indexOf(oneItem) > -1 || typeof parents == 'undefined') {\r\n parents = [];\r\n }\r\n\r\n if (typeof oneItem['groupName'] !== 'undefined') {\r\n let groupItem = legendItems[0];\r\n let newGroup = this.layerGroup.addGroup(groupItem, parents);\r\n parents.push(newGroup.groupId);\r\n this._buildTree(groupItem.items, parents);\r\n } else {\r\n /**\r\n * @type {LayerBase}\r\n */\r\n let layerItem = legendItems[0];\r\n\r\n this.layerGroup.addLegendLayer(layerItem, parents);\r\n }\r\n\r\n this._buildTree(legendItems.slice(1), parents);\r\n }\r\n\r\n}\r\n\r\nnm.LayerLegend = LayerLegend;\r\nexport default LayerLegend;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/collections/LayerLegend.ts","import {LayerBase, LayerBaseOptions} from './LayerBase';\r\nimport mapMove from '../olHelpers/mapMove';\r\nimport MapMoveCls from '../olHelpers/mapMoveCls'\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport $ = require('jquery');\r\n\r\nconst nm = provide('layers');\r\n\r\nexport interface makeMapMoveParams {\r\n /**\r\n *\r\n * @param lyr\r\n * @param extent\r\n * @param zoomLevel\r\n */\r\n (lyr: LayerBaseVector, extent: Array<number>, zoomLevel?: number): any\r\n}\r\n\r\n\r\n\r\n\r\nexport interface LayerBaseVectorOptions extends LayerBaseOptions{\r\n autoLoad?: boolean;\r\n style?: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction;\r\n onDemand?: boolean;\r\n onDemandDelay?: number;\r\n mapMoveMakeGetParams?: makeMapMoveParams;\r\n mapMoveObj?: MapMoveCls;\r\n renderOrder?: (a: ol.Feature, b: ol.Feature) => number;\r\n\r\n}\r\n\r\n\r\n\r\n/**\r\n * The Vector layer base\r\n * @augments LayerBase\r\n * @abstract\r\n */\r\nexport class LayerBaseVector extends LayerBase {\r\n _olLayer: ol.layer.Vector;\r\n _source: ol.source.Vector;\r\n _style: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction;\r\n _autoLoad: boolean;\r\n _onDemand: boolean;\r\n _onDemandDelay: number;\r\n _mapMoveMakeGetParams: makeMapMoveParams;\r\n _mapMoveParams: any;\r\n _mapMove: MapMoveCls;\r\n _projectionMap: ol.proj.Projection;\r\n _projection4326: ol.proj.Projection;\r\n\r\n\r\n\r\n /**\r\n * The base vector layer\r\n * @param {string} url - pass an empty string to prevent default load and add from a json 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 *\r\n * @param {boolean} [options.autoLoad=false] if the layer should auto load if not visible\r\n * @param {object} [options.style=undefined] the layer style, use openlayers default style if not defined\r\n * @param {boolean} [options.onDemand=false] if the layer should be loaded by extent on map move\r\n * @param {number} [options.onDemandDelay=300] delay before the map move callback should be called\r\n * @param {mapMoveMakeGetParams} [options.mapMoveMakeGetParams=function(lyr, extent, zoomLevel){}] function to create additional map move params\r\n * @param {MapMoveCls} [options.mapMoveObj=mapMove] alternate map move object for use with multi map pages\r\n *\r\n */\r\n constructor(url: string, options: LayerBaseVectorOptions = {}) {\r\n super(url, options);\r\n\r\n options = options as LayerBaseVectorOptions;\r\n\r\n //prevent regular load if no url has been provided\r\n if (this.url.trim() == '') {\r\n this._loaded = true;\r\n }\r\n\r\n this._style = typeof options.style == 'undefined' ? undefined : options.style;\r\n\r\n if (this.visible) {\r\n this._autoLoad = true;\r\n } else {\r\n this._autoLoad = (typeof options['autoLoad'] == 'boolean' ? options['autoLoad'] : false);\r\n }\r\n\r\n this._onDemand = typeof options.onDemand == 'boolean' ? options.onDemand : false;\r\n this._onDemandDelay = typeof options.onDemandDelay == 'number' ? options.onDemandDelay : 300;\r\n\r\n if (options.mapMoveObj) {\r\n this._mapMove = options.mapMoveObj;\r\n } else {\r\n this._mapMove = this._onDemand ? mapMove : undefined;\r\n }\r\n\r\n\r\n this._mapMoveMakeGetParams = typeof options.mapMoveMakeGetParams == 'function' ? options.mapMoveMakeGetParams :\r\n function () {return {};};\r\n\r\n if (this._onDemand) {\r\n this._loaded = true;\r\n this._mapMoveParams = {};\r\n this._mapMove.checkInit();\r\n this._mapMove.addVectorLayer(this);\r\n }\r\n\r\n this._source = new ol.source.Vector();\r\n\r\n\r\n this._olLayer = new ol.layer.Vector(\r\n {\r\n source: this._source,\r\n visible: this.visible,\r\n style: this.style,\r\n minResolution: this._minResolution,\r\n maxResolution: this._maxResolution,\r\n renderOrder: options.renderOrder\r\n }\r\n );\r\n\r\n this.olLayer.setZIndex(this._zIndex);\r\n\r\n\r\n this._projectionMap = null;\r\n this._projection4326 = new ol.proj.Projection({code: \"EPSG:4326\"});\r\n }\r\n\r\n /**\r\n * dummy to be overridden\r\n * @param {object} featureCollection - geojson or esrijson object\r\n */\r\n addFeatures(featureCollection) {\r\n console.log('Layer vector base addFeatures is a placeholder and does nothing');\r\n }\r\n\r\n /**\r\n * Before call to map move callback, can prevent call by returning false\r\n * @param {number} zoom - zoom level\r\n * @param {string} [evtType=undefined] undefined for initial load, otherwise one of 'change:center', 'change:resolution'\r\n * @returns {boolean} if the call should proceed\r\n */\r\n mapMoveBefore(zoom, evtType) {\r\n if (this.minZoom !== undefined) {\r\n if (zoom < this.minZoom) {\r\n return false;\r\n }\r\n }\r\n\r\n if (this.maxZoom !== undefined) {\r\n if (zoom > this.maxZoom) {\r\n return false;\r\n }\r\n }\r\n\r\n return this.visible;\r\n }\r\n\r\n /**\r\n * callback to generate the parameters passed in the get request\r\n * @param {object} extent - extent object\r\n * @param {number} extent.minX - minX\r\n * @param {number} extent.minY - minY\r\n * @param {number} extent.maxX - maxX\r\n * @param {number} extent.maxY - maxY\r\n * @param {number} zoomLevel - zoom level\r\n */\r\n mapMoveMakeGetParams(extent, zoomLevel) {\r\n this._mapMoveParams = {};\r\n $.extend(this._mapMoveParams, this.params);\r\n $.extend(this._mapMoveParams, this._mapMoveMakeGetParams(this, extent, zoomLevel));\r\n }\r\n\r\n /**\r\n * callback function on map move\r\n * @param {object} d - the json response\r\n */\r\n mapMoveCallback(d) {\r\n if (this.source) {\r\n this._source.clear();\r\n }\r\n }\r\n\r\n /**\r\n * clear features in the layer\r\n */\r\n clear() {\r\n if (this._source) {\r\n this._source.clear();\r\n }\r\n }\r\n\r\n /**\r\n * get on demand delay in miliseconds\r\n */\r\n get onDemandDelay(): number {\r\n return this._onDemandDelay;\r\n }\r\n\r\n /**\r\n * get if the layer is autoloaded\r\n */\r\n get autoLoad(): boolean {\r\n return this._autoLoad;\r\n }\r\n\r\n /**\r\n * get the style definition\r\n */\r\n get style(): ol.StyleFunction|Array<ol.style.Style>|ol.style.Style {\r\n return this._style;\r\n }\r\n\r\n /**\r\n * set the style\r\n * @param style - the style or function\r\n */\r\n set style(style: ol.StyleFunction|Array<ol.style.Style>|ol.style.Style) {\r\n this._style = style;\r\n this.olLayer.setStyle(this._style as ol.style.Style);\r\n }\r\n\r\n /**\r\n * get the map CRS if it is defined by the map move object\r\n */\r\n get mapCrs(): string {\r\n return this.mapProj == null ? null : this.mapProj.getCode();\r\n }\r\n\r\n get mapProj(): ol.proj.Projection{\r\n if (this._projectionMap != null){\r\n return this._projectionMap;\r\n }\r\n\r\n if (this._mapMove) {\r\n this._projectionMap = this._mapMove.map.getView().getProjection();\r\n return this._projectionMap;\r\n } else {\r\n return null;\r\n }\r\n\r\n }\r\n\r\n /**\r\n * get the map move object\r\n * @type {MapMoveCls|*}\r\n */\r\n get mapMove(): MapMoveCls {\r\n return this._mapMove;\r\n }\r\n\r\n /**\r\n * map move params\r\n * @type {object}\r\n */\r\n get mapMoveParams() {\r\n return this._mapMoveParams;\r\n }\r\n\r\n get visible(): boolean{\r\n return this._visible;\r\n }\r\n\r\n /**\r\n * Set the layer visibility\r\n * @type {boolean}\r\n * @override\r\n */\r\n set visible(visibility) {\r\n super.setVisible(visibility);\r\n\r\n if (this._onDemand) {\r\n this.mapMove.triggerLyrLoad(this);\r\n }\r\n }\r\n\r\n /**\r\n * get the layer vector source\r\n * @override\r\n */\r\n get source(): ol.source.Vector {\r\n return this.getSource() as ol.source.Vector;\r\n }\r\n\r\n /**\r\n * array of ol features\r\n */\r\n get features(): Array<ol.Feature> {\r\n return this.source.getFeatures();\r\n }\r\n\r\n /**\r\n *\r\n */\r\n get olLayer(): ol.layer.Vector {\r\n return super.getOlLayer() as ol.layer.Vector;\r\n }\r\n\r\n protected setZIndex(newZ: number) {\r\n this.olLayer.setZIndex(newZ);\r\n }\r\n}\r\n\r\nnm.LayerBaseVector = LayerBaseVector;\r\nexport default LayerBaseVector;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/layers/LayerBaseVector.ts","/**\r\n * Created by gavorhes on 10/3/2016.\r\n */\r\nimport ol = require('custom-ol');\r\n\r\n\r\nexport const proj4326 = new ol.proj.Projection({code: 'EPSG:4326'});\r\nexport const proj3857 = new ol.proj.Projection({code: 'EPSG:3857'});\r\nexport const proj3070 = new ol.proj.Projection({code: 'EPSG:3070'});\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/olHelpers/projections.ts","/**\r\n * Created by gavorhes on 12/14/2015.\r\n */\r\n\r\nimport * as colors from '../util/colors';\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport LayerItsInventory from \"../layers/LayerItsInventory\";\r\nlet nm = provide('collections');\r\n\r\n\r\nlet itsConfig = [\r\n {\r\n name: 'Camera',\r\n itsType: 'cctv',\r\n minZoom: 11,\r\n itsIconConfig: {\r\n prop: 'owner',\r\n defaultName: 'WisDOT',\r\n defaultIcon: 'cctv.png',\r\n iconArray: [\r\n ['City of Madison', 'Madison', 'cctv-mad.png']\r\n ]\r\n }\r\n },\r\n {\r\n name: 'Message Signs',\r\n itsType: 'DMS',\r\n minZoom: 11,\r\n itsIconConfig: {\r\n prop: 'dmsType',\r\n defaultName: 'DMS',\r\n defaultIcon: 'dms.png',\r\n iconArray: [\r\n ['pcms', 'PCMS', 'pcms.png']\r\n ]\r\n }\r\n },\r\n {name: 'ATR', itsType: 'atr', minZoom: 8, itsIcon: 'atr.png', visible: false},\r\n {name: 'Lighting', itsType: 'light', minZoom: 16, itsIcon: 'streetlight.png', visible: false, onDemand: true},\r\n {name: 'Bluetooth', itsType: 'blue', minZoom: 10, itsIcon: 'bluetooth.png', visible: false},\r\n {name: 'Cabinets', itsType: 'cabinet', minZoom: 10, itsIcon: 'cabinet.png', visible: false},\r\n {name: 'Hut', itsType: 'hut', minZoom: 10, itsIcon: 'hut.png', visible: false},\r\n {name: 'Vault', itsType: 'vault', minZoom: 13, itsIcon: 'vault.png', visible: false},\r\n {name: 'Advisory Radio', itsType: 'har', minZoom: 10, itsIcon: 'har.png', visible: false},\r\n {\r\n name: 'Loop Detectors',\r\n itsType: 'loop',\r\n legendCollapse: true,\r\n minZoom: 14,\r\n visible: false,\r\n itsIconConfig: {\r\n prop: 'dtctrType',\r\n defaultName: 'Other',\r\n defaultIcon: 'loopdetectorother.png',\r\n iconArray: [\r\n ['detector', 'Detector', 'loopdetector.png'],\r\n ['long', 'Long', 'loopdetectorlong.png'],\r\n ['zone', 'Zone', 'loopdetectorzone.png']\r\n ]\r\n },\r\n onDemand: true\r\n },\r\n {name: 'Microwave', itsType: 'microwave', minZoom: 14, itsIcon: 'microwave.png', visible: false},\r\n {name: 'Pull Box', itsType: 'pull', minZoom: 14, itsIcon: 'pullbox.png', visible: false, onDemand: true},\r\n {name: 'RWIS', itsType: 'rwis', minZoom: 7, itsIcon: 'rwis.png', visible: false},\r\n {name: 'Ramp Gates', itsType: 'gate', minZoom: 10, itsIcon: 'rampgate.png', visible: false},\r\n {name: 'Ramp Meter', itsType: 'meter', minZoom: 10, itsIcon: 'rampmeter.png', visible: false},\r\n {name: 'Signal', itsType: 'signal', minZoom: 13, itsIcon: 'signal.png', visible: false, onDemand: true},\r\n {name: 'Tower', itsType: 'tower', minZoom: 10, itsIcon: 'tower.png', visible: false},\r\n {\r\n name: 'Trench',\r\n itsType: 'trench',\r\n onDemand: true,\r\n visible: false,\r\n onDemandDelay: 500,\r\n minZoom: 15,\r\n legendCollapse: true,\r\n itsLineConfig: {\r\n prop: 'owner',\r\n //defaultName: 'Other',\r\n //defaultWidth: 7,\r\n defaultColor: colors.hexAlphaToRgbOrRgba('#747474', 0.8),\r\n lineArray: [\r\n ['WisDOT', 'WisDOT', colors.hexAlphaToRgbOrRgba('#FF032F', 0.7)],\r\n ['WIN', 'WIN', colors.hexAlphaToRgbOrRgba('#FFC632', 0.7)],\r\n ['USXchange', 'USXchange', colors.hexAlphaToRgbOrRgba('#2DFF46', 0.7)],\r\n ['AT&T', 'AT&T', colors.hexAlphaToRgbOrRgba('#ff2be5', 0.7)],\r\n ['Touch America', 'Touch America', colors.hexAlphaToRgbOrRgba('#52f3ff', 0.7)],\r\n ['Qwest', 'Qwest', colors.hexAlphaToRgbOrRgba('#9278ff', 0.7)],\r\n ['McLeodUSA', 'McLeodUSA', colors.hexAlphaToRgbOrRgba('#2926FF', 0.7)],\r\n ['CINC', 'CINC', colors.hexAlphaToRgbOrRgba('#CB00FF', 0.7)],\r\n ['City of Madison', 'Madison', colors.hexAlphaToRgbOrRgba('#000380', 0.7)]\r\n ]\r\n }\r\n }\r\n\r\n\r\n];\r\n\r\n\r\nexport class ItsLayerCollection {\r\n _map: ol.Map;\r\n _layers: Array<LayerItsInventory>;\r\n\r\n\r\n /**\r\n * Create a collection of all ITS layers\r\n * @param {ol.Map} theMap the openlayers map\r\n * @param {Array} [exclude=[]] array of Its layer identifiers to exclude\r\n *\r\n * BLUE Bluetooth Detector - Bluetooth Detector\r\n * CABINET Cabinets - The cabinets\r\n * CCTV Camera - Traffic Cameras\r\n * HUT Communication Hut - Communication Hut\r\n * VAULT Communication Vault - The communication vaults\r\n * HAR Highway Advisory Radio - Advisory Radios\r\n * LIGHT Lighting - Lighting\r\n * LOOP Loop Detectors - Loop Detectors\r\n * DMS Message Board - Message Boards and Signs\r\n * MICROWAVE Microwave Detector - Microwave Detectors\r\n * PULL Pull Box - A pull box\r\n * RWIS RWIS - Road weather information system\r\n * GATE Ramp Gate - The ramp Gates\r\n * METER Ramp Meter - The ramp meters\r\n * SIGNAL Signal - Traffic Signal\r\n * TOWER Tower - The towers\r\n * TRENCH\r\n */\r\n constructor(theMap: ol.Map, exclude?: Array<string>) {\r\n\r\n this._map = theMap;\r\n this._layers = [];\r\n\r\n exclude = typeof exclude == 'object' ? exclude : [];\r\n\r\n for (let i = 0; i < itsConfig.length; i++) {\r\n let lyrConfig = itsConfig[i];\r\n let addLayer = true;\r\n\r\n for (let j = 0; j < exclude.length; j++) {\r\n if (exclude[j] == lyrConfig.itsType) {\r\n addLayer = false;\r\n break;\r\n }\r\n }\r\n\r\n if (addLayer) {\r\n let inventLyr = new LayerItsInventory(lyrConfig);\r\n this._map.addLayer(inventLyr.olLayer);\r\n this._layers.push(inventLyr);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Return the array of layers in this collection\r\n * @returns {Array<LayerItsInventory>} an array of layers\r\n */\r\n get layers() {\r\n return this._layers;\r\n }\r\n}\r\n\r\nnm.ItsLayerCollection = ItsLayerCollection;\r\nexport default ItsLayerCollection;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/collections/ItsLayerCollection.ts","/**\r\n * Created by gavorhes on 11/2/2015.\r\n */\r\n\r\nimport {LayerBaseVector, LayerBaseVectorOptions} from './LayerBaseVector';\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport $ = require('jquery');\r\nimport {MapMoveCls} from \"../olHelpers/mapMoveCls\";\r\nimport * as proj from '../olHelpers/projections';\r\nimport {proj3857} from \"../olHelpers/projections\";\r\n\r\nlet nm = provide('layers');\r\n\r\nexport interface crsTransform {\r\n dataProjection?: ol.proj.Projection;\r\n featureProjection?: ol.proj.Projection;\r\n}\r\n\r\n\r\nexport interface LayerBaseVectorGeoJsonOptions extends LayerBaseVectorOptions {\r\n transform?: crsTransform;\r\n mapMoveObj?: MapMoveCls;\r\n}\r\n\r\n/**\r\n * The Vector GeoJson Layer\r\n * @augments LayerBaseVector\r\n */\r\nexport class LayerBaseVectorGeoJson extends LayerBaseVector {\r\n _geoJsonFormat: ol.format.GeoJSON;\r\n _transform: crsTransform;\r\n\r\n /**\r\n * @param {string|null} url - resource url, set to '' to make blank layer\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 {boolean} [options.autoLoad=false] if the layer should auto load if not visible\r\n * @param {object} [options.style=undefined] the layer style, use openlayers default style if not defined\r\n * @param {boolean} [options.onDemand=false] if the layer should be loaded by extent on map move\r\n * @param {number} [options.onDemandDelay=300] delay before the map move callback should be called\r\n *\r\n * @param {object} [options.transform={}] SR transform, set as false for no transform\r\n * @param {string} options.transform.dataProjection=EPSG:4326 the data CRS\r\n * @param {string} options.transform.featureProjection=EPSG:3857 the feature/map CRS\r\n * @param {mapMoveMakeGetParams} [options.mapMoveMakeGetParams=function(lyr, extent, zoomLevel){}] function to create additional map move params\r\n * @param {MapMoveCls} [options.mapMoveObj=mapMove] alternate map move object for use with multi map pages\r\n */\r\n constructor(url?: string, options: LayerBaseVectorGeoJsonOptions = {}) {\r\n url = typeof url == 'string' ? url : '';\r\n super(url, options);\r\n\r\n this._geoJsonFormat = new ol.format.GeoJSON();\r\n\r\n this._transform = options.transform || {};\r\n this._transform.dataProjection = this._transform.dataProjection || proj.proj4326;\r\n this._transform.featureProjection = this._transform.featureProjection || proj3857;\r\n\r\n if (this.autoLoad || this.visible) {\r\n this._load();\r\n }\r\n }\r\n\r\n /**\r\n * add feature collection\r\n * @param {object} featureCollection - as geojson object\r\n */\r\n addFeatures(featureCollection: any) {\r\n\r\n this.source.addFeatures(this._geoJsonFormat.readFeatures(featureCollection));\r\n }\r\n\r\n\r\n /**\r\n * trigger load features\r\n * @protected\r\n * @returns {boolean} if already loaded\r\n */\r\n _load() {\r\n\r\n if (super._load()) {\r\n return true;\r\n }\r\n\r\n $.get(this._url,\r\n this._params,\r\n (d) => {\r\n this.addFeatures(d);\r\n this.loadCallback(this);\r\n }, 'json').fail(\r\n function () {\r\n this._loaded = false;\r\n }\r\n );\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * callback function on map move\r\n * @param {object} d the json response\r\n * @override\r\n */\r\n mapMoveCallback(d) {\r\n super.mapMoveCallback(d);\r\n this._source.addFeatures(this._geoJsonFormat.readFeatures(d,\r\n {featureProjection: this._transform.featureProjection, dataProjection: this._transform.dataProjection}));\r\n }\r\n}\r\n\r\nnm.LayerBaseVectorGeoJson = LayerBaseVectorGeoJson;\r\nexport default LayerBaseVectorGeoJson;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/layers/LayerBaseVectorGeoJson.ts","/**\r\n * Created by gavorhes on 12/8/2015.\r\n */\r\n\r\nimport LayerBaseVectorGeoJson from './LayerBaseVectorGeoJson';\r\nimport mapPopup from '../olHelpers/mapPopup';\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport $ = require('jquery');\r\n\r\nlet nm = provide('layers');\r\n\r\n\r\nfunction checkStyleNumber(itsIcon, itsLineStyle, itsIconConfig, itsLineConfig) {\r\n \"use strict\";\r\n\r\n //make sure one and only one configuration is defined;\r\n let configCount = 0;\r\n if (typeof itsIcon == 'string') {\r\n configCount++;\r\n }\r\n\r\n if (typeof itsLineStyle == 'object') {\r\n itsLineStyle.width = typeof itsLineStyle.width == 'number' ? itsLineStyle.width : 5;\r\n itsLineStyle.color = typeof itsLineStyle.color == 'string' ? itsLineStyle.color : 'red';\r\n configCount++;\r\n }\r\n\r\n if (typeof itsIconConfig == 'object') {\r\n itsIconConfig.defaultName = itsIconConfig.defaultName || 'Other';\r\n\r\n if (typeof itsIconConfig.iconArray == 'undefined') {\r\n itsIconConfig.iconArray = [];\r\n }\r\n\r\n configCount++;\r\n }\r\n\r\n if (typeof itsLineConfig == 'object') {\r\n itsLineConfig.defaultName = itsLineConfig.defaultName || 'Other';\r\n itsLineConfig.defaultWidth = itsLineConfig.defaultWidth || 5;\r\n itsLineConfig.defaultColor = itsLineConfig.defaultColor || 'red';\r\n\r\n\r\n if (typeof itsLineConfig.lineArray == 'undefined') {\r\n itsLineConfig.lineArray = [];\r\n }\r\n\r\n // set the width if not defined\r\n for (let i = 0; i < itsLineConfig.lineArray.length; i++) {\r\n if (itsLineConfig.lineArray[i].length == 3) {\r\n itsLineConfig.lineArray[i].push(5);\r\n }\r\n }\r\n\r\n configCount++;\r\n }\r\n\r\n if (configCount > 1) {\r\n throw 'Only one style config can be defined';\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @param {string} [itsIcon=undefined] the ITS device type icon image see http://transportal.cee.wisc.edu/its/inventory/icons/\r\n *\r\n * @param {object} [itsLineStyle=undefined] A single line style\r\n * @param {string} itsLineStyle.color the line color as rgb or hex\r\n * @param {number} [itsLineStyle.width=5] the line width\r\n *\r\n * @param {object} [itsIconConfig=undefined] The icon subtype configuration\r\n * @param {string} itsIconConfig.prop The property used to define icon attribute symbolization\r\n * @param {string} itsIconConfig.defaultName The default name to be used if no other match is found\r\n * @param {string} itsIconConfig.defaultIcon The default icon to be used for no other matches\r\n * @param {object} [itsIconConfig.iconArray=[]] an array, items with format [property, name, img]\r\n *\r\n * @param {object} [itsLineConfig=undefined] The property used to define icon attribute symbolization\r\n * @param {string} itsLineConfig.prop The property used to define icon attribute symbolization\r\n * @param {string} [itsLineConfig.defaultName=Other] The default name to be used if no other match is found\r\n * @param {string} [itsLineConfig.defaultColor=red] The default line color to be used for no other matches\r\n * @param {number} [itsLineConfig.defaultWidth=5] The default line width to be used for no other matches\r\n * @param {object} [itsLineConfig.lineArray=[]] an array, items with format [property, name, color, optional width]\r\n * @returns {*} undefined, style, or style function\r\n */\r\nfunction defineStyle(itsIcon, itsLineStyle, itsIconConfig, itsLineConfig) : ol.style.Style|Array<ol.style.Style>|ol.StyleFunction{\r\n \"use strict\";\r\n checkStyleNumber(itsIcon, itsLineStyle, itsIconConfig, itsLineConfig);\r\n\r\n let _iconUrlRoot = 'http://transportal.cee.wisc.edu/its/inventory/icons/';\r\n\r\n if (itsIcon) {\r\n return new ol.style.Style({\r\n image: new ol.style.Icon(\r\n {\r\n src: _iconUrlRoot + itsIcon,\r\n crossOrigin: 'anonymous'\r\n }\r\n )\r\n });\r\n } else if (itsLineStyle) {\r\n return new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: itsLineStyle.color,\r\n width: itsLineStyle.width\r\n })\r\n });\r\n } else if (itsIconConfig) {\r\n return function (feature: ol.Feature) {\r\n let symbolProp = feature.getProperties()[itsIconConfig.prop];\r\n let iconUrl = _iconUrlRoot + itsIconConfig.defaultIcon;\r\n\r\n for (let i = 0; i < itsIconConfig.iconArray.length; i++) {\r\n let thisProp = itsIconConfig.iconArray[i];\r\n\r\n if (symbolProp.trim().toLocaleLowerCase() == thisProp[0].trim().toLocaleLowerCase()) {\r\n iconUrl = _iconUrlRoot + thisProp[2];\r\n break;\r\n }\r\n }\r\n\r\n return [new ol.style.Style({\r\n image: new ol.style.Icon(\r\n {\r\n src: iconUrl,\r\n crossOrigin: 'anonymous'\r\n }\r\n )\r\n })];\r\n };\r\n } else if (itsLineConfig) {\r\n return function (feature: ol.Feature) {\r\n let symbolProp = feature.getProperties()[itsLineConfig.prop];\r\n let colr = itsLineConfig.defaultColor || 'red';\r\n let width = itsLineConfig.defaultWidth || 5;\r\n\r\n for (let i = 0; i < itsLineConfig.lineArray.length; i++) {\r\n let thisProp = itsLineConfig.lineArray[i];\r\n\r\n if (symbolProp.trim().toLocaleLowerCase() == thisProp[0].trim().toLocaleLowerCase()) {\r\n colr = thisProp[2];\r\n width = thisProp[3];\r\n break;\r\n }\r\n }\r\n\r\n return [new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: colr,\r\n width: width\r\n })\r\n })];\r\n };\r\n } else {\r\n return undefined;\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * @param {string} [itsIcon=undefined] the ITS device type icon image see http://transportal.cee.wisc.edu/its/inventory/icons/\r\n *\r\n * @param {object} [itsLineStyle=undefined] A single line style\r\n * @param {string} itsLineStyle.color the line color as rgb or hex\r\n * @param {number} [itsLineStyle.width=5] the line width\r\n *\r\n * @param {object} [itsIconConfig=undefined] The icon subtype configuration\r\n * @param {string} itsIconConfig.prop The property used to define icon attribute symbolization\r\n * @param {string} itsIconConfig.defaultName The default name to be used if no other match is found\r\n * @param {string} itsIconConfig.defaultIcon The default icon to be used for no other matches\r\n * @param {object} [itsIconConfig.iconArray=[]] an array, items with format [property, name, img]\r\n *\r\n * @param {object} [itsLineConfig=undefined] The property used to define icon attribute symbolization\r\n * @param {string} itsLineConfig.prop The property used to define icon attribute symbolization\r\n * @param {string} [itsLineConfig.defaultName=Other] The default name to be used if no other match is found\r\n * @param {string} [itsLineConfig.defaultColor=red] The default line color to be used for no other matches\r\n * @param {number} [itsLineConfig.defaultWidth=5] The default line width to be used for no other matches\r\n * @param {object} [itsLineConfig.lineArray=[]] an array, items with format [property, name, color, optional width]\r\n * @returns {string} html to be added to the legend\r\n */\r\nfunction defineLegend(itsIcon, itsLineStyle, itsIconConfig, itsLineConfig) {\r\n \"use strict\";\r\n\r\n let iconHeight = 17;\r\n\r\n checkStyleNumber(itsIcon, itsLineStyle, itsIconConfig, itsLineConfig);\r\n\r\n let _iconUrlRoot = 'http://transportal.cee.wisc.edu/its/inventory/icons/';\r\n\r\n if (itsIcon) {\r\n return `<img src=\"${_iconUrlRoot + itsIcon}\" class=\"legend-layer-icon\" height=\"${iconHeight}\">`;\r\n } else if (itsLineStyle) {\r\n return `<hr style=\"height: ${itsLineStyle.width}px; background-color: ${itsLineStyle.color}\">`;\r\n } else if (itsIconConfig) {\r\n let outHtml = '';\r\n outHtml += '<ul>';\r\n\r\n for (let a of itsIconConfig.iconArray) {\r\n outHtml += `<li><span class=\"legend-layer-subitem\">${a[1]}</span><img src=\"${_iconUrlRoot + a[2]}\" class=\"legend-layer-icon\" height=\"${iconHeight}\">`;\r\n }\r\n outHtml += `<li><span class=\"legend-layer-subitem\">${itsIconConfig.defaultName}</span>` +\r\n `<img src=\"${_iconUrlRoot + itsIconConfig.defaultIcon}\" class=\"legend-layer-icon\" height=\"${iconHeight}\"></li>`;\r\n outHtml += '</ul>';\r\n\r\n return outHtml;\r\n } else if (itsLineConfig) {\r\n let outHtml = '';\r\n outHtml += '<ul>';\r\n for (let ls of itsLineConfig.lineArray) {\r\n outHtml += `<li><span class=\"legend-layer-subitem\">${ls[1]}</span>` +\r\n `<hr style=\"height: ${ls[3]}px; background-color: ${ls[2]}\">`;\r\n }\r\n outHtml += `<li><span class=\"legend-layer-subitem\">${itsLineConfig.defaultName}</span>` +\r\n `<hr style=\"height: ${itsLineConfig.defaultWidth}px; background-color: ${itsLineConfig.defaultColor}\"></li>`;\r\n outHtml += '</ul>';\r\n\r\n return outHtml;\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\n/**\r\n * Its Layer class\r\n * @augments LayerBaseVectorGeoJson\r\n */\r\nclass LayerItsInventory extends LayerBaseVectorGeoJson {\r\n\r\n /**\r\n * ITS device layer, types available at http://transportal.cee.wisc.edu/its/inventory/\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 {boolean} [options.autoLoad=false] if the layer should auto load if not visible\r\n * @param {object|*} [options.style=undefined] the layer style, use openlayers default style if not defined\r\n * @param {boolean} [options.onDemand=false] if the layer should be loaded by extent on map move\r\n * @param {number} [options.onDemandDelay=300] delay before the map move callback should be called\r\n * @param {MapMoveCls} [options.mapMoveObj=mapMove] alternate map move object for use with multi map pages\r\n *\r\n * @param {string} options.itsType the ITS device type, use the url flag at http://transportal.cee.wisc.edu/its/inventory/\r\n * @param {boolean} [options.addPopup=true] if the popup should be added automatically\r\n *\r\n * @param {string} [options.itsIcon=undefined] the ITS device type icon image see http://transportal.cee.wisc.edu/its/inventory/icons/\r\n *\r\n * @param {object} [options.itsLineStyle=undefined] A single line style\r\n * @param {string} options.itsLineStyle.color the line color as rgb or hex\r\n * @param {number} [options.itsLineStyle.width=5] the line width\r\n *\r\n * @param {object} [options.itsIconConfig=undefined] The icon subtype configuration\r\n * @param {string} options.itsIconConfig.prop The property used to define icon attribute symbolization\r\n * @param {string} options.itsIconConfig.defaultName The default name to be used if no other match is found\r\n * @param {string} options.itsIconConfig.defaultIcon The default icon to be used for no other matches\r\n * @param {object} [options.itsIconConfig.iconArray=[]] an array, items with format [property, name, img]\r\n *\r\n * @param {object} [options.itsLineConfig=undefined] The property used to define icon attribute symbolization\r\n * @param {string} options.itsLineConfig.prop The property used to define icon attribute symbolization\r\n * @param {string} [options.itsLineConfig.defaultName=Other] The default name to be used if no other match is found\r\n * @param {string} [options.itsLineConfig.defaultColor=red] The default line color to be used for no other matches\r\n * @param {number} [options.itsLineConfig.defaultWidth] The default line width to be used for no other matches\r\n * @param {object} [options.itsLineConfig.lineArray=[]] an array, items with format [property, name, color, optional width = 5]\r\n */\r\n constructor(options) {\r\n if (typeof options.itsType !== 'string') {\r\n throw 'its type must be defined';\r\n }\r\n\r\n let addToLegend = '';\r\n\r\n // define a style with the helper function if it is not explicitly defined\r\n if (typeof options.style == 'undefined') {\r\n options.style = defineStyle(\r\n options.itsIcon, options.itsLineStyle, options.itsIconConfig, options.itsLineConfig\r\n );\r\n addToLegend = defineLegend(\r\n options.itsIcon, options.itsLineStyle, options.itsIconConfig, options.itsLineConfig\r\n );\r\n }\r\n\r\n options.params = typeof options.params == 'object' ? options.params : {};\r\n $.extend(options.params, {format: 'JSON', resource: options.itsType});\r\n\r\n super('http://transportal.cee.wisc.edu/its/inventory/', options);\r\n\r\n //add any additional content to the legend\r\n this.addLegendContent(addToLegend);\r\n\r\n options.addPopup = typeof options.addPopup == 'boolean' ? options.addPopup : true;\r\n\r\n if (options.addPopup) {\r\n mapPopup.addVectorPopup(this, function (props) {\r\n return `<iframe src=\"http://transportal.cee.wisc.edu/its/inventory/?feature=${props['featureGuid']}\" ` +\r\n `height=\"250\" width=\"350\"></iframe>`;\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * callback to generate the parameters passed in the get request\r\n * @callback makeGetParams\r\n * @param {object} extent - extent object\r\n * @param {number} extent.minX - minX\r\n * @param {number} extent.minY - minY\r\n * @param {number} extent.maxX - maxX\r\n * @param {number} extent.maxY - maxY\r\n * @param {number} zoomLevel - zoom level\r\n */\r\n mapMoveMakeGetParams(extent, zoomLevel) {\r\n super.mapMoveMakeGetParams(extent, zoomLevel);\r\n let lowerLeft = new ol.geom.Point([extent.minX, extent.minY]);\r\n lowerLeft.transform(this.mapProj, this._projection4326);\r\n let lowerLeftCoordinates = lowerLeft.getCoordinates();\r\n let upperRight = new ol.geom.Point([extent.maxX, extent.maxY]);\r\n upperRight.transform(this.mapProj, this._projection4326);\r\n let upperRightCoordinates = upperRight.getCoordinates();\r\n\r\n $.extend(this.mapMoveParams,\r\n {\r\n L: lowerLeftCoordinates[0],\r\n R: upperRightCoordinates[0],\r\n B: lowerLeftCoordinates[1],\r\n T: upperRightCoordinates[1]\r\n });\r\n }\r\n}\r\n\r\nnm.LayerItsInventory = LayerItsInventory;\r\nexport default LayerItsInventory;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/layers/LayerItsInventory.ts","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\nimport provide from './provide';\r\nimport * as chk from './checkDefined';\r\nlet nm = provide('util.colors');\r\n\r\n\r\n/**\r\n * helper function to convert to hex\r\n * @param {number|string} x - the number to convert to hex\r\n * @returns {string} number as hex\r\n * @private\r\n */\r\nfunction _hex(x) {\r\n let hexDigits = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n\r\n return isNaN(x) ? \"00\" : hexDigits[(x - x % 16) / 16] + hexDigits[x % 16];\r\n}\r\n\r\n/**\r\n * converts an RGB string to hex\r\n * @param {string} rgb - rgb color\r\n * @returns {string} rbg as hex\r\n */\r\nexport function rgb2hex(rgb) {\r\n let rgb1 = rgb.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/);\r\n\r\n return (\"#\" + _hex(rgb1[1]) + _hex(rgb1[2]) + _hex(rgb1[3])).toUpperCase();\r\n}\r\n\r\nnm.rgb2hex = rgb2hex;\r\n\r\n\r\n/**\r\n * Convert hex string to RGB or RGBA string\r\n * @param {string} hexString - hex color string\r\n * @param {number} [alphaVal=undefined] Alpha value\r\n * @returns {string} - rgb or rgba color\r\n */\r\nexport function hexAlphaToRgbOrRgba(hexString, alphaVal) {\r\n hexString = ((hexString.charAt(0) == \"#\") ? hexString.substring(1, 7) : hexString);\r\n let r = parseInt(hexString.substring(0, 2), 16).toString() || '0';\r\n let g = parseInt(hexString.substring(2, 4), 16).toString() || '0';\r\n let b = parseInt(hexString.substring(4, 6), 16).toString() || '0';\r\n if (alphaVal) {\r\n return `rgba(${r},${g},${b},${alphaVal})`;\r\n } else {\r\n return `rgba(${r},${g},${b})`;\r\n }\r\n}\r\n\r\nnm.hexAlphaToRgbOrRgba = hexAlphaToRgbOrRgba;\r\n\r\n\r\n/**\r\n * adds alpha value to rgb string 'rgb(r, b, g)', returns 'rgba(r, g, b, a)'\r\n * @param {string} rgb - rgb color\r\n * @param {number} alpha - alpha value 0 to 1\r\n * @returns {string} rgba color\r\n */\r\nexport function rgbToRgba(rgb, alpha) {\r\n let pieces = rgb.split(',');\r\n pieces[0] = pieces[0].replace('rgb', 'rgba');\r\n pieces[2] = pieces[2].replace(')', '');\r\n pieces.push(' ' + alpha.toFixed(1) + ')');\r\n\r\n return pieces.join(',');\r\n}\r\n\r\nnm.rgbToRgba = rgbToRgba;\r\n\r\n\r\n/**\r\n * @typedef {function} colorLookupByNumber\r\n * @param {number} num - the number to use to retrieve the color\r\n * @returns {string} rgb color\r\n */\r\n\r\n\r\n/**\r\n * Make a blue green red gradient\r\n * @param {number} minVal - minimum value\r\n * @param {number} maxVal - maximum value\r\n * @param {boolean} flipColors - if the colors should be flipped\r\n * @returns {colorLookupByNumber} color lookup function\r\n */\r\nexport function makeBlueGreenRedGradient(minVal, maxVal, flipColors) {\r\n\r\n if (typeof flipColors != \"boolean\") {\r\n flipColors = false;\r\n }\r\n\r\n return function (theVal) {\r\n let r, g, b;\r\n let ratio;\r\n\r\n if (chk.undefinedOrNull(theVal)) {\r\n return 'rgb(100,100,100)';\r\n }\r\n\r\n let percent = (theVal - minVal) / (maxVal - minVal);\r\n\r\n if (flipColors == true) {\r\n percent = 1 - percent;\r\n }\r\n\r\n if (percent >= 1) {\r\n r = 255;\r\n g = 0;\r\n b = 0;\r\n } else if (percent <= 0) {\r\n r = 0;\r\n g = 0;\r\n b = 255;\r\n } else if (percent < .25) {\r\n // green up, blue constant\r\n r = 0;\r\n g = Math.floor(255 * percent / 0.25);\r\n b = 255;\r\n } else if (percent < 0.50) {\r\n //blue down, green constant\r\n ratio = (percent - 0.25) / 0.25;\r\n r = 0;\r\n g = 255;\r\n b = 255 - Math.floor(255 * ratio);\r\n } else if (percent < 0.75) {\r\n // red up, green constant\r\n ratio = (percent - 0.5) / 0.25;\r\n r = Math.floor(255 * ratio);\r\n g = 255;\r\n b = 0;\r\n } else {\r\n // green down, red constant\r\n ratio = (percent - 0.75) / 0.25;\r\n r = 255;\r\n g = 255 - Math.floor(255 * ratio);\r\n b = 0;\r\n }\r\n\r\n r = r.toFixed();\r\n g = g.toFixed();\r\n b = b.toFixed();\r\n\r\n return 'rgb(' + r + ',' + g + ',' + b + ')';\r\n };\r\n}\r\n\r\nnm.makeBlueGreenRedGradient = makeBlueGreenRedGradient;\r\n\r\n\r\n/**\r\n * Create a function that will return colors based on a gradient\r\n * @param {number} median - median value\r\n * @param {number} stdDev - standard deviation\r\n * @param {boolean} flipColors - if the colors should be flipped\r\n * @returns {colorLookupByNumber} color lookup function\r\n */\r\nexport function makeBlueGreenRedGradientZScore(median, stdDev, flipColors) {\r\n\r\n let grd = makeBlueGreenRedGradient(-2.5, 2.5, flipColors);\r\n\r\n return function (theVal) {\r\n\r\n let zScore;\r\n if (theVal == null) {\r\n zScore = null;\r\n } else {\r\n zScore = (theVal - median) / stdDev;\r\n }\r\n\r\n return grd(zScore);\r\n };\r\n}\r\n\r\nnm.makeBlueGreenRedGradientZScore = makeBlueGreenRedGradientZScore;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/colors.ts","/**\r\n * Created by gavorhes on 12/18/2015.\r\n */\r\n\r\n\r\nimport ItsLayerCollection from '../../src/collections/ItsLayerCollection';\r\nimport LayerLegend from '../../src/collections/LayerLegend';\r\nimport quickMap from '../../src/olHelpers/quickMap';\r\n\r\nlet map = quickMap();\r\n\r\nwindow['map'] = map;\r\n\r\nlet itsLayerCollection = new ItsLayerCollection(map);\r\n\r\nlet layerArray = [\r\n {\r\n groupName: 'ITS Inventory Layers',\r\n collapse: false,\r\n addCheck: true,\r\n items: itsLayerCollection.layers\r\n }\r\n];\r\n\r\nlet legend = new LayerLegend(layerArray, 'legend-container', {});\r\n\r\nconsole.log('it works');\r\n\n\n\n// WEBPACK FOOTER //\n// ./test/demo/itsMap.ts"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 4509a097876037a768fe","webpack:///./src/util/provide.ts","webpack:///external \"$\"","webpack:///external \"ol\"","webpack:///./src/util/makeGuid.ts","webpack:///./src/olHelpers/mapPopup.ts","webpack:///./src/olHelpers/mapInteractionBase.ts","webpack:///./src/olHelpers/mapMove.ts","webpack:///./src/olHelpers/quickMap.ts","webpack:///./src/layers/LayerBase.ts","webpack:///./src/util/checkDefined.ts","webpack:///./src/olHelpers/mapMoveCls.ts","webpack:///./src/olHelpers/mapPopupCls.ts","webpack:///./src/olHelpers/quickMapBase.ts","webpack:///./src/olHelpers/zoomResolutionConvert.ts","webpack:///./src/collections/LayerLegend.ts","webpack:///./src/layers/LayerBaseVector.ts","webpack:///./src/olHelpers/projections.ts","webpack:///./src/collections/ItsLayerCollection.ts","webpack:///./src/layers/LayerBaseVectorGeoJson.ts","webpack:///./src/layers/LayerItsInventory.ts","webpack:///./src/util/colors.ts","webpack:///./test/demo/itsMap.ts"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;AChEA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,2wE;;;;;;AC7B3C,mB;;;;;;ACAA,oB;;;;;;;ACAA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,2CAA2C,u/C;;;;;;;ACpB3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,2CAA2C,mtB;;;;;;;ACZ3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,++H;;;;;;;AC5E3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,2CAA2C,2rB;;;;;;;ACZ3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO,YAAY;AAC9B,WAAW,OAAO;AAClB,WAAW,OAAO,mBAAmB;AACrC,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,u7E;;;;;;;ACnC3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,wBAAwB;AACnE;AACA;AACA,oGAAoG;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,2m0B;;;;;;;AClZ3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uqD;;;;;;;;AC1B3C;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,m6uB;;;;;;;AC9O3C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,gBAAgB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF,6EAA6E;AAC7E,8FAA8F;AAC9F,sCAAsC,QAAQ;AAC9C,yFAAyF;AACzF,sCAAsC,MAAM,OAAO,MAAM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,6CAA6C,8BAA8B;AAC3E,iDAAiD,wCAAwC;AACzF,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,cAAc;AAC7B,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,gBAAgB;AAC/B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,gBAAgB;AAC/B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,mn1C;;;;;;;AC5a3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,sCAAsC,8BAA8B;AACpE,yCAAyC,gDAAgD,aAAa,EAAE;AACxG,sCAAsC;AACtC,yCAAyC;AACzC;AACA;AACA,mDAAmD,WAAW,WAAW,yBAAyB;AAClG,6CAA6C,aAAa,aAAa,oBAAoB,eAAe,WAAW;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD,4CAA4C,oBAAoB,2BAA2B,oBAAoB;AAC/G;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,+inB;;;;;;;AC3F3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,2uJ;;;;;;;;AC3E3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO,gBAAgB;AACtC,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,kBAAkB;AACjC,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,WAAW;AAC1B,eAAe,MAAM;AACrB;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,YAAY;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM,8CAA8C,aAAa,OAAO,aAAa,QAAQ,aAAa,QAAQ,UAAU;AAC3I,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA;AACA,qDAAqD,2BAA2B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,gBAAgB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,gBAAgB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,mCAAmC;AACnC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,2CAA2C,u66B;;;;;;;;;AC9R3C;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,qBAAqB,iEAAiE;AACrG,eAAe,WAAW;AAC1B;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,WAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,wDAAwD,oBAAoB;AAC5E;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,29nB;;;;;;;ACvS3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA,2CAA2C,oBAAoB;AAC/D,2CAA2C,oBAAoB;AAC/D,2CAA2C,oBAAoB;AAC/D,2CAA2C,2+B;;;;;;;ACT3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,KAAK,8EAA8E;AACnF,KAAK,8GAA8G;AACnH,KAAK,4FAA4F;AACjG,KAAK,4FAA4F;AACjG,KAAK,+EAA+E;AACpF,KAAK,qFAAqF;AAC1F,KAAK,0FAA0F;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,KAAK,iGAAiG;AACtG,KAAK,yGAAyG;AAC9G,KAAK,iFAAiF;AACtF,KAAK,4FAA4F;AACjG,KAAK,8FAA8F;AACnG,KAAK,wGAAwG;AAC7G,KAAK,qFAAqF;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yBAAyB;AAC9C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,+pd;;;;;;;;;;;;AC3J3C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB;AACA,eAAe,OAAO,sBAAsB;AAC5C,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,qBAAqB,iEAAiE;AACrG,eAAe,WAAW;AAC1B;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA,qFAAqF;AACrF,kEAAkE;AAClE;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,sEAAsE,uGAAuG;AAC7K;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,m2S;;;;;;;;AC7G3C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oCAAoC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA,sDAAsD;AACtD;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,WAAW;AAC1B;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,4CAA4C;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD;AACA;AACA,2CAA2C,+h/B;;;;;;;;;ACzT3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,oBAAoB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,oBAAoB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,2/Z;;;;;;;;;;AC7J3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA,2CAA2C,mnD","file":"itsMap.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\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 36);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 4509a097876037a768fe","/**\r\n * Created by gavorhes on 12/10/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\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 var parts = namespace.split('.');\r\n var nameSpace = window['gv'];\r\n for (var i = 0; i < parts.length; i++) {\r\n var newObject = nameSpace[parts[i]];\r\n if (typeof newObject == 'undefined') {\r\n nameSpace[parts[i]] = {};\r\n }\r\n nameSpace = nameSpace[parts[i]];\r\n }\r\n return nameSpace;\r\n}\r\nprovide('util');\r\nwindow['gv'].util.provide = provide;\r\nexports.default = provide;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3ZpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUdIOzs7O0dBSUc7QUFDSCxpQkFBaUIsU0FBUztJQUN0QixZQUFZLENBQUM7SUFDYixFQUFFLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDO1FBQ2hDLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwQyxFQUFFLENBQUMsQ0FBQyxPQUFPLFNBQVMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1lBQ2pDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUVELFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFFcEMsa0JBQWUsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTAvMjAxNS5cclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIGNyZWF0ZSBhIG5hbWVzcGFjZSBvbiB0aGUgZ3Ygb2JqZWN0XHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UgdG8gY3JlYXRlXHJcbiAqIEByZXR1cm5zIHtvYmplY3R9IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5hbWVzcGFjZVxyXG4gKi9cclxuZnVuY3Rpb24gcHJvdmlkZShuYW1lc3BhY2Upe1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvd1snZ3YnXSA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgd2luZG93WydndiddID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBhcnRzID0gbmFtZXNwYWNlLnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgbmFtZVNwYWNlID0gd2luZG93WydndiddO1xyXG5cclxuICAgIGZvciAobGV0IGk9MDsgaTwgcGFydHMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGxldCBuZXdPYmplY3QgPSBuYW1lU3BhY2VbcGFydHNbaV1dO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG5ld09iamVjdCA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgICAgIG5hbWVTcGFjZVtwYXJ0c1tpXV0gPSB7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5hbWVTcGFjZSA9IG5hbWVTcGFjZVtwYXJ0c1tpXV07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5hbWVTcGFjZTtcclxufVxyXG5cclxucHJvdmlkZSgndXRpbCcpO1xyXG53aW5kb3dbJ2d2J10udXRpbC5wcm92aWRlID0gcHJvdmlkZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHByb3ZpZGU7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/util/provide.ts\n// module id = 0\n// module chunks = 0 1 2 3 4 5 6","module.exports = $;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"$\"\n// module id = 1\n// module chunks = 0 1 2 3 4 5 6","module.exports = ol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ol\"\n// module id = 2\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"./provide\");\r\nvar nm = provide_1.default('util');\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 var r = Math.random() * 16 | 0, v = c == 'x' ? r : r & 0x3 | 0x8;\r\n return v.toString(16);\r\n });\r\n}\r\nnm.makeGuid = makeGuid;\r\nexports.default = makeGuid;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUd1aWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYWtlR3VpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgscUNBQWdDO0FBQ2hDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFHekI7OztHQUdHO0FBQ0g7SUFDUSxNQUFNLENBQUMsc0NBQXNDO1NBQ3hDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUVqRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztBQUVmLENBQUM7QUFDRCxFQUFFLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUN2QixrQkFBZSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8zLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi9wcm92aWRlJztcclxubGV0IG5tID0gcHJvdmlkZSgndXRpbCcpO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBndWlkcyBhcmUgdXNlZCB0byB1bmlxdWVseSBpZGVudGlmeSBncm91cHMgYW5kIGZlYXR1cmVzXHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IGEgbmV3IGd1aWRcclxuICovXHJcbmZ1bmN0aW9uIG1ha2VHdWlkKCkge1xyXG4gICAgICAgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4J1xyXG4gICAgICAgICAgICAucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbiAoYykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHIgPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwLCB2ID0gYyA9PSAneCcgPyByIDogciAmIDB4MyB8IDB4ODtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxufVxyXG5ubS5tYWtlR3VpZCA9IG1ha2VHdWlkO1xyXG5leHBvcnQgZGVmYXVsdCBtYWtlR3VpZDtcclxuXHJcblxyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/util/makeGuid.ts\n// module id = 3\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar mapPopupCls_1 = require(\"./mapPopupCls\");\r\n/**\r\n * The single popup object catch is that it is common to multimap pages\r\n * @type {MapPopupCls}\r\n */\r\nexports.mapPopup = new mapPopupCls_1.default();\r\nexports.default = exports.mapPopup;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwUG9wdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBQb3B1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsNkNBQXdDO0FBRXhDOzs7R0FHRztBQUNVLFFBQUEsUUFBUSxHQUFHLElBQUkscUJBQVcsRUFBaUIsQ0FBQztBQUN6RCxrQkFBZSxnQkFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMy8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBNYXBQb3B1cENscyBmcm9tICcuL21hcFBvcHVwQ2xzJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2luZ2xlIHBvcHVwIG9iamVjdCBjYXRjaCBpcyB0aGF0IGl0IGlzIGNvbW1vbiB0byBtdWx0aW1hcCBwYWdlc1xyXG4gKiBAdHlwZSB7TWFwUG9wdXBDbHN9XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgbWFwUG9wdXAgPSBuZXcgTWFwUG9wdXBDbHMoKSBhcyBNYXBQb3B1cENscztcclxuZXhwb3J0IGRlZmF1bHQgbWFwUG9wdXA7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapPopup.ts\n// module id = 4\n// module chunks = 0 1 2 3","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Created by gavorhes on 12/8/2015.\r\n */\r\nvar provide_1 = require(\"../util/provide\");\r\nvar nm = provide_1.default('olHelpers');\r\n/**\r\n * base interaction\r\n */\r\nvar MapInteractionBase = (function () {\r\n /**\r\n * map interaction base\r\n * @param subtype - the interaction subtype\r\n */\r\n function MapInteractionBase(subtype) {\r\n this._map = null;\r\n this._initialized = false;\r\n this._subtype = subtype;\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 MapInteractionBase.prototype.init = function (theMap) {\r\n if (!this._initialized) {\r\n this._map = theMap;\r\n this._initialized = true;\r\n }\r\n };\r\n Object.defineProperty(MapInteractionBase.prototype, \"map\", {\r\n /**\r\n * get reference to the ol map object\r\n * @returns {ol.Map} the map object\r\n */\r\n get: function () {\r\n return this._map;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(MapInteractionBase.prototype, \"initialized\", {\r\n /**\r\n * get if is initialized\r\n * @returns {boolean} is initialized\r\n */\r\n get: function () {\r\n return this._initialized;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Check the initialization status and throw exception if not valid yet\r\n * @protected\r\n */\r\n MapInteractionBase.prototype._checkInit = function () {\r\n if (!this.initialized) {\r\n var 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 * Check the initialization status and throw exception if not valid yet\r\n */\r\n MapInteractionBase.prototype.checkInit = function () {\r\n this._checkInit();\r\n };\r\n return MapInteractionBase;\r\n}());\r\nexports.MapInteractionBase = MapInteractionBase;\r\nnm.MapInteractionBase = MapInteractionBase;\r\nexports.default = MapInteractionBase;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwSW50ZXJhY3Rpb25CYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWFwSW50ZXJhY3Rpb25CYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7O0dBRUc7QUFDSCwyQ0FBc0M7QUFFdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUloQzs7R0FFRztBQUNIO0lBS0k7OztPQUdHO0lBQ0gsNEJBQVksT0FBZTtRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlDQUFJLEdBQUosVUFBSyxNQUFjO1FBQ2YsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUEsQ0FBQztZQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztZQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQU1ELHNCQUFJLG1DQUFHO1FBSlA7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyQixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDJDQUFXO1FBSmY7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM3QixDQUFDOzs7T0FBQTtJQUVEOzs7T0FHRztJQUNILHVDQUFVLEdBQVY7UUFDSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksR0FBRyxHQUFNLElBQUksQ0FBQyxRQUFRLDRCQUF5QixDQUFDO1lBQ3BELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsTUFBTSxHQUFHLENBQUM7UUFDZCxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0NBQVMsR0FBVDtRQUNJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0wseUJBQUM7QUFBRCxDQUFDLEFBOURELElBOERDO0FBOURZLGdEQUFrQjtBQWdFL0IsRUFBRSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0FBQzNDLGtCQUFlLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvOC8yMDE1LlxyXG4gKi9cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnb2xIZWxwZXJzJyk7XHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiBiYXNlIGludGVyYWN0aW9uXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTWFwSW50ZXJhY3Rpb25CYXNlIHtcclxuICAgIF9tYXA6IG9sLk1hcDtcclxuICAgIF9pbml0aWFsaXplZDogYm9vbGVhbjtcclxuICAgIF9zdWJ0eXBlOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBtYXAgaW50ZXJhY3Rpb24gYmFzZVxyXG4gICAgICogQHBhcmFtIHN1YnR5cGUgLSB0aGUgaW50ZXJhY3Rpb24gc3VidHlwZVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihzdWJ0eXBlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9tYXAgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fc3VidHlwZSA9IHN1YnR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBiYXNlIGluaXRpYWxpemVyLCByZXR1cm5zIHRydWUgZm9yIGFscmVhZHkgaW5pdGlhbGl6ZWRcclxuICAgICAqIEBwYXJhbSB0aGVNYXAgLSB0aGUgb2wgTWFwXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIGZvciBhbHJlYWR5IGluaXRpYWxpemVkXHJcbiAgICAgKi9cclxuICAgIGluaXQodGhlTWFwOiBvbC5NYXApe1xyXG4gICAgICAgIGlmICghdGhpcy5faW5pdGlhbGl6ZWQpe1xyXG4gICAgICAgICAgICB0aGlzLl9tYXAgPSB0aGVNYXA7XHJcbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgcmVmZXJlbmNlIHRvIHRoZSBvbCBtYXAgb2JqZWN0XHJcbiAgICAgKiBAcmV0dXJucyB7b2wuTWFwfSB0aGUgbWFwIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBnZXQgbWFwKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgaWYgaXMgaW5pdGlhbGl6ZWRcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBpcyBpbml0aWFsaXplZFxyXG4gICAgICovXHJcbiAgICBnZXQgaW5pdGlhbGl6ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxpemVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgdGhlIGluaXRpYWxpemF0aW9uIHN0YXR1cyBhbmQgdGhyb3cgZXhjZXB0aW9uIGlmIG5vdCB2YWxpZCB5ZXRcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqL1xyXG4gICAgX2NoZWNrSW5pdCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgbGV0IG1zZyA9IGAke3RoaXMuX3N1YnR5cGV9IG9iamVjdCBub3QgaW5pdGlhbGl6ZWRgO1xyXG4gICAgICAgICAgICBhbGVydChtc2cpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhtc2cpO1xyXG4gICAgICAgICAgICB0aHJvdyBtc2c7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgdGhlIGluaXRpYWxpemF0aW9uIHN0YXR1cyBhbmQgdGhyb3cgZXhjZXB0aW9uIGlmIG5vdCB2YWxpZCB5ZXRcclxuICAgICAqL1xyXG4gICAgY2hlY2tJbml0KCl7XHJcbiAgICAgICAgdGhpcy5fY2hlY2tJbml0KCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbm5tLk1hcEludGVyYWN0aW9uQmFzZSA9IE1hcEludGVyYWN0aW9uQmFzZTtcclxuZXhwb3J0IGRlZmF1bHQgTWFwSW50ZXJhY3Rpb25CYXNlO1xyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapInteractionBase.ts\n// module id = 5\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar mapMoveCls_1 = require(\"./mapMoveCls\");\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\nexports.mapMove = new mapMoveCls_1.default();\r\nexports.default = exports.mapMove;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwTW92ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hcE1vdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUVILDJDQUFzQztBQUV0Qzs7O0dBR0c7QUFFVSxRQUFBLE9BQU8sR0FBRyxJQUFJLG9CQUFVLEVBQUUsQ0FBQztBQUN4QyxrQkFBZSxlQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8zLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IE1hcE1vdmVDbHMgZnJvbSAnLi9tYXBNb3ZlQ2xzJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2luZ2xlIG1hcCBtb3ZlIG9iamVjdCBjYXRjaCBpcyB0aGF0IGl0IGlzIGNvbW1vbiB0byBtdWx0aW1hcCBwYWdlc1xyXG4gKiBAdHlwZSB7TWFwTW92ZUNsc31cclxuICovXHJcblxyXG5leHBvcnQgY29uc3QgbWFwTW92ZSA9IG5ldyBNYXBNb3ZlQ2xzKCk7XHJcbmV4cG9ydCBkZWZhdWx0IG1hcE1vdmU7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapMove.ts\n// module id = 6\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 12/15/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar quickMapBase_1 = require(\"./quickMapBase\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar mapMove_1 = require(\"./mapMove\");\r\nvar mapPopup_1 = require(\"./mapPopup\");\r\nvar nm = provide_1.default('olHelpers');\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 {ol.Map} the ol map\r\n */\r\nfunction quickMap(options) {\r\n var m = quickMapBase_1.quickMapBase(options);\r\n mapMove_1.default.init(m);\r\n mapPopup_1.default.init(m);\r\n return m;\r\n}\r\nexports.quickMap = quickMap;\r\nnm.quickMap = quickMap;\r\nexports.default = quickMap;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2tNYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJxdWlja01hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsK0NBQTZEO0FBQzdELDJDQUFzQztBQUN0QyxxQ0FBZ0M7QUFDaEMsdUNBQWtDO0FBRWxDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFOUI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsa0JBQXlCLE9BQTBCO0lBQy9DLElBQUksQ0FBQyxHQUFHLDJCQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsaUJBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEIsa0JBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNiLENBQUM7QUFMRCw0QkFLQztBQUdELEVBQUUsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3ZCLGtCQUFlLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzE1LzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtxdWlja01hcE9wdGlvbnMsIHF1aWNrTWFwQmFzZX0gZnJvbSAnLi9xdWlja01hcEJhc2UnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFwTW92ZSBmcm9tICcuL21hcE1vdmUnO1xyXG5pbXBvcnQgbWFwUG9wdXAgZnJvbSAnLi9tYXBQb3B1cCc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5sZXQgbm0gPSBwcm92aWRlKCdvbEhlbHBlcnMnKTtcclxuXHJcbi8qKlxyXG4gKiBTZXRzIHVwIGEgbWFwIHdpdGggc29tZSBkZWZhdWx0IHBhcmFtZXRlcnMgYW5kIGluaXRpYWxpemVzXHJcbiAqIG1hcE1vdmUgYW5kIG1hcFBvcHVwXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucz17fV0gY29uZmlnIG9wdGlvbnNcclxuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmRpdklkPW1hcF0gbWFwIGRpdiBpZFxyXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMuY2VudGVyPXt9XSBjZW50ZXIgY29uZmlnIG9iamVjdFxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuY2VudGVyLng9LTEwMDE4Mzc4XSBjZW50ZXIgeCwgd2ViIG1lcmNhdG9yIHggb3IgbG9uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5jZW50ZXIueT01NTc0OTEwXSBjZW50ZXIgeSwgd2ViIG1lcmNhdG9yIHkgb3IgbGF0XHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56b29tPTddIHpvb20gbGV2ZWxcclxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSBtaW4gem9vbVxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIG1heCB6b29tXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuYmFzZVN3aXRjaGVyPXRydWVdIGlmIGFkZCBiYXNlIG1hcCBzd2l0Y2hlclxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmZ1bGxTY3JlZW49ZmFsc2VdIGlmIGFkZCBiYXNlIG1hcCBzd2l0Y2hlclxyXG4gKiBAcmV0dXJucyB7b2wuTWFwfSB0aGUgb2wgbWFwXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcXVpY2tNYXAob3B0aW9ucz8gOiBxdWlja01hcE9wdGlvbnMpOiBvbC5NYXAge1xyXG4gICAgbGV0IG0gPSBxdWlja01hcEJhc2Uob3B0aW9ucyk7XHJcbiAgICBtYXBNb3ZlLmluaXQobSk7XHJcbiAgICBtYXBQb3B1cC5pbml0KG0pO1xyXG4gICAgcmV0dXJuIG07XHJcbn1cclxuXHJcblxyXG5ubS5xdWlja01hcCA9IHF1aWNrTWFwO1xyXG5leHBvcnQgZGVmYXVsdCBxdWlja01hcDtcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/quickMap.ts\n// module id = 7\n// module chunks = 0 1 2 3","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar zoomResolutionConvert = require(\"../olHelpers/zoomResolutionConvert\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar makeGuid_1 = require(\"../util/makeGuid\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('layers');\r\n/**\r\n * The base layer class\r\n * @abstract\r\n */\r\nvar LayerBase = (function () {\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 function LayerBase(url, options) {\r\n if (options === void 0) { options = {}; }\r\n options = options || {};\r\n if (typeof url !== 'string') {\r\n throw 'Invalid URL';\r\n }\r\n this._url = url;\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 this.id = options.id || makeGuid_1.default();\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 if (this._opacity > 1) {\r\n this._opacity = 1;\r\n }\r\n else if (this._opacity < 0) {\r\n this._opacity = 0;\r\n }\r\n this._visible = typeof options.visible === 'boolean' ? options.visible : true;\r\n this._source = undefined;\r\n /**\r\n *\r\n * @protected\r\n */\r\n this._olLayer = undefined;\r\n this._loaded = false;\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 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 this.loadCallback = typeof options.loadCallback == 'function' ? options.loadCallback : function () {\r\n };\r\n this._legendContent = '';\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 }\r\n else {\r\n this._legendContent += \"<label class=\\\"legend-layer-name\\\">\" + this.name + \"</label>\";\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 * 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 LayerBase.prototype._load = function () {\r\n if (this.loaded == true) {\r\n return true;\r\n }\r\n else {\r\n this._loaded = true;\r\n return false;\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 LayerBase.prototype.getLegendDiv = function () {\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 * @param additionalContent - additional content to add to legend\r\n * @private\r\n */\r\n LayerBase.prototype._addLegendContent = function (additionalContent) {\r\n if (additionalContent === void 0) { additionalContent = ''; }\r\n var addCollapse = additionalContent.indexOf('<ul>') > -1;\r\n if (addCollapse) {\r\n additionalContent = '<span class=\"legend-items-expander\" title=\"Expand/Collapse\">▼</span>' + additionalContent;\r\n }\r\n this._legendContent += additionalContent;\r\n this._$legendDiv = $(\"#\" + this.id + \"-legend-layer-div\");\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 * add additional content to the legend\r\n * @param {string} [additionalContent=] - additonal content to add\r\n */\r\n LayerBase.prototype.addLegendContent = function (additionalContent) {\r\n this._addLegendContent(additionalContent);\r\n };\r\n LayerBase.prototype.applyCollapse = function () {\r\n if (this._applyCollapseCalled) {\r\n console.log('collapse already applied');\r\n return undefined;\r\n }\r\n this._$legendDiv = $(\"#\" + this.id + \"-legend-layer-div\");\r\n if (this._$legendDiv.length > 0) {\r\n var $expander = this._$legendDiv.find('.legend-items-expander');\r\n if ($expander.length > 0) {\r\n this._applyCollapseCalled = true;\r\n $expander.click(function () {\r\n var $this = $(this);\r\n $this.siblings('ul').slideToggle();\r\n if ($this.hasClass('legend-layer-group-collapsed')) {\r\n $this.removeClass('legend-layer-group-collapsed');\r\n $this.html('▼');\r\n }\r\n else {\r\n $this.addClass('legend-layer-group-collapsed');\r\n $this.html('▶');\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 * trick to refresh the layer\r\n */\r\n LayerBase.prototype.refresh = function () {\r\n if (this.source) {\r\n this.source.refresh();\r\n }\r\n };\r\n Object.defineProperty(LayerBase.prototype, \"id\", {\r\n get: function () {\r\n return this._id;\r\n },\r\n set: function (newId) {\r\n this._id = newId;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"animate\", {\r\n get: function () {\r\n return this._animate;\r\n },\r\n set: function (animate) {\r\n this._animate = animate;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"legendContent\", {\r\n /**\r\n * get the legend content\r\n * @type {string}\r\n */\r\n get: function () {\r\n return this._legendContent;\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: function (newVal) {\r\n this._legendContent = newVal;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"params\", {\r\n /**\r\n * get the map get params\r\n * @type {object}\r\n */\r\n get: function () {\r\n return this._params;\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: function (newParams) {\r\n this._params = newParams;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"minResolution\", {\r\n /**\r\n * get the minimum resolution\r\n * @type {number|*}\r\n */\r\n get: function () {\r\n return this._minResolution;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"maxResolution\", {\r\n /**\r\n * get the maximum resolution\r\n * @type {number|*}\r\n */\r\n get: function () {\r\n return this._maxResolution;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"minZoom\", {\r\n /**\r\n * get min zoom\r\n * @type {number|*}\r\n */\r\n get: function () {\r\n return this._minZoom;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"maxZoom\", {\r\n /**\r\n * get max zoom\r\n * @type {number|*}\r\n */\r\n get: function () {\r\n return this._maxZoom;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"url\", {\r\n /**\r\n * get the url\r\n * @type {string}\r\n */\r\n get: function () {\r\n return this._url;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"visible\", {\r\n /**\r\n * Get the layer visibility\r\n * @type {boolean}\r\n */\r\n get: function () {\r\n return this._visible;\r\n },\r\n /**\r\n * set the visibility\r\n * @param visibility\r\n */\r\n set: function (visibility) {\r\n this.setVisible(visibility);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LayerBase.prototype.setVisible = function (visibility) {\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 Object.defineProperty(LayerBase.prototype, \"opacity\", {\r\n /**\r\n * Get the layer opacity\r\n * @type {number}\r\n */\r\n get: function () {\r\n return this._opacity;\r\n },\r\n /**\r\n * Set the layer opacity\r\n * @param {number} opacity - layer opacity\r\n */\r\n set: function (opacity) {\r\n this._opacity = opacity;\r\n if (this.olLayer) {\r\n this.olLayer.setOpacity(this._opacity);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"name\", {\r\n /**\r\n * Get the layer name\r\n * @type {string}\r\n */\r\n get: function () {\r\n return this._name;\r\n },\r\n /**\r\n * set the layer name\r\n * @param {string} newName - the new name\r\n */\r\n set: function (newName) {\r\n this._name = newName;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"loaded\", {\r\n /**\r\n * Check if the layer is loaded\r\n * @type {boolean}\r\n */\r\n get: function () {\r\n return this._loaded;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"source\", {\r\n /**\r\n * get the layer source\r\n * @type {*}\r\n */\r\n get: function () {\r\n return this.getSource();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LayerBase.prototype.getSource = function () {\r\n return this._source;\r\n };\r\n Object.defineProperty(LayerBase.prototype, \"zIndex\", {\r\n /**\r\n * get the z index\r\n */\r\n get: function () {\r\n return this._zIndex;\r\n },\r\n /**\r\n * set the z index\r\n */\r\n set: function (newZ) {\r\n this._zIndex = newZ;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LayerBase.prototype.setZIndex = function (newZ) {\r\n };\r\n Object.defineProperty(LayerBase.prototype, \"olLayer\", {\r\n /**\r\n * the the ol layer\r\n */\r\n get: function () {\r\n return this.getOlLayer();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LayerBase.prototype.getOlLayer = function () {\r\n return this._olLayer;\r\n };\r\n return LayerBase;\r\n}());\r\nexports.LayerBase = LayerBase;\r\nnm.LayerBase = LayerBase;\r\nexports.default = LayerBase;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMEVBQTRFO0FBQzVFLDJDQUFzQztBQUV0Qyw2Q0FBd0M7QUFDeEMsMEJBQTZCO0FBRTdCLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFtQjdCOzs7R0FHRztBQUNIO0lBMEJJOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsbUJBQVksR0FBVyxFQUFFLE9BQThCO1FBQTlCLHdCQUFBLEVBQUEsWUFBOEI7UUFDbkQsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFzQixDQUFDO1FBRTVDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxhQUFhLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBR2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxPQUFPLENBQUMsTUFBTSxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUN2RSxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sT0FBTyxDQUFDLGNBQWMsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDbkcsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxjQUFjLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBRWxHLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxrQkFBUSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLGVBQWUsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sT0FBTyxDQUFDLE9BQU8sSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFFekUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTLEdBQUcsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFOUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7UUFFekI7OztXQUdHO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFFckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUUsRUFBRSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsY0FBYyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGNBQWMsSUFBSSxPQUFPLENBQUM7UUFDbkMsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlFLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxPQUFPLENBQUMsT0FBTyxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUNqRixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sT0FBTyxDQUFDLE9BQU8sSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7UUFDakYsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLE9BQU8sQ0FBQyxNQUFNLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRXRFLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxPQUFPLENBQUMsWUFBWSxJQUFJLFVBQVUsR0FBRyxPQUFPLENBQUMsWUFBWSxHQUFHO1FBQ3ZGLENBQUMsQ0FBQztRQUdGLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXpCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLElBQUksK0JBQTBCLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxHQUFHLEVBQUUsT0FBRztpQkFDN0UsaUNBQTRCLElBQUksQ0FBQyxFQUFFLHdDQUFvQyxDQUFBLENBQUM7WUFDNUUsSUFBSSxDQUFDLGNBQWMsSUFBSSxrQkFBZSxJQUFJLENBQUMsRUFBRSwwREFBa0QsSUFBSSxDQUFDLElBQUksYUFBVSxDQUFDO1FBQ3ZILENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxjQUFjLElBQUksd0NBQW9DLElBQUksQ0FBQyxJQUFJLGFBQVUsQ0FBQztRQUNuRixDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxPQUFPLENBQUMsYUFBYSxLQUFLLFFBQVEsR0FBRyxPQUFPLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBQzFHLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gseUJBQUssR0FBTDtRQUNJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBRXBCLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDakIsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxnQ0FBWSxHQUFaO1FBQ0ksTUFBTSxDQUFDLDBDQUFxQyxJQUFJLENBQUMsRUFBRSw0QkFBc0IsSUFBSSxDQUFDLGNBQWMsV0FBUSxDQUFDO0lBQ3pHLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gscUNBQWlCLEdBQWpCLFVBQWtCLGlCQUFvQjtRQUFwQixrQ0FBQSxFQUFBLHNCQUFvQjtRQUVsQyxJQUFJLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFekQsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNkLGlCQUFpQixHQUFHLDRFQUE0RSxHQUFHLGlCQUFpQixDQUFDO1FBQ3pILENBQUM7UUFFRCxJQUFJLENBQUMsY0FBYyxJQUFJLGlCQUFpQixDQUFDO1FBRXpDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLE1BQUksSUFBSSxDQUFDLEVBQUUsc0JBQW1CLENBQUMsQ0FBQztRQUVyRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsb0NBQWdCLEdBQWhCLFVBQWlCLGlCQUFpQjtRQUM5QixJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsaUNBQWEsR0FBYjtRQUNJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7WUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1lBRXhDLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDckIsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLE1BQUksSUFBSSxDQUFDLEVBQUUsc0JBQW1CLENBQUMsQ0FBQztRQUVyRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTlCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFFaEUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO2dCQUVqQyxTQUFTLENBQUMsS0FBSyxDQUFDO29CQUNaLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFFcEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFFbkMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDakQsS0FBSyxDQUFDLFdBQVcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO3dCQUNsRCxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUMxQixDQUFDO29CQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNKLEtBQUssQ0FBQyxRQUFRLENBQUMsOEJBQThCLENBQUMsQ0FBQzt3QkFDL0MsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDMUIsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFFSCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztvQkFDdkIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDL0IsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsMkJBQU8sR0FBUDtRQUNJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0wsQ0FBQztJQUVELHNCQUFJLHlCQUFFO2FBQU47WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNwQixDQUFDO2FBRUQsVUFBTyxLQUFhO1lBQ2hCLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLENBQUM7OztPQUpBO0lBTUQsc0JBQUksOEJBQU87YUFBWDtZQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3pCLENBQUM7YUFFRCxVQUFZLE9BQWdCO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQzVCLENBQUM7OztPQUpBO0lBVUQsc0JBQUksb0NBQWE7UUFKakI7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMvQixDQUFDO1FBRUQ7Ozs7V0FJRzthQUNILFVBQWtCLE1BQU07WUFDcEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7UUFDakMsQ0FBQzs7O09BVEE7SUFlRCxzQkFBSSw2QkFBTTtRQUpWOzs7V0FHRzthQUNIO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDeEIsQ0FBQztRQUVEOzs7O1dBSUc7YUFDSCxVQUFXLFNBQVM7WUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7UUFDN0IsQ0FBQzs7O09BVEE7SUFlRCxzQkFBSSxvQ0FBYTtRQUpqQjs7O1dBR0c7YUFDSDtZQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQy9CLENBQUM7OztPQUFBO0lBTUQsc0JBQUksb0NBQWE7UUFKakI7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMvQixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDhCQUFPO1FBSlg7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN6QixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDhCQUFPO1FBSlg7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN6QixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDBCQUFHO1FBSlA7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyQixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDhCQUFPO1FBSlg7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN6QixDQUFDO1FBRUQ7OztXQUdHO2FBQ0gsVUFBWSxVQUFtQjtZQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7OztPQVJBO0lBVVMsOEJBQVUsR0FBcEIsVUFBcUIsVUFBbUI7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDM0IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkMsRUFBRSxDQUFDLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFPRCxzQkFBSSw4QkFBTztRQUpYOzs7V0FHRzthQUNIO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDekIsQ0FBQztRQUVEOzs7V0FHRzthQUNILFVBQVksT0FBTztZQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1lBQ3hCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxDQUFDO1FBQ0wsQ0FBQzs7O09BWEE7SUFpQkQsc0JBQUksMkJBQUk7UUFKUjs7O1dBR0c7YUFDSDtZQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RCLENBQUM7UUFFRDs7O1dBR0c7YUFDSCxVQUFTLE9BQU87WUFDWixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztRQUN6QixDQUFDOzs7T0FSQTtJQWNELHNCQUFJLDZCQUFNO1FBSlY7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN4QixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDZCQUFNO1FBSlY7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzVCLENBQUM7OztPQUFBO0lBR1MsNkJBQVMsR0FBbkI7UUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBS0Qsc0JBQUksNkJBQU07UUFIVjs7V0FFRzthQUNIO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDeEIsQ0FBQztRQUVEOztXQUVHO2FBQ0gsVUFBVyxJQUFZO1lBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUM7OztPQVBBO0lBU1MsNkJBQVMsR0FBbkIsVUFBb0IsSUFBWTtJQUVoQyxDQUFDO0lBS0Qsc0JBQUksOEJBQU87UUFIWDs7V0FFRzthQUNIO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM3QixDQUFDOzs7T0FBQTtJQUVTLDhCQUFVLEdBQXBCO1FBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUNMLGdCQUFDO0FBQUQsQ0FBQyxBQXhaRCxJQXdaQztBQXhacUIsOEJBQVM7QUEwWi9CLEVBQUUsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0FBQ3pCLGtCQUFlLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHpvb21SZXNvbHV0aW9uQ29udmVydCBmcm9tICcuLi9vbEhlbHBlcnMvem9vbVJlc29sdXRpb25Db252ZXJ0JztcclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCBtYWtlR3VpZCBmcm9tICcuLi91dGlsL21ha2VHdWlkJztcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckJhc2VPcHRpb25ze1xyXG4gICAgaWQ/OiBzdHJpbmc7XHJcbiAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgb3BhY2l0eT86IG51bWJlcjtcclxuICAgIHZpc2libGU/OiBib29sZWFuO1xyXG4gICAgbWluWm9vbT86IG51bWJlcjtcclxuICAgIG1heFpvb20/OiBudW1iZXI7XHJcbiAgICBwYXJhbXM/OiBhbnk7XHJcbiAgICB6SW5kZXg/OiBudW1iZXI7XHJcbiAgICBsb2FkQ2FsbGJhY2s/OiBGdW5jdGlvbjtcclxuICAgIGxlZ2VuZENvbGxhcHNlPzogYm9vbGVhbjtcclxuICAgIGxlZ2VuZENoZWNrYm94PzogYm9vbGVhbjtcclxuICAgIGxlZ2VuZENvbnRlbnQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGhlIGJhc2UgbGF5ZXIgY2xhc3NcclxuICogQGFic3RyYWN0XHJcbiAqL1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGF5ZXJCYXNlIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgX2xlZ2VuZENoZWNrYm94OiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF91cmw6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBfb3BhY2l0eTogbnVtYmVyO1xyXG4gICAgcHJvdGVjdGVkIF9taW5ab29tOiBudW1iZXI7XHJcbiAgICBwcm90ZWN0ZWQgX21heFpvb206IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCBfdmlzaWJsZTogYm9vbGVhbjtcclxuICAgIHByb3RlY3RlZCBfbG9hZGVkOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF96SW5kZXg6IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCBfbGVnZW5kQ29udGVudDogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIF9wYXJhbXM6IGFueTtcclxuICAgIHByb3RlY3RlZCBfaWQ6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBfbmFtZTogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIF9zb3VyY2U6IG9sLnNvdXJjZS5Tb3VyY2U7XHJcbiAgICBwcm90ZWN0ZWQgX2FuaW1hdGU6IGJvb2xlYW47XHJcbiAgICBwcm90ZWN0ZWQgX2xlZ2VuZENvbGxhcHNlOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF9tYXhSZXNvbHV0aW9uOiBudW1iZXI7XHJcbiAgICBwcm90ZWN0ZWQgX21pblJlc29sdXRpb246IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCAgXyRsZWdlbmREaXY6IEpRdWVyeTtcclxuICAgIGxvYWRDYWxsYmFjazogRnVuY3Rpb247XHJcbiAgICBwcm90ZWN0ZWQgX29sTGF5ZXI6IG9sLmxheWVyLkxheWVyO1xyXG4gICAgcHJvdGVjdGVkIF9hcHBseUNvbGxhcHNlQ2FsbGVkOiBib29sZWFuO1xyXG5cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYmFzZSBsYXllciBmb3IgYWxsIG90aGVyc1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIHVybCBmb3Igc291cmNlXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmlkPW1ha2VHdWlkKCldIC0gbGF5ZXIgaWRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5uYW1lPVVubmFtZWQgTGF5ZXJdIC0gbGF5ZXIgbmFtZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm9wYWNpdHk9MV0gLSBvcGFjaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnZpc2libGU9dHJ1ZV0gLSBkZWZhdWx0IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5ab29tPXVuZGVmaW5lZF0gLSBtaW4gem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIC0gbWF4IHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnBhcmFtcz17fV0gLSB0aGUgZ2V0IHBhcmFtZXRlcnMgdG8gaW5jbHVkZSB0byByZXRyaWV2ZSB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56SW5kZXg9MF0gLSB0aGUgeiBpbmRleCBmb3IgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy5sb2FkQ2FsbGJhY2tdIC0gZnVuY3Rpb24gdG8gY2FsbCBvbiBsb2FkLCBjb250ZXh0IHRoaXMgaXMgdGhlIGxheWVyIG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb2xsYXBzZT1mYWxzZV0gLSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGJlIGluaXRpYWxseSBjb2xsYXBzZWRcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ2hlY2tib3g9dHJ1ZV0gLSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGhhdmUgYSBjaGVja2JveCBmb3IgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb250ZW50PXVuZGVmaW5lZF0gLSBhZGRpdGlvbmFsIGNvbnRlbnQgdG8gYWRkIHRvIHRoZSBsZWdlbmRcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IodXJsOiBzdHJpbmcsIG9wdGlvbnM6IExheWVyQmFzZU9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9IGFzIExheWVyQmFzZU9wdGlvbnM7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdXJsICE9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB0aHJvdyAnSW52YWxpZCBVUkwnO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl91cmwgPSB1cmw7XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9wYXJhbXMgPSB0eXBlb2Ygb3B0aW9ucy5wYXJhbXMgPT0gJ29iamVjdCcgPyBvcHRpb25zLnBhcmFtcyA6IHt9O1xyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbGxhcHNlID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kQ29sbGFwc2UgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5sZWdlbmRDb2xsYXBzZSA6IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENoZWNrYm94ID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kQ2hlY2tib3ggPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5sZWdlbmRDaGVja2JveCA6IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuaWQgPSBvcHRpb25zLmlkIHx8IG1ha2VHdWlkKCk7XHJcbiAgICAgICAgdGhpcy5fbmFtZSA9IG9wdGlvbnMubmFtZSB8fCAnVW5uYW1lZCBMYXllcic7XHJcbiAgICAgICAgdGhpcy5hbmltYXRlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IHR5cGVvZiBvcHRpb25zLm9wYWNpdHkgPT0gJ251bWJlcicgPyBvcHRpb25zLm9wYWNpdHkgOiAxO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fb3BhY2l0eSA+IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5fb3BhY2l0eSA9IDE7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9vcGFjaXR5IDwgMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9vcGFjaXR5ID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB0eXBlb2Ygb3B0aW9ucy52aXNpYmxlID09PSAnYm9vbGVhbicgPyBvcHRpb25zLnZpc2libGUgOiB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLl9zb3VyY2UgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByb3RlY3RlZFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuX21heFJlc29sdXRpb24gPSB6b29tUmVzb2x1dGlvbkNvbnZlcnQuem9vbVRvUmVzb2x1dGlvbihvcHRpb25zLm1pblpvb20pO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5fbWF4UmVzb2x1dGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5fbWF4UmVzb2x1dGlvbiArPSAwLjAwMDAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9taW5SZXNvbHV0aW9uID0gem9vbVJlc29sdXRpb25Db252ZXJ0Lnpvb21Ub1Jlc29sdXRpb24ob3B0aW9ucy5tYXhab29tKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWluWm9vbSA9IHR5cGVvZiBvcHRpb25zLm1pblpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLm1pblpvb20gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbWF4Wm9vbSA9IHR5cGVvZiBvcHRpb25zLm1heFpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLm1heFpvb20gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fekluZGV4ID0gdHlwZW9mIG9wdGlvbnMuekluZGV4ID09ICdudW1iZXInID8gb3B0aW9ucy56SW5kZXggOiAwO1xyXG5cclxuICAgICAgICB0aGlzLmxvYWRDYWxsYmFjayA9IHR5cGVvZiBvcHRpb25zLmxvYWRDYWxsYmFjayA9PSAnZnVuY3Rpb24nID8gb3B0aW9ucy5sb2FkQ2FsbGJhY2sgOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgfTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgPSAnJztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2xlZ2VuZENoZWNrYm94KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgKz0gYDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiAke3RoaXMudmlzaWJsZSA/ICdjaGVja2VkJyA6ICcnfSBgICtcclxuICAgICAgICAgICAgICAgIGBjbGFzcz1cImxlZ2VuZC1jaGVja1wiIGlkPVwiJHt0aGlzLmlkfS1sZWdlbmQtbGF5ZXItY2hlY2tcIj48c3Bhbj48L3NwYW4+YDtcclxuICAgICAgICAgICAgdGhpcy5fbGVnZW5kQ29udGVudCArPSBgPGxhYmVsIGZvcj1cIiR7dGhpcy5pZH0tbGVnZW5kLWxheWVyLWNoZWNrXCIgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbmFtZVwiPiR7dGhpcy5uYW1lfTwvbGFiZWw+YDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9sZWdlbmRDb250ZW50ICs9IGA8bGFiZWwgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbmFtZVwiPiR7dGhpcy5uYW1lfTwvbGFiZWw+YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuXyRsZWdlbmREaXYgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2FwcGx5Q29sbGFwc2VDYWxsZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9hZGRMZWdlbmRDb250ZW50KHR5cGVvZiBvcHRpb25zLmxlZ2VuZENvbnRlbnQgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5sZWdlbmRDb250ZW50IDogdW5kZWZpbmVkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGJhc2UgbG9hZCBmdW5jdGlvbiwgc2V0cyBfbG9hZGVkID0gdHJ1ZSBpZiBpdCBpcyBub3QgYWxyZWFkeVxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IGlmIGFscmVhZHkgbG9hZGVkXHJcbiAgICAgKi9cclxuICAgIF9sb2FkKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmxvYWRlZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHRoZSBsZWdlbmQgaHRtbCwgYmUgc3VyZSB0byBvbmx5IGFkZCB0byB0aGUgRE9NIG9uY2VcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IGh0bWwgZm9yIGxheWVyIHdyYXBwZWQgaW4gYSBkaXZcclxuICAgICAqL1xyXG4gICAgZ2V0TGVnZW5kRGl2KCkge1xyXG4gICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImxlZ2VuZC1sYXllci1kaXZcIiBpZD1cIiR7dGhpcy5pZH0tbGVnZW5kLWxheWVyLWRpdlwiPiR7dGhpcy5fbGVnZW5kQ29udGVudH08L2Rpdj5gO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBhZGRpdGlvbmFsQ29udGVudCAtIGFkZGl0aW9uYWwgY29udGVudCB0byBhZGQgdG8gbGVnZW5kXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBfYWRkTGVnZW5kQ29udGVudChhZGRpdGlvbmFsQ29udGVudD0nJykge1xyXG5cclxuICAgICAgICBsZXQgYWRkQ29sbGFwc2UgPSBhZGRpdGlvbmFsQ29udGVudC5pbmRleE9mKCc8dWw+JykgPiAtMTtcclxuXHJcbiAgICAgICAgaWYgKGFkZENvbGxhcHNlKSB7XHJcbiAgICAgICAgICAgIGFkZGl0aW9uYWxDb250ZW50ID0gJzxzcGFuIGNsYXNzPVwibGVnZW5kLWl0ZW1zLWV4cGFuZGVyXCIgdGl0bGU9XCJFeHBhbmQvQ29sbGFwc2VcIj4mIzk2NjA7PC9zcGFuPicgKyBhZGRpdGlvbmFsQ29udGVudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgKz0gYWRkaXRpb25hbENvbnRlbnQ7XHJcblxyXG4gICAgICAgIHRoaXMuXyRsZWdlbmREaXYgPSAkKGAjJHt0aGlzLmlkfS1sZWdlbmQtbGF5ZXItZGl2YCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl8kbGVnZW5kRGl2Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5fJGxlZ2VuZERpdi5hcHBlbmQoYWRkaXRpb25hbENvbnRlbnQpO1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5Q29sbGFwc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhZGQgYWRkaXRpb25hbCBjb250ZW50IHRvIHRoZSBsZWdlbmRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbYWRkaXRpb25hbENvbnRlbnQ9XSAtIGFkZGl0b25hbCBjb250ZW50IHRvIGFkZFxyXG4gICAgICovXHJcbiAgICBhZGRMZWdlbmRDb250ZW50KGFkZGl0aW9uYWxDb250ZW50KSB7XHJcbiAgICAgICAgdGhpcy5fYWRkTGVnZW5kQ29udGVudChhZGRpdGlvbmFsQ29udGVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXBwbHlDb2xsYXBzZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5fYXBwbHlDb2xsYXBzZUNhbGxlZCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY29sbGFwc2UgYWxyZWFkeSBhcHBsaWVkJyk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fJGxlZ2VuZERpdiA9ICQoYCMke3RoaXMuaWR9LWxlZ2VuZC1sYXllci1kaXZgKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuXyRsZWdlbmREaXYubGVuZ3RoID4gMCkge1xyXG5cclxuICAgICAgICAgICAgbGV0ICRleHBhbmRlciA9IHRoaXMuXyRsZWdlbmREaXYuZmluZCgnLmxlZ2VuZC1pdGVtcy1leHBhbmRlcicpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCRleHBhbmRlci5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hcHBseUNvbGxhcHNlQ2FsbGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAkZXhwYW5kZXIuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCAkdGhpcyA9ICQodGhpcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICR0aGlzLnNpYmxpbmdzKCd1bCcpLnNsaWRlVG9nZ2xlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy5oYXNDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLnJlbW92ZUNsYXNzKCdsZWdlbmQtbGF5ZXItZ3JvdXAtY29sbGFwc2VkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLmh0bWwoJyYjOTY2MDsnKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5hZGRDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5odG1sKCcmIzk2NTQ7Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2xlZ2VuZENvbGxhcHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJGV4cGFuZGVyLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmljayB0byByZWZyZXNoIHRoZSBsYXllclxyXG4gICAgICovXHJcbiAgICByZWZyZXNoKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNvdXJjZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNvdXJjZS5yZWZyZXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBpZCgpOiBzdHJpbmd7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lkO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBpZChuZXdJZDogc3RyaW5nKXtcclxuICAgICAgICB0aGlzLl9pZCA9IG5ld0lkO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhbmltYXRlKCk6IGJvb2xlYW57XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FuaW1hdGU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGFuaW1hdGUoYW5pbWF0ZTogYm9vbGVhbil7XHJcbiAgICAgICAgdGhpcy5fYW5pbWF0ZSA9IGFuaW1hdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIGxlZ2VuZCBjb250ZW50XHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICovXHJcbiAgICBnZXQgbGVnZW5kQ29udGVudCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbGVnZW5kQ29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgbGVnZW5kIGNvbnRlbnQgZGlyZWN0bHlcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuZXdWYWwgLSBuZXcgY29udGVudFxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICovXHJcbiAgICBzZXQgbGVnZW5kQ29udGVudChuZXdWYWwpIHtcclxuICAgICAgICB0aGlzLl9sZWdlbmRDb250ZW50ID0gbmV3VmFsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtYXAgZ2V0IHBhcmFtc1xyXG4gICAgICogQHR5cGUge29iamVjdH1cclxuICAgICAqL1xyXG4gICAgZ2V0IHBhcmFtcygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IHRoZSBtYXAgZ2V0IHBhcmFtc1xyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IG5ld1BhcmFtcyAtIG5ldyBnZXQgcGFyYW1zXHJcbiAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgKi9cclxuICAgIHNldCBwYXJhbXMobmV3UGFyYW1zKSB7XHJcbiAgICAgICAgdGhpcy5fcGFyYW1zID0gbmV3UGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtaW5pbXVtIHJlc29sdXRpb25cclxuICAgICAqIEB0eXBlIHtudW1iZXJ8Kn1cclxuICAgICAqL1xyXG4gICAgZ2V0IG1pblJlc29sdXRpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pblJlc29sdXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIG1heGltdW0gcmVzb2x1dGlvblxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWF4UmVzb2x1dGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4UmVzb2x1dGlvbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCBtaW4gem9vbVxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWluWm9vbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWluWm9vbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCBtYXggem9vbVxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWF4Wm9vbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4Wm9vbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgdXJsXHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICovXHJcbiAgICBnZXQgdXJsKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91cmw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGxheWVyIHZpc2liaWxpdHlcclxuICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHZpc2liaWxpdHlcclxuICAgICAqL1xyXG4gICAgc2V0IHZpc2libGUodmlzaWJpbGl0eTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuc2V0VmlzaWJsZSh2aXNpYmlsaXR5KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0VmlzaWJsZSh2aXNpYmlsaXR5OiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZpc2liaWxpdHk7XHJcbiAgICAgICAgaWYgKHRoaXMub2xMYXllcikge1xyXG4gICAgICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0VmlzaWJsZSh0aGlzLl92aXNpYmxlKTtcclxuICAgICAgICAgICAgaWYgKHZpc2liaWxpdHkgJiYgIXRoaXMuX2xvYWRlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCB0aGUgbGF5ZXIgb3BhY2l0eVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqL1xyXG4gICAgZ2V0IG9wYWNpdHkoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wYWNpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIGxheWVyIG9wYWNpdHlcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvcGFjaXR5IC0gbGF5ZXIgb3BhY2l0eVxyXG4gICAgICovXHJcbiAgICBzZXQgb3BhY2l0eShvcGFjaXR5KSB7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IG9wYWNpdHk7XHJcbiAgICAgICAgaWYgKHRoaXMub2xMYXllcikge1xyXG4gICAgICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0T3BhY2l0eSh0aGlzLl9vcGFjaXR5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGxheWVyIG5hbWVcclxuICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgKi9cclxuICAgIGdldCBuYW1lKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9uYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IHRoZSBsYXllciBuYW1lXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3TmFtZSAtIHRoZSBuZXcgbmFtZVxyXG4gICAgICovXHJcbiAgICBzZXQgbmFtZShuZXdOYW1lKSB7XHJcbiAgICAgICAgdGhpcy5fbmFtZSA9IG5ld05hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGUgbGF5ZXIgaXMgbG9hZGVkXHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqL1xyXG4gICAgZ2V0IGxvYWRlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBsYXllciBzb3VyY2VcclxuICAgICAqIEB0eXBlIHsqfVxyXG4gICAgICovXHJcbiAgICBnZXQgc291cmNlKCk6IG9sLnNvdXJjZS5Tb3VyY2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNvdXJjZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0U291cmNlKCk6IG9sLnNvdXJjZS5Tb3VyY2V7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgeiBpbmRleFxyXG4gICAgICovXHJcbiAgICBnZXQgekluZGV4KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3pJbmRleDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgeiBpbmRleFxyXG4gICAgICovXHJcbiAgICBzZXQgekluZGV4KG5ld1o6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX3pJbmRleCA9IG5ld1o7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHNldFpJbmRleChuZXdaOiBudW1iZXIpe1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHRoZSB0aGUgb2wgbGF5ZXJcclxuICAgICAqL1xyXG4gICAgZ2V0IG9sTGF5ZXIoKTogb2wubGF5ZXIuTGF5ZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE9sTGF5ZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0T2xMYXllcigpOiBvbC5sYXllci5MYXllcntcclxuICAgICAgICByZXR1cm4gdGhpcy5fb2xMYXllcjtcclxuICAgIH1cclxufVxyXG5cclxubm0uTGF5ZXJCYXNlID0gTGF5ZXJCYXNlO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckJhc2U7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/layers/LayerBase.ts\n// module id = 8\n// module chunks = 0 1 2 3","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"./provide\");\r\nvar nm = provide_1.default('util.checkDefined');\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\nfunction undefinedOrNull(input) {\r\n \"use strict\";\r\n return (typeof input === 'undefined' || input === null);\r\n}\r\nexports.undefinedOrNull = undefinedOrNull;\r\nnm.undefinedOrNull = undefinedOrNull;\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\nfunction definedAndNotNull(input) {\r\n \"use strict\";\r\n return !(undefinedOrNull(input));\r\n}\r\nexports.definedAndNotNull = definedAndNotNull;\r\nnm.definedAndNotNull = definedAndNotNull;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tEZWZpbmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2hlY2tEZWZpbmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscUNBQWdDO0FBQ2hDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUV0Qzs7OztHQUlHO0FBQ0gseUJBQWlDLEtBQUs7SUFDbEMsWUFBWSxDQUFDO0lBRWIsTUFBTSxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBSkQsMENBSUM7QUFFRCxFQUFFLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztBQUdyQzs7OztHQUlHO0FBQ0gsMkJBQW1DLEtBQVU7SUFDekMsWUFBWSxDQUFDO0lBRWIsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBSkQsOENBSUM7QUFFRCxFQUFFLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcHJvdmlkZSBmcm9tICcuL3Byb3ZpZGUnO1xyXG5sZXQgbm0gPSBwcm92aWRlKCd1dGlsLmNoZWNrRGVmaW5lZCcpO1xyXG5cclxuLyoqXHJcbiAqIGNoZWNrIGlmIHRoZSBpbnB1dCBpcyB1bmRlZmluZWQgb3IgbnVsbFxyXG4gKiBAcGFyYW0gaW5wdXQgLSBpbnB1dCBwb2ludGVyXHJcbiAqIEByZXR1cm5zIHRydWUgdW5kZWZpbmVkIG9yIG51bGxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1bmRlZmluZWRPck51bGwgKGlucHV0KTogYm9vbGVhbntcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG5cclxuICAgIHJldHVybiAodHlwZW9mIGlucHV0ID09PSAndW5kZWZpbmVkJyB8fCBpbnB1dCA9PT0gbnVsbCk7XHJcbn1cclxuXHJcbm5tLnVuZGVmaW5lZE9yTnVsbCA9IHVuZGVmaW5lZE9yTnVsbDtcclxuXHJcblxyXG4vKipcclxuICogY2hlY2sgaWYgdGhlIGlucHV0IGlzIGRlZmluZWQgYW5kIG5vdCBudWxsXHJcbiAqIEBwYXJhbSBpbnB1dCAtIGlucHV0IHBvaW50ZXJcclxuICogQHJldHVybnMgdHJ1ZSBkZWZpbmVkIGFuZCBub3QgbnVsbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZWRBbmROb3ROdWxsIChpbnB1dDogYW55KTogYm9vbGVhbntcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG5cclxuICAgIHJldHVybiAhKHVuZGVmaW5lZE9yTnVsbChpbnB1dCkpO1xyXG59XHJcblxyXG5ubS5kZWZpbmVkQW5kTm90TnVsbCA9IGRlZmluZWRBbmROb3ROdWxsO1xyXG5cclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/util/checkDefined.ts\n// module id = 9\n// module chunks = 0 1 2 3","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar mapInteractionBase_1 = require(\"./mapInteractionBase\");\r\nvar checkDefined = require(\"../util/checkDefined\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar makeGuid_1 = require(\"../util/makeGuid\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('olHelpers');\r\n/**\r\n * assists with map move interactions, trigger callback functions\r\n * @augments MapInteractionBase\r\n */\r\nvar MapMoveCls = (function (_super) {\r\n __extends(MapMoveCls, _super);\r\n /**\r\n * constructor called implicitly\r\n */\r\n function MapMoveCls() {\r\n var _this = _super.call(this, 'map move') || this;\r\n _this._arrLyrRequest = [];\r\n _this._arrLyrTimeout = [];\r\n _this._arrLayer = [];\r\n _this._lookupLayer = {};\r\n _this._mapMoveCallbacks = [];\r\n _this._mapMoveCallbacksLookup = {};\r\n _this._mapMoveCallbackDelays = [];\r\n _this._mapMoveCallbackContext = [];\r\n _this._mapMoveCallbackTimeout = [];\r\n _this._mapExtent = undefined;\r\n _this._zoomLevel = undefined;\r\n return _this;\r\n }\r\n /**\r\n * initialize the map move object\r\n * @param theMap - the ol map\r\n */\r\n MapMoveCls.prototype.init = function (theMap) {\r\n var _this = this;\r\n _super.prototype.init.call(this, theMap);\r\n this.map.getView().on(['change:center', 'change:resolution'], function (e) {\r\n _this._updateMapExtent();\r\n // trigger the layer updates\r\n for (var i = 0; i < _this._arrLayer.length; i++) {\r\n _this.triggerLyrLoad(_this._arrLayer[i], i, e.type);\r\n }\r\n // trigger the map callbacks\r\n for (var i = 0; i < _this._mapMoveCallbacks.length; i++) {\r\n _this.triggerMoveCallback(i, e.type);\r\n }\r\n });\r\n };\r\n MapMoveCls.prototype._updateMapExtent = function () {\r\n var theView = this.map.getView();\r\n this._zoomLevel = theView.getZoom();\r\n var extentArray = theView.calculateExtent(this.map.getSize());\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 Object.defineProperty(MapMoveCls.prototype, \"mapExtent\", {\r\n /**\r\n * return the map extent\r\n */\r\n get: function () {\r\n if (!this._mapExtent) {\r\n this._updateMapExtent();\r\n }\r\n return this._mapExtent;\r\n },\r\n enumerable: true,\r\n configurable: true\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 MapMoveCls.prototype.triggerLyrLoad = function (lyr, index, eventType) {\r\n if (checkDefined.undefinedOrNull(lyr) && checkDefined.undefinedOrNull(index)) {\r\n throw 'need to define lyr or index';\r\n }\r\n else if (checkDefined.definedAndNotNull(lyr) && checkDefined.undefinedOrNull(index)) {\r\n index = this._arrLayer.indexOf(lyr);\r\n }\r\n else if (checkDefined.undefinedOrNull(lyr) && checkDefined.definedAndNotNull(index)) {\r\n lyr = this._arrLayer[index];\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 // 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 // dummy callback used if before load returns false\r\n var callbackFunc = function () { };\r\n if (lyr.mapMoveBefore(this._zoomLevel, eventType)) {\r\n lyr.mapMoveMakeGetParams(this._mapExtent, this._zoomLevel);\r\n var __this_1 = this;\r\n callbackFunc = function () {\r\n function innerFunction(theLayer, theIndex) {\r\n var _innerThis = this;\r\n this._arrLyrRequest[theIndex] = $.get(theLayer.url, theLayer.mapMoveParams, function (d) {\r\n /**\r\n * @type {LayerBaseVector}\r\n */\r\n theLayer.mapMoveCallback(d);\r\n theLayer.loadCallback();\r\n }, 'json').fail(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(function () {\r\n _innerThis._arrLyrTimeout[theIndex] = null;\r\n _innerThis._arrLyrRequest[theIndex] = null;\r\n });\r\n }\r\n innerFunction.call(__this_1, lyr, index);\r\n };\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 * 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 MapMoveCls.prototype.triggerMoveCallback = function (ind, eventType, functionId) {\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 if (typeof ind !== 'number') {\r\n ind = this._mapMoveCallbacks.indexOf(this._mapMoveCallbacksLookup[functionId]);\r\n }\r\n if (ind < 0) {\r\n console.log('function not found');\r\n return;\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 var ctx = this._mapMoveCallbackContext[ind];\r\n var theFunc = this._mapMoveCallbacks[ind];\r\n var __this = this;\r\n var f = function () {\r\n if (ctx !== null) {\r\n theFunc.call(ctx, __this._mapExtent, __this._zoomLevel, eventType);\r\n }\r\n else {\r\n theFunc(__this._mapExtent, __this._zoomLevel, eventType);\r\n }\r\n };\r\n this._mapMoveCallbackTimeout[ind] = setTimeout(f, this._mapMoveCallbackDelays[ind]);\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 MapMoveCls.prototype.addVectorLayer = function (lyr, triggerOnAdd) {\r\n if (triggerOnAdd === void 0) { triggerOnAdd = true; }\r\n if (this._arrLayer.indexOf(lyr) > -1) {\r\n console.log('already added ' + lyr.name + ' to map move');\r\n return;\r\n }\r\n this._checkInit();\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 triggerOnAdd = typeof triggerOnAdd == 'boolean' ? triggerOnAdd : true;\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 * 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 MapMoveCls.prototype.addCallback = function (func, context, delay, triggerOnAdd, functionId) {\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_1.default();\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 triggerOnAdd = typeof triggerOnAdd == 'boolean' ? triggerOnAdd : true;\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 return MapMoveCls;\r\n}(mapInteractionBase_1.default));\r\nexports.MapMoveCls = MapMoveCls;\r\nnm.MapMoveCls = MapMoveCls;\r\nexports.default = MapMoveCls;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwTW92ZUNscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hcE1vdmVDbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EsMkRBQXNEO0FBQ3RELG1EQUFxRDtBQUNyRCwyQ0FBc0M7QUFDdEMsNkNBQXdDO0FBRXhDLDBCQUE2QjtBQUM3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBcUJoQzs7O0dBR0c7QUFDSDtJQUFnQyw4QkFBa0I7SUFhOUM7O09BRUc7SUFDSDtRQUFBLFlBQ0ksa0JBQU0sVUFBVSxDQUFDLFNBZXBCO1FBZEcsS0FBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsS0FBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsS0FBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFFdkIsS0FBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixLQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLEtBQUksQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7UUFDakMsS0FBSSxDQUFDLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUNsQyxLQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBRWxDLEtBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLEtBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDOztJQUVoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gseUJBQUksR0FBSixVQUFLLE1BQWM7UUFBbkIsaUJBaUJDO1FBaEJHLGlCQUFNLElBQUksWUFBQyxNQUFNLENBQUMsQ0FBQztRQUVuQixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLFVBQUMs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Q0FBQztRQUNoRSxDQUFDO0lBQ0wsQ0FBQztJQUNMLGlCQUFDO0FBQUQsQ0FBQyxBQWxRRCxDQUFnQyw0QkFBa0IsR0FrUWpEO0FBbFFZLGdDQUFVO0FBb1F2QixFQUFFLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztBQUMzQixrQkFBZSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGF5ZXJCYXNlVmVjdG9yIGZyb20gXCIuLi9sYXllcnMvTGF5ZXJCYXNlVmVjdG9yXCI7XHJcbmltcG9ydCBNYXBJbnRlcmFjdGlvbkJhc2UgZnJvbSAnLi9tYXBJbnRlcmFjdGlvbkJhc2UnO1xyXG5pbXBvcnQgKiBhcyBjaGVja0RlZmluZWQgZnJvbSAnLi4vdXRpbC9jaGVja0RlZmluZWQnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFrZUd1aWQgZnJvbSAnLi4vdXRpbC9tYWtlR3VpZCc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycycpO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgZXh0ZW50T2JqZWN0e1xyXG4gICAgbWluWDogbnVtYmVyO1xyXG4gICAgbWluWTogbnVtYmVyO1xyXG4gICAgbWF4WDogbnVtYmVyO1xyXG4gICAgbWF4WTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIG1hcE1vdmVDYWxsYmFja0Z1bmN0aW9ue1xyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGV4dGVudCBleHRlbnQgYXMgcHJlZGVmaW5lZCBvYmplY3QgbWluWCwgbWluWCwgbWF4WCwgbWF4WVxyXG4gICAgICogQHBhcmFtIHpvb21MZXZlbCBjdXJyZW50IHpvb20gbGV2ZWxcclxuICAgICAqIEBwYXJhbSBldnRUeXBlIHRoZSBldmVudCB0eXBlICdjaGFuZ2U6Y2VudGVyJywgJ2NoYW5nZTpyZXNvbHV0aW9uJ1xyXG4gICAgICovXHJcbiAgICAoZXh0ZW50OiBleHRlbnRPYmplY3QsIHpvb21MZXZlbDogbnVtYmVyLCBldnRUeXBlPzogc3RyaW5nKTogYW55XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogYXNzaXN0cyB3aXRoIG1hcCBtb3ZlIGludGVyYWN0aW9ucywgdHJpZ2dlciBjYWxsYmFjayBmdW5jdGlvbnNcclxuICogQGF1Z21lbnRzIE1hcEludGVyYWN0aW9uQmFzZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIE1hcE1vdmVDbHMgZXh0ZW5kcyBNYXBJbnRlcmFjdGlvbkJhc2Uge1xyXG4gICAgX21hcEV4dGVudDogZXh0ZW50T2JqZWN0O1xyXG4gICAgX3pvb21MZXZlbDogbnVtYmVyO1xyXG4gICAgX2xvb2t1cExheWVyOiBPYmplY3Q7XHJcbiAgICBfYXJyTGF5ZXI6IEFycmF5PExheWVyQmFzZVZlY3Rvcj47XHJcbiAgICBfYXJyTHlyVGltZW91dDogQXJyYXk8bnVtYmVyPjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0OiBBcnJheTxudW1iZXI+O1xyXG4gICAgX21hcE1vdmVDYWxsYmFja0RlbGF5czogQXJyYXk8bnVtYmVyPjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tzTG9va3VwOiBPYmplY3Q7XHJcbiAgICBfbWFwTW92ZUNhbGxiYWNrQ29udGV4dDogQXJyYXk8T2JqZWN0PjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tzOiBBcnJheTxtYXBNb3ZlQ2FsbGJhY2tGdW5jdGlvbj47XHJcbiAgICBfYXJyTHlyUmVxdWVzdDogQXJyYXk8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGNvbnN0cnVjdG9yIGNhbGxlZCBpbXBsaWNpdGx5XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCdtYXAgbW92ZScpO1xyXG4gICAgICAgIHRoaXMuX2Fyckx5clJlcXVlc3QgPSBbXTtcclxuICAgICAgICB0aGlzLl9hcnJMeXJUaW1lb3V0ID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyTGF5ZXIgPSBbXTtcclxuICAgICAgICB0aGlzLl9sb29rdXBMYXllciA9IHt9O1xyXG5cclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzID0gW107XHJcbiAgICAgICAgdGhpcy5fbWFwTW92ZUNhbGxiYWNrc0xvb2t1cCA9IHt9O1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja0RlbGF5cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja0NvbnRleHQgPSBbXTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0ID0gW107XHJcblxyXG4gICAgICAgIHRoaXMuX21hcEV4dGVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl96b29tTGV2ZWwgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogaW5pdGlhbGl6ZSB0aGUgbWFwIG1vdmUgb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0gdGhlTWFwIC0gdGhlIG9sIG1hcFxyXG4gICAgICovXHJcbiAgICBpbml0KHRoZU1hcDogb2wuTWFwKXtcclxuICAgICAgICBzdXBlci5pbml0KHRoZU1hcCk7XHJcblxyXG4gICAgICAgIHRoaXMubWFwLmdldFZpZXcoKS5vbihbJ2NoYW5nZTpjZW50ZXInLCAnY2hhbmdlOnJlc29sdXRpb24nXSwgKGUpID0+e1xyXG5cclxuICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHRyaWdnZXIgdGhlIGxheWVyIHVwZGF0ZXNcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9hcnJMYXllci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyTHlyTG9hZCh0aGlzLl9hcnJMYXllcltpXSwgaSwgZS50eXBlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gdHJpZ2dlciB0aGUgbWFwIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX21hcE1vdmVDYWxsYmFja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlck1vdmVDYWxsYmFjayhpLCBlLnR5cGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgX3VwZGF0ZU1hcEV4dGVudCgpIHtcclxuICAgICAgICBsZXQgdGhlVmlldyA9IHRoaXMubWFwLmdldFZpZXcoKTtcclxuICAgICAgICB0aGlzLl96b29tTGV2ZWwgPSB0aGVWaWV3LmdldFpvb20oKTtcclxuXHJcbiAgICAgICAgbGV0IGV4dGVudEFycmF5ID0gdGhlVmlldy5jYWxjdWxhdGVFeHRlbnQodGhpcy5tYXAuZ2V0U2l6ZSgpKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWFwRXh0ZW50ID0ge1xyXG4gICAgICAgICAgICBtaW5YOiBleHRlbnRBcnJheVswXSxcclxuICAgICAgICAgICAgbWluWTogZXh0ZW50QXJyYXlbMV0sXHJcbiAgICAgICAgICAgIG1heFg6IGV4dGVudEFycmF5WzJdLFxyXG4gICAgICAgICAgICBtYXhZOiBleHRlbnRBcnJheVszXVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiByZXR1cm4gdGhlIG1hcCBleHRlbnRcclxuICAgICAqL1xyXG4gICAgZ2V0IG1hcEV4dGVudCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX21hcEV4dGVudCkge1xyXG4gICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXBFeHRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUcmlnZ2VyIHRoZSBsYXllciBsb2FkXHJcbiAgICAgKiBAcGFyYW0gbHlyIHRoZSBsYXllciBiZWluZyBhY3RlZCBvblxyXG4gICAgICogQHBhcmFtIGluZGV4IGluZGV4IG9mIHRoZSBsYXllclxyXG4gICAgICogQHBhcmFtIGV2ZW50VHlwZSB0aGUgZXZlbnQgdHJpZ2dlcmluZyB0aGUgbG9hZCwgYXMgJ2NoYW5nZTpjZW50ZXInIG9yICdjaGFuZ2U6cmVzb2x1dGlvbidcclxuICAgICAqL1xyXG4gICAgdHJpZ2dlckx5ckxvYWQobHlyOiBMYXllckJhc2VWZWN0b3IsIGluZGV4PzogbnVtYmVyLCBldmVudFR5cGU/OiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgaWYgKGNoZWNrRGVmaW5lZC51bmRlZmluZWRPck51bGwobHlyKSAmJiBjaGVja0RlZmluZWQudW5kZWZpbmVkT3JOdWxsKGluZGV4KSkge1xyXG4gICAgICAgICAgICB0aHJvdyAnbmVlZCB0byBkZWZpbmUgbHlyIG9yIGluZGV4JztcclxuICAgICAgICB9IGVsc2UgaWYgKGNoZWNrRGVmaW5lZC5kZWZpbmVkQW5kTm90TnVsbChseXIpICYmIGNoZWNrRGVmaW5lZC51bmRlZmluZWRPck51bGwoaW5kZXgpKSB7XHJcbiAgICAgICAgICAgIGluZGV4ID0gdGhpcy5fYXJyTGF5ZXIuaW5kZXhPZihseXIpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY2hlY2tEZWZpbmVkLnVuZGVmaW5lZE9yTnVsbChseXIpICYmIGNoZWNrRGVmaW5lZC5kZWZpbmVkQW5kTm90TnVsbChpbmRleCkpIHtcclxuICAgICAgICAgICAgbHlyID0gdGhpcy5fYXJyTGF5ZXJbaW5kZXhdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gY2xlYXIgdGhlIHRpbWVvdXRcclxuICAgICAgICBpZiAodGhpcy5fYXJyTHlyVGltZW91dFtpbmRleF0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fYXJyTHlyVGltZW91dFtpbmRleF0pO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJUaW1lb3V0W2luZGV4XSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBhYm9ydCBpZiBuZWNlc3NhcnkgYW5kIGNsZWFyIHRoZSByZXF1ZXN0XHJcbiAgICAgICAgaWYgKHRoaXMuX2Fyckx5clJlcXVlc3RbaW5kZXhdICE9IG51bGwgJiYgdGhpcy5fYXJyTHlyUmVxdWVzdFtpbmRleF0gIT0gNCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0W2luZGV4XS5hYm9ydCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0W2luZGV4XSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBkdW1teSBjYWxsYmFjayB1c2VkIGlmIGJlZm9yZSBsb2FkIHJldHVybnMgZmFsc2VcclxuICAgICAgICBsZXQgY2FsbGJhY2tGdW5jID0gZnVuY3Rpb24gKCkge307XHJcblxyXG4gICAgICAgIGlmIChseXIubWFwTW92ZUJlZm9yZSh0aGlzLl96b29tTGV2ZWwsIGV2ZW50VHlwZSkpIHtcclxuICAgICAgICAgICAgbHlyLm1hcE1vdmVNYWtlR2V0UGFyYW1zKHRoaXMuX21hcEV4dGVudCwgdGhpcy5fem9vbUxldmVsKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBfX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICAgICAgY2FsbGJhY2tGdW5jID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gaW5uZXJGdW5jdGlvbih0aGVMYXllciwgdGhlSW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgX2lubmVyVGhpcyA9IHRoaXM7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXJyTHlyUmVxdWVzdFt0aGVJbmRleF0gPSAkLmdldChcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlTGF5ZXIudXJsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5tYXBNb3ZlUGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBAdHlwZSB7TGF5ZXJCYXNlVmVjdG9yfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5tYXBNb3ZlQ2FsbGJhY2soZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5sb2FkQ2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgJ2pzb24nKS5mYWlsKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoanFYSFIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqcVhIUi5zdGF0dXNUZXh0ICE9ICdhYm9ydCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZmFpbGVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhlTGF5ZXIudXJsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGVMYXllci5tYXBNb3ZlUGFyYW1zKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSkuYWx3YXlzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5uZXJUaGlzLl9hcnJMeXJUaW1lb3V0W3RoZUluZGV4XSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5uZXJUaGlzLl9hcnJMeXJSZXF1ZXN0W3RoZUluZGV4XSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaW5uZXJGdW5jdGlvbi5jYWxsKF9fdGhpcywgbHlyLCBpbmRleCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbHlyLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2Fyckx5clRpbWVvdXRbaW5kZXhdID0gc2V0VGltZW91dChjYWxsYmFja0Z1bmMsIGx5ci5vbkRlbWFuZERlbGF5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyaWdnZXIgdGhlIG1hcCBtb3ZlIGNhbGwgYmFjayBhdCB0aGUgZ2l2ZW4gaW5kZXhcclxuICAgICAqIEBwYXJhbSBpbmQgLSB0aGUgaW5kZXggb2YgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gZXZlbnRUeXBlPXVuZGVmaW5lZCB0aGUgZXZlbnQgdHJpZ2dlcmluZyB0aGUgbG9hZCBhcyAnY2hhbmdlOmNlbnRlcicgb3IgJ2NoYW5nZTpyZXNvbHV0aW9uJ1xyXG4gICAgICogQHBhcmFtIGZ1bmN0aW9uSWQ9dW5kZWZpbmVkIHRoZSBmdW5jdGlvbiBpZCB1c2VkIHRvIHJlZmVyZW5jZSB0aGUgYWRkZWQgY2FsbGJhY2sgZnVuY3Rpb25cclxuICAgICAqL1xyXG4gICAgdHJpZ2dlck1vdmVDYWxsYmFjayhpbmQ6IG51bWJlciwgZXZlbnRUeXBlPzogc3RyaW5nLCBmdW5jdGlvbklkPzogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgaW5kID09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBmdW5jdGlvbklkID09ICd1bmRlZmluZWQnKXtcclxuICAgICAgICAgICAgdGhyb3cgJ2VpdGhlciB0aGUgZnVuY3Rpb24gaW5kZXggb3IgdGhlIGlkIG11c3QgYmUgZGVmaW5lZCc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIGluZCAhPT0gJ251bWJlcicpe1xyXG4gICAgICAgICAgICBpbmQgPSB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzLmluZGV4T2YodGhpcy5fbWFwTW92ZUNhbGxiYWNrc0xvb2t1cFtmdW5jdGlvbklkXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaW5kIDwgMCl7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdmdW5jdGlvbiBub3QgZm91bmQnKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGNsZWFyIHRoZSB0aW1lb3V0XHJcbiAgICAgICAgaWYgKHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXRbaW5kXSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0W2luZF0pO1xyXG4gICAgICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0W2luZF0gPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGN0eCA9IHRoaXMuX21hcE1vdmVDYWxsYmFja0NvbnRleHRbaW5kXTtcclxuICAgICAgICBsZXQgdGhlRnVuYyA9IHRoaXMuX21hcE1vdmVDYWxsYmFja3NbaW5kXTtcclxuXHJcbiAgICAgICAgbGV0IF9fdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIGxldCBmID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAoY3R4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGVGdW5jLmNhbGwoY3R4LCBfX3RoaXMuX21hcEV4dGVudCwgX190aGlzLl96b29tTGV2ZWwsIGV2ZW50VHlwZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGVGdW5jKF9fdGhpcy5fbWFwRXh0ZW50LCBfX3RoaXMuX3pvb21MZXZlbCwgZXZlbnRUeXBlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXRbaW5kXSA9IHNldFRpbWVvdXQoZiwgdGhpcy5fbWFwTW92ZUNhbGxiYWNrRGVsYXlzW2luZF0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIGEgbGF5ZXIgdG8gdGhlIGludGVyYWN0aW9uXHJcbiAgICAgKiBAcGFyYW0gIGx5ciAtIGxheWVyIHRvIGFkZFxyXG4gICAgICogQHBhcmFtIHRyaWdnZXJPbkFkZCAtIGlmIHRoZSBsYXllciBzaG91bGQgYmUgbG9hZGVkIG9uIGFkZFxyXG4gICAgICovXHJcbiAgICBhZGRWZWN0b3JMYXllcihseXI6IExheWVyQmFzZVZlY3RvciwgdHJpZ2dlck9uQWRkOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgICAgIGlmICh0aGlzLl9hcnJMYXllci5pbmRleE9mKGx5cikgPiAtMSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnYWxyZWFkeSBhZGRlZCAnICsgbHlyLm5hbWUgKyAnIHRvIG1hcCBtb3ZlJyk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2NoZWNrSW5pdCgpO1xyXG5cclxuICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0LnB1c2gobnVsbCk7XHJcbiAgICAgICAgdGhpcy5fYXJyTHlyVGltZW91dC5wdXNoKG51bGwpO1xyXG4gICAgICAgIHRoaXMuX2FyckxheWVyLnB1c2gobHlyKTtcclxuICAgICAgICB0aGlzLl9sb29rdXBMYXllcltseXIuaWRdID0gbHlyO1xyXG5cclxuICAgICAgICB0cmlnZ2VyT25BZGQgPSB0eXBlb2YgdHJpZ2dlck9uQWRkID09ICdib29sZWFuJyA/IHRyaWdnZXJPbkFkZCA6IHRydWU7XHJcblxyXG4gICAgICAgIGlmICh0cmlnZ2VyT25BZGQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX21hcEV4dGVudCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJMeXJMb2FkKGx5ciwgdGhpcy5fYXJyTGF5ZXIubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIGFkZCBhIGNhbGxiYWNrIHRvIHRoZSBtYXAgbW92ZSBldmVudFxyXG4gICAgICogQHBhcmFtIGZ1bmMgLSBjYWxsYmFjayBmdW5jdGlvblxyXG4gICAgICogQHBhcmFtIGNvbnRleHQgLSB0aGUgY29udGV4dCB0byB1c2UgZm9yIHRoaXMgZnVuY3Rpb25cclxuICAgICAqIEBwYXJhbSBkZWxheT01MCB0aGUgZGVsYXkgYmVmb3JlIGNhbGwgbG9hZFxyXG4gICAgICogQHBhcmFtIHRyaWdnZXJPbkFkZCBpZiB0aGUgbGF5ZXIgc2hvdWxkIGJlIGxvYWRlZCBvbiBhZGQgdG8gbWFwTW92ZVxyXG4gICAgICogQHBhcmFtIGZ1bmN0aW9uSWQgb3B0aW9uYWwgaWQgdG8gcmVmZXJlbmNlIHRoZSBmdW5jdGlvbiBsYXRlciBmb3Igb3V0c2lkZSB0cmlnZ2VyaW5nXHJcbiAgICAgKi9cclxuICAgIGFkZENhbGxiYWNrKGZ1bmM6IG1hcE1vdmVDYWxsYmFja0Z1bmN0aW9uLCBjb250ZXh0PzogYW55LCBkZWxheT86IG51bWJlciwgdHJpZ2dlck9uQWRkPyA6IGJvb2xlYW4sIGZ1bmN0aW9uSWQ/OiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX21hcE1vdmVDYWxsYmFja3MuaW5kZXhPZihmdW5jKSA+IC0xKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCd0aGlzIGZ1bmN0aW9uIGFscmVhZHkgYWRkZWQgdG8gbWFwIG1vdmUnKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICBpZiAoIWZ1bmN0aW9uSWQpe1xyXG4gICAgICAgICAgICBmdW5jdGlvbklkID0gbWFrZUd1aWQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja3MucHVzaChmdW5jKTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzTG9va3VwW2Z1bmN0aW9uSWRdID0gZnVuY3Rpb25JZDtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tEZWxheXMucHVzaCh0eXBlb2YgZGVsYXkgPT0gJ251bWJlcicgPyBkZWxheSA6IDUwKTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tDb250ZXh0LnB1c2goY2hlY2tEZWZpbmVkLmRlZmluZWRBbmROb3ROdWxsKGNvbnRleHQpID8gY29udGV4dCA6IG51bGwpO1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXQucHVzaChudWxsKTtcclxuXHJcbiAgICAgICAgdHJpZ2dlck9uQWRkID0gdHlwZW9mIHRyaWdnZXJPbkFkZCA9PSAnYm9vbGVhbicgPyB0cmlnZ2VyT25BZGQgOiB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodHJpZ2dlck9uQWRkKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9tYXBFeHRlbnQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTWFwRXh0ZW50KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy50cmlnZ2VyTW92ZUNhbGxiYWNrKHRoaXMuX21hcE1vdmVDYWxsYmFja3MubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5ubS5NYXBNb3ZlQ2xzID0gTWFwTW92ZUNscztcclxuZXhwb3J0IGRlZmF1bHQgTWFwTW92ZUNscztcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapMoveCls.ts\n// module id = 11\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar mapInteractionBase_1 = require(\"./mapInteractionBase\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('olHelpers');\r\nvar FeatureLayerProperties = (function () {\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 function FeatureLayerProperties(feature, layer, layerIndex, selectionLayer, esriLayerName) {\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 Object.defineProperty(FeatureLayerProperties.prototype, \"layerName\", {\r\n get: function () {\r\n if (typeof this.esriLayerName == 'string') {\r\n return this.esriLayerName;\r\n }\r\n else {\r\n return this.layer.name;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return FeatureLayerProperties;\r\n}());\r\nexports.FeatureLayerProperties = FeatureLayerProperties;\r\n/**\r\n * map popup class\r\n * @augments MapInteractionBase\r\n */\r\nvar MapPopupCls = (function (_super) {\r\n __extends(MapPopupCls, _super);\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 * map popup constructor\r\n */\r\n function MapPopupCls() {\r\n var _this = _super.call(this, 'map popup') || this;\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 //let a = function($jqueryContent){console.log($jqueryContent)};\r\n //this._popupChangedLookup = {'a': a};\r\n _this._popupChangedFunctions = [];\r\n _this._esriMapServiceLayers = [];\r\n _this._popupOpen = false;\r\n _this._popupCoordinate = null;\r\n _this._passThroughLayerFeatureArray = [];\r\n _this._currentPopupIndex = -1;\r\n _this._popupContentLength = 0;\r\n return _this;\r\n }\r\n /**\r\n * map popup initialization\r\n * @param {ol.Map} theMap - the ol map\r\n */\r\n MapPopupCls.prototype.init = function (theMap) {\r\n var _this = this;\r\n _super.prototype.init.call(this, theMap);\r\n var $map;\r\n var target = this.map.getTarget();\r\n if (typeof target == 'string') {\r\n $map = $('#' + target);\r\n }\r\n else {\r\n $map = $(target);\r\n }\r\n $map.append('<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 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 var _ease = function (n) {\r\n return ol.easing.inAndOut(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 this._map.addOverlay(this._popupOverlay);\r\n this._$popupCloser.click(function (evt) {\r\n _this.closePopup();\r\n });\r\n // display popup on click\r\n this._map.on('singleclick', function (evt) {\r\n _this.closePopup();\r\n _this._popupCoordinate = evt['coordinate'];\r\n // esri map service layers\r\n if (_this._esriMapServiceLayers.length > 0) {\r\n var 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()).join(','),\r\n imageDisplay: _this._map.getSize().join(',') + ',96',\r\n returnGeometry: true,\r\n tolerance: 15,\r\n f: 'pjson'\r\n };\r\n for (var _i = 0, _a = _this._esriMapServiceLayers; _i < _a.length; _i++) {\r\n var l = _a[_i];\r\n l.getPopupInfo(queryParams);\r\n }\r\n }\r\n var layerFeatureObjectArray = _this._featuresAtPixel(evt['pixel']);\r\n _this._passThroughLayerFeatureArray = [];\r\n _this._currentPopupIndex = -1;\r\n for (var i = 0; i < layerFeatureObjectArray.length; i++) {\r\n var featObj = layerFeatureObjectArray[i];\r\n var props = featObj.feature.getProperties();\r\n var popupContentResponse = _this._arrPopupContentFunction[featObj.layerIndex](props, _this._$popupContent);\r\n //skip if return was false\r\n if (popupContentResponse === false) {\r\n //continue;\r\n }\r\n else if (typeof popupContentResponse == 'string') {\r\n featObj.popupContent = popupContentResponse;\r\n _this._passThroughLayerFeatureArray.push(featObj);\r\n }\r\n else {\r\n featObj.selectionLayer.getSource().addFeature(featObj.feature);\r\n }\r\n }\r\n _this._popupContentLength = _this._passThroughLayerFeatureArray.length;\r\n _this._currentPopupIndex = -1;\r\n var 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 popupHtml += '</div>';\r\n _this._$popupContent.html(popupHtml);\r\n _this._$popupContent.find('.previous-popup').click(function () {\r\n if (_this._popupContentLength == 1) {\r\n return;\r\n }\r\n if (_this._currentPopupIndex == 0) {\r\n _this._currentPopupIndex = _this._popupContentLength - 1;\r\n }\r\n else {\r\n _this._currentPopupIndex--;\r\n }\r\n _this._triggerFeatSelect();\r\n });\r\n var nextPopup = _this._$popupContent.find('.next-popup');\r\n nextPopup.click(function () {\r\n if (_this._popupContentLength == 1 && _this._currentPopupIndex > -1) {\r\n return;\r\n }\r\n if (_this._currentPopupIndex == _this._popupContentLength - 1) {\r\n _this._currentPopupIndex = 0;\r\n }\r\n else {\r\n _this._currentPopupIndex++;\r\n }\r\n _this._triggerFeatSelect();\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 //change mouse cursor when over marker\r\n this._map.on('pointermove', function (evt) {\r\n if (evt['dragging']) {\r\n return;\r\n }\r\n var pixel = _this.map.getEventPixel(evt['originalEvent']);\r\n var hit = _this.map.hasFeatureAtPixel(pixel, function (lyrCandidate) {\r\n for (var _i = 0, _a = _this._arrPopupOlLayers; _i < _a.length; _i++) {\r\n var olLayer = _a[_i];\r\n if (lyrCandidate == olLayer) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n });\r\n var mapElement = _this.map.getTargetElement();\r\n mapElement.style.cursor = hit ? 'pointer' : '';\r\n });\r\n return true;\r\n };\r\n /**\r\n * helper to select features\r\n * @private\r\n */\r\n MapPopupCls.prototype._triggerFeatSelect = function () {\r\n var $currentPopupItemNumber = this._$popupContent.find('.current-popup-item-number');\r\n var $innerPopup = this._$popupContent.find('.ol-popup-inner');\r\n var $layerNameSpan = this._$popupContent.find('.current-popup-layer-name');\r\n this.clearSelection();\r\n var 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 (var _i = 0, _a = this._popupChangedFunctions; _i < _a.length; _i++) {\r\n var f = _a[_i];\r\n f(this._$popupContent);\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 MapPopupCls.prototype.addMapServicePopupContent = function (feature, lyr, popupContent, esriName) {\r\n var featLayerObject = new FeatureLayerProperties(feature, lyr, this._popupContentLength, this._selectionLayerLookup[lyr.id], esriName);\r\n featLayerObject.popupContent = popupContent;\r\n this._passThroughLayerFeatureArray.push(featLayerObject);\r\n this._popupContentLength++;\r\n $('.popup-content-length').html(this._popupContentLength.toFixed());\r\n if (!this._popupOpen) {\r\n this._$popupContent.find('.next-popup').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 *\r\n * @param pixel - the ol pixel\r\n * @returns feature layer properties\r\n * @private\r\n */\r\n MapPopupCls.prototype._featuresAtPixel = function (pixel) {\r\n var _this = this;\r\n var layerFeatureObjectArray = [];\r\n this.map.forEachFeatureAtPixel(pixel, function (feature, layer) {\r\n var lyrIndex = _this._arrPopupOlLayers.indexOf(layer);\r\n if (lyrIndex > -1) {\r\n layerFeatureObjectArray.push(new FeatureLayerProperties(feature, _this._arrPopupLayers[lyrIndex], lyrIndex, _this._selectionLayers[lyrIndex]));\r\n }\r\n });\r\n return layerFeatureObjectArray;\r\n };\r\n MapPopupCls.prototype.closePopup = function () {\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 return false;\r\n };\r\n ;\r\n /**\r\n *\r\n * @param chgFunction - popup change function\r\n */\r\n MapPopupCls.prototype.addPopupChangedFunction = function (chgFunction) {\r\n this._popupChangedFunctions.push(chgFunction);\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 MapPopupCls.prototype._addPopupLayer = function (lyr, selectionStyle) {\r\n this._checkInit();\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 var theStyle;\r\n if (selectionStyle.olStyle) {\r\n theStyle = selectionStyle.olStyle;\r\n }\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 var selectionLayer = new ol.layer.Vector({\r\n source: new ol.source.Vector(),\r\n style: theStyle\r\n });\r\n selectionLayer.setZIndex(100);\r\n this._selectionLayers.push(selectionLayer);\r\n this._selectionLayerLookup[lyr.id] = selectionLayer;\r\n this.map.addLayer(selectionLayer);\r\n return selectionLayer;\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 MapPopupCls.prototype.addVectorPopup = function (lyr, popupContentFunction, selectionStyle) {\r\n var 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 return selectionLayer;\r\n };\r\n ;\r\n /**\r\n *\r\n * @param {LayerBase} lyr - layer\r\n */\r\n MapPopupCls.prototype.removeVectorPopup = function (lyr) {\r\n var idx = this._arrPopupLayerIds.indexOf(lyr.id);\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 * @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 MapPopupCls.prototype.addMapServicePopup = function (lyr, selectionStyle) {\r\n var selectionLayer = this._addPopupLayer(lyr, selectionStyle);\r\n this._esriMapServiceLayers.push(lyr);\r\n return selectionLayer;\r\n };\r\n MapPopupCls.prototype.clearSelection = function () {\r\n this._checkInit();\r\n for (var i = 0; i < this._selectionLayers.length; i++) {\r\n this._selectionLayers[i].getSource().clear();\r\n }\r\n for (var _i = 0, _a = this._mapClickFunctions; _i < _a.length; _i++) {\r\n var f = _a[_i];\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 MapPopupCls.prototype.addMapClickFunction = function (func) {\r\n this._mapClickFunctions.push(func);\r\n };\r\n return MapPopupCls;\r\n}(mapInteractionBase_1.default));\r\nexports.MapPopupCls = MapPopupCls;\r\nnm.MapPopupCls = MapPopupCls;\r\nexports.default = MapPopupCls;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwUG9wdXBDbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBQb3B1cENscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7Ozs7Ozs7Ozs7OztBQUVILDJEQUFzRDtBQUV0RCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBR2pDLDBCQUE2QjtBQUU3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBMEJoQztJQVNJOzs7Ozs7O09BT0c7SUFDSCxnQ0FBWSxPQUFtQixFQUFFLEtBQXlDLEVBQUUsVUFBa0IsRUFBRSxjQUErQixFQUFFLGFBQXNCO1FBQ25KLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxhQUFhLElBQUksUUFBUSxHQUFHLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDdEYsQ0FBQztJQUVELHNCQUFJLDZDQUFTO2FBQWI7WUFDSSxFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDOUIsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUMzQixDQUFDO1FBQ0wsQ0FBQzs7O09BQUE7SUFDTCw2QkFBQztBQUFELENBQUMsQUFqQ0QsSUFpQ0M7QUFqQ1ksd0RBQXNCO0FBbUNuQzs7O0dBR0c7QUFDSDtJQUFpQywrQkFBa0I7SUFxQi9DOzs7OztPQUtHO0lBR0g7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QWtCLEdBeWNsRDtBQXpjWSxrQ0FBVztBQTBjeEIsRUFBRSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDN0Isa0JBQWUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMy8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBNYXBJbnRlcmFjdGlvbkJhc2UgZnJvbSAnLi9tYXBJbnRlcmFjdGlvbkJhc2UnO1xyXG5pbXBvcnQgcHJvcGVydGllc1pvb21TdHlsZSBmcm9tICcuLi9vbEhlbHBlcnMvcHJvcGVydGllc1pvb21TdHlsZSc7XHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQge0xheWVyQmFzZVZlY3Rvcn0gZnJvbSBcIi4uL2xheWVycy9MYXllckJhc2VWZWN0b3JcIjtcclxuaW1wb3J0IExheWVyRXNyaU1hcFNlcnZlciBmcm9tIFwiLi4vbGF5ZXJzL0xheWVyRXNyaU1hcFNlcnZlclwiO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5cclxuY29uc3Qgbm0gPSBwcm92aWRlKCdvbEhlbHBlcnMnKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgcG9wdXBDaGFuZ2VkRnVuY3Rpb24ge1xyXG4gICAgKCRwb3BDb250ZW50OiBKUXVlcnkpOiBhbnk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBwb3B1cENhbGxiYWNrIHtcclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRoZSBwb3B1cFxyXG4gICAgICogQHBhcmFtIGZlYXR1cmVQcm9wZXJ0aWVzXHJcbiAgICAgKiBAcGFyYW0ganFSZWZcclxuICAgICAqL1xyXG4gICAgKGZlYXR1cmVQcm9wZXJ0aWVzOiBPYmplY3QsIGpxUmVmPzogSlF1ZXJ5KTogc3RyaW5nIHwgYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIG1hcEV2ZW50IHtcclxuICAgIGNvb3JkaW5hdGU6IG9sLkNvb3JkaW5hdGU7XHJcbiAgICBwaXhlbDogb2wuUGl4ZWw7XHJcbiAgICBkcmFnZ2luZzogYm9vbGVhbnxhbnk7XHJcbiAgICBvcmlnaW5hbEV2ZW50OiBFdmVudDtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlTGF5ZXJQcm9wZXJ0aWVzIHtcclxuXHJcbiAgICBmZWF0dXJlOiBvbC5GZWF0dXJlO1xyXG4gICAgbGF5ZXI6IExheWVyQmFzZVZlY3RvcnxMYXllckVzcmlNYXBTZXJ2ZXI7XHJcbiAgICBsYXllckluZGV4OiBudW1iZXI7XHJcbiAgICBzZWxlY3Rpb25MYXllcjogb2wubGF5ZXIuVmVjdG9yO1xyXG4gICAgcG9wdXBDb250ZW50OiBzdHJpbmc7XHJcbiAgICBlc3JpTGF5ZXJOYW1lOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGZlYXR1cmUgdGhlIGZlYXR1cmVcclxuICAgICAqIEBwYXJhbSBsYXllciAtIHRoZSBsYXllciBpbiB0aGUgcG9wdXBcclxuICAgICAqIEBwYXJhbSBsYXllckluZGV4IC0gaW5kZXggb2YgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gc2VsZWN0aW9uTGF5ZXIgLSB0aGUgb2wgc2VsZWN0aW9uIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gW2VzcmlMYXllck5hbWU9dW5kZWZpbmVkXSAtIGVzcmkgbGF5ZXIgbmFtZVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihmZWF0dXJlOiBvbC5GZWF0dXJlLCBsYXllcjogTGF5ZXJCYXNlVmVjdG9yfExheWVyRXNyaU1hcFNlcnZlciwgbGF5ZXJJbmRleDogbnVtYmVyLCBzZWxlY3Rpb25MYXllcjogb2wubGF5ZXIuVmVjdG9yLCBlc3JpTGF5ZXJOYW1lPzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5mZWF0dXJlID0gZmVhdHVyZTtcclxuICAgICAgICB0aGlzLmxheWVyID0gbGF5ZXI7XHJcbiAgICAgICAgdGhpcy5sYXllckluZGV4ID0gbGF5ZXJJbmRleDtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbkxheWVyID0gc2VsZWN0aW9uTGF5ZXI7XHJcbiAgICAgICAgdGhpcy5wb3B1cENvbnRlbnQgPSAnJztcclxuICAgICAgICB0aGlzLmVzcmlMYXllck5hbWUgPSB0eXBlb2YgZXNyaUxheWVyTmFtZSA9PSAnc3RyaW5nJyA/IGVzcmlMYXllck5hbWUgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGxheWVyTmFtZSgpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXNyaUxheWVyTmFtZSA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lc3JpTGF5ZXJOYW1lO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxheWVyLm5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogbWFwIHBvcHVwIGNsYXNzXHJcbiAqIEBhdWdtZW50cyBNYXBJbnRlcmFjdGlvbkJhc2VcclxuICovXHJcbmV4cG9ydCBjbGFzcyBNYXBQb3B1cENscyBleHRlbmRzIE1hcEludGVyYWN0aW9uQmFzZSB7XHJcbiAgICBwcml2YXRlIF9wb3B1cE9wZW46IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIF9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5OiBBcnJheTxGZWF0dXJlTGF5ZXJQcm9wZXJ0aWVzPjtcclxuICAgIHByaXZhdGUgX2N1cnJlbnRQb3B1cEluZGV4OiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9wb3B1cENvbnRlbnRMZW5ndGg6IG51bWJlcjtcclxuICAgIHByaXZhdGUgX2VzcmlNYXBTZXJ2aWNlTGF5ZXJzOiBBcnJheTxMYXllckVzcmlNYXBTZXJ2ZXI+O1xyXG4gICAgcHJpdmF0ZSBfJHBvcHVwQ2xvc2VyOiBKUXVlcnk7XHJcbiAgICBwcml2YXRlIF8kcG9wdXBDb250ZW50OiBKUXVlcnk7XHJcbiAgICBwcml2YXRlIF8kcG9wdXBDb250YWluZXI6IEpRdWVyeTtcclxuICAgIHByaXZhdGUgX3BvcHVwT3ZlcmxheTogb2wuT3ZlcmxheTtcclxuICAgIHByaXZhdGUgX2FyclBvcHVwTGF5ZXJzOiBBcnJheTxMYXllckJhc2VWZWN0b3I+O1xyXG4gICAgcHJpdmF0ZSBfcG9wdXBDb29yZGluYXRlOiBvbC5Db29yZGluYXRlO1xyXG4gICAgcHJpdmF0ZSBfcG9wdXBDaGFuZ2VkRnVuY3Rpb25zOiBBcnJheTxwb3B1cENoYW5nZWRGdW5jdGlvbj47XHJcbiAgICBwcml2YXRlIF9tYXBDbGlja0Z1bmN0aW9uczogQXJyYXk8RnVuY3Rpb24+O1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uTGF5ZXJMb29rdXA6IE9iamVjdDtcclxuICAgIHByaXZhdGUgX2FyclBvcHVwTGF5ZXJJZHM6IEFycmF5PHN0cmluZz47XHJcbiAgICBwcml2YXRlIF9hcnJQb3B1cExheWVyTmFtZXM6IEFycmF5PHN0cmluZz47XHJcbiAgICBwcml2YXRlIF9hcnJQb3B1cE9sTGF5ZXJzOiBBcnJheTxvbC5sYXllci5WZWN0b3I+O1xyXG4gICAgcHJpdmF0ZSBfYXJyUG9wdXBDb250ZW50RnVuY3Rpb246IEFycmF5PHBvcHVwQ2FsbGJhY2s+O1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uTGF5ZXJzOiBBcnJheTxvbC5sYXllci5WZWN0b3I+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5pdGlvbiBmb3Igb3BlbmxheWVycyBzdHlsZSBmdW5jdGlvblxyXG4gICAgICogQGNhbGxiYWNrIG9sU3R5bGVGdW5jdGlvblxyXG4gICAgICogJnBhcmFtIGZlYXR1cmUgdGhlIG9wZW5sYXllcnMgdmVjdG9yIGZlYXR1cmVcclxuICAgICAqICRwYXJhbVxyXG4gICAgICovXHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIHBvcHVwIGNvbnN0cnVjdG9yXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCdtYXAgcG9wdXAnKTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cExheWVySWRzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcnMgPSBbXTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb24gPSBbXTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250YWluZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ29udGVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDbG9zZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVycyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVyTG9va3VwID0ge307XHJcbiAgICAgICAgdGhpcy5fbWFwQ2xpY2tGdW5jdGlvbnMgPSBbXTtcclxuXHJcbiAgICAgICAgLy9sZXQgYSA9IGZ1bmN0aW9uKCRqcXVlcnlDb250ZW50KXtjb25zb2xlLmxvZygkanF1ZXJ5Q29udGVudCl9O1xyXG4gICAgICAgIC8vdGhpcy5fcG9wdXBDaGFuZ2VkTG9va3VwID0geydhJzogYX07XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDaGFuZ2VkRnVuY3Rpb25zID0gW107XHJcbiAgICAgICAgdGhpcy5fZXNyaU1hcFNlcnZpY2VMYXllcnMgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5fcG9wdXBPcGVuID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDb29yZGluYXRlID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5fcGFzc1Rocm91Z2hMYXllckZlYXR1cmVBcnJheSA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IC0xO1xyXG4gICAgICAgIHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCA9IDA7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIHBvcHVwIGluaXRpYWxpemF0aW9uXHJcbiAgICAgKiBAcGFyYW0ge29sLk1hcH0gdGhlTWFwIC0gdGhlIG9sIG1hcFxyXG4gICAgICovXHJcbiAgICBpbml0KHRoZU1hcDogb2wuTWFwKSB7XHJcbiAgICAgICAgc3VwZXIuaW5pdCh0aGVNYXApO1xyXG5cclxuICAgICAgICBsZXQgJG1hcDtcclxuICAgICAgICBsZXQgdGFyZ2V0ID0gdGhpcy5tYXAuZ2V0VGFyZ2V0KCk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgICRtYXAgPSAkKCcjJyArIHRhcmdldCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAkbWFwID0gJCh0YXJnZXQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJG1hcC5hcHBlbmQoXHJcbiAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwib2wtcG9wdXBcIj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwib2wtcG9wdXAtY2xvc2VyXCI+WDwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+PC9kaXY+JyArXHJcbiAgICAgICAgICAgICc8L2Rpdj4nXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ29udGFpbmVyID0gJG1hcC5maW5kKCcub2wtcG9wdXAnKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250ZW50ID0gJG1hcC5maW5kKCcucG9wdXAtY29udGVudCcpO1xyXG4gICAgICAgIHRoaXMuXyRwb3B1cENsb3NlciA9ICRtYXAuZmluZCgnLm9sLXBvcHVwLWNsb3NlcicpO1xyXG5cclxuICAgICAgICBsZXQgX2Vhc2UgPSAobjogbnVtYmVyKTogbnVtYmVyID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG9sLmVhc2luZy5pbkFuZE91dChuKTtcclxuICAgICAgICB9O1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5ID0gbmV3IG9sLk92ZXJsYXkoe1xyXG4gICAgICAgICAgICBlbGVtZW50OiB0aGlzLl8kcG9wdXBDb250YWluZXJbMF0sXHJcbiAgICAgICAgICAgIGF1dG9QYW46IHRydWUsXHJcbiAgICAgICAgICAgIGF1dG9QYW5BbmltYXRpb246IHtcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyNTAsXHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IHRoZU1hcC5nZXRWaWV3KCkuZ2V0Q2VudGVyKCksXHJcbiAgICAgICAgICAgICAgICBlYXNpbmc6IF9lYXNlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWFwLmFkZE92ZXJsYXkodGhpcy5fcG9wdXBPdmVybGF5KTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ2xvc2VyLmNsaWNrKChldnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIGRpc3BsYXkgcG9wdXAgb24gY2xpY2tcclxuICAgICAgICB0aGlzLl9tYXAub24oJ3NpbmdsZWNsaWNrJywgKGV2dCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwQ29vcmRpbmF0ZSA9IGV2dFsnY29vcmRpbmF0ZSddO1xyXG5cclxuICAgICAgICAgICAgLy8gZXNyaSBtYXAgc2VydmljZSBsYXllcnNcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2VzcmlNYXBTZXJ2aWNlTGF5ZXJzLmxlbmd0aCA+IDApIHtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgcXVlcnlQYXJhbXMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZ2VvbWV0cnk6IGV2dFsnY29vcmRpbmF0ZSddLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgICAgICBnZW9tZXRyeVR5cGU6ICdlc3JpR2VvbWV0cnlQb2ludCcsXHJcbiAgICAgICAgICAgICAgICAgICAgbGF5ZXJzOiAnYWxsJyxcclxuICAgICAgICAgICAgICAgICAgICBzcjogdGhpcy5fbWFwLmdldFZpZXcoKS5nZXRQcm9qZWN0aW9uKCkuZ2V0Q29kZSgpLnNwbGl0KCc6JylbMV0sXHJcbiAgICAgICAgICAgICAgICAgICAgbWFwRXh0ZW50OiAodGhpcy5fbWFwLmdldFZpZXcoKS5jYWxjdWxhdGVFeHRlbnQodGhpcy5fbWFwLmdldFNpemUoKSkgYXMgbnVtYmVyW10pLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZURpc3BsYXk6ICh0aGlzLl9tYXAuZ2V0U2l6ZSgpIGFzIG51bWJlcltdKS5qb2luKCcsJykgKyAnLDk2JyxcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm5HZW9tZXRyeTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICB0b2xlcmFuY2U6IDE1LFxyXG4gICAgICAgICAgICAgICAgICAgIGY6ICdwanNvbidcclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgbCBvZiB0aGlzLl9lc3JpTWFwU2VydmljZUxheWVycykge1xyXG4gICAgICAgICAgICAgICAgICAgIGwuZ2V0UG9wdXBJbmZvKHF1ZXJ5UGFyYW1zKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IGxheWVyRmVhdHVyZU9iamVjdEFycmF5ID0gdGhpcy5fZmVhdHVyZXNBdFBpeGVsKGV2dFsncGl4ZWwnXSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID0gLTE7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxheWVyRmVhdHVyZU9iamVjdEFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZmVhdE9iaiA9IGxheWVyRmVhdHVyZU9iamVjdEFycmF5W2ldO1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCBwcm9wcyA9IGZlYXRPYmouZmVhdHVyZS5nZXRQcm9wZXJ0aWVzKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHBvcHVwQ29udGVudFJlc3BvbnNlID0gdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb25bZmVhdE9iai5sYXllckluZGV4XShwcm9wcywgdGhpcy5fJHBvcHVwQ29udGVudCk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy9za2lwIGlmIHJldHVybiB3YXMgZmFsc2VcclxuICAgICAgICAgICAgICAgIGlmIChwb3B1cENvbnRlbnRSZXNwb25zZSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL2NvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcG9wdXBDb250ZW50UmVzcG9uc2UgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICBmZWF0T2JqLnBvcHVwQ29udGVudCA9IHBvcHVwQ29udGVudFJlc3BvbnNlIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5LnB1c2goZmVhdE9iaik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGZlYXRPYmouc2VsZWN0aW9uTGF5ZXIuZ2V0U291cmNlKCkuYWRkRmVhdHVyZShmZWF0T2JqLmZlYXR1cmUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cENvbnRlbnRMZW5ndGggPSB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID0gLTE7XHJcblxyXG4gICAgICAgICAgICBsZXQgcG9wdXBIdG1sID0gJzxkaXYgY2xhc3M9XCJvbC1wb3B1cC1uYXZcIj4nO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzxzcGFuIGNsYXNzPVwicHJldmlvdXMtcG9wdXAgb2wtcG9wdXAtbmF2LWFycm93XCI+JiM5NjY0Ozwvc3Bhbj4nO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzxzcGFuIGNsYXNzPVwibmV4dC1wb3B1cCBvbC1wb3B1cC1uYXYtYXJyb3dcIj4mIzk2NTQ7PC9zcGFuPic7XHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSBgPHNwYW4gY2xhc3M9XCJjdXJyZW50LXBvcHVwLWl0ZW0tbnVtYmVyXCIgc3R5bGU9XCJmb250LXdlaWdodDogYm9sZDtcIj48L3NwYW4+YDtcclxuICAgICAgICAgICAgcG9wdXBIdG1sICs9IGA8c3Bhbj4mbmJzcDtvZiZuYnNwOzwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gYDxzcGFuIGNsYXNzPVwicG9wdXAtY29udGVudC1sZW5ndGhcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkO1wiPiR7dGhpcy5fcG9wdXBDb250ZW50TGVuZ3RofTwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gYDxzcGFuPiZuYnNwOyZuYnNwOy0mbmJzcDsmbmJzcDs8L3NwYW4+YDtcclxuICAgICAgICAgICAgcG9wdXBIdG1sICs9IGA8c3BhbiBjbGFzcz1cImN1cnJlbnQtcG9wdXAtbGF5ZXItbmFtZVwiPjwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzwvZGl2Pic7XHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSAnPGRpdiBjbGFzcz1cIm9sLXBvcHVwLWlubmVyXCI+JztcclxuXHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSAnPC9kaXY+JztcclxuXHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuaHRtbChwb3B1cEh0bWwpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fJHBvcHVwQ29udGVudC5maW5kKCcucHJldmlvdXMtcG9wdXAnKS5jbGljaygoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4LS07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyRmVhdFNlbGVjdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGxldCBuZXh0UG9wdXAgPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5uZXh0LXBvcHVwJyk7XHJcblxyXG4gICAgICAgICAgICBuZXh0UG9wdXAuY2xpY2soKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCA9PSAxICYmIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID09IHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IDA7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyRmVhdFNlbGVjdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgbmV4dFBvcHVwLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9wb3B1cE92ZXJsYXkuc2V0UG9zaXRpb24odGhpcy5fcG9wdXBDb29yZGluYXRlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuc2Nyb2xsVG9wKDApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcG9wdXBPcGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvL2NoYW5nZSBtb3VzZSBjdXJzb3Igd2hlbiBvdmVyIG1hcmtlclxyXG4gICAgICAgIHRoaXMuX21hcC5vbigncG9pbnRlcm1vdmUnLCAoZXZ0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChldnRbJ2RyYWdnaW5nJ10pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgcGl4ZWwgPSB0aGlzLm1hcC5nZXRFdmVudFBpeGVsKGV2dFsnb3JpZ2luYWxFdmVudCddKTtcclxuICAgICAgICAgICAgbGV0IGhpdCA9IHRoaXMubWFwLmhhc0ZlYXR1cmVBdFBpeGVsKHBpeGVsLCAobHlyQ2FuZGlkYXRlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBvbExheWVyIG9mIHRoaXMuX2FyclBvcHVwT2xMYXllcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobHlyQ2FuZGlkYXRlID09IG9sTGF5ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGxldCBtYXBFbGVtZW50ID0gdGhpcy5tYXAuZ2V0VGFyZ2V0RWxlbWVudCgpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICBtYXBFbGVtZW50LnN0eWxlLmN1cnNvciA9IGhpdCA/ICdwb2ludGVyJyA6ICcnO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGhlbHBlciB0byBzZWxlY3QgZmVhdHVyZXNcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIF90cmlnZ2VyRmVhdFNlbGVjdCgpIHtcclxuICAgICAgICBsZXQgJGN1cnJlbnRQb3B1cEl0ZW1OdW1iZXIgPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5jdXJyZW50LXBvcHVwLWl0ZW0tbnVtYmVyJyk7XHJcbiAgICAgICAgbGV0ICRpbm5lclBvcHVwID0gdGhpcy5fJHBvcHVwQ29udGVudC5maW5kKCcub2wtcG9wdXAtaW5uZXInKTtcclxuICAgICAgICBsZXQgJGxheWVyTmFtZVNwYW4gPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5jdXJyZW50LXBvcHVwLWxheWVyLW5hbWUnKTtcclxuICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICAgICAgbGV0IGx5ckZlYXRPYmogPSB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5W3RoaXMuX2N1cnJlbnRQb3B1cEluZGV4XTtcclxuICAgICAgICAkY3VycmVudFBvcHVwSXRlbU51bWJlci5odG1sKCh0aGlzLl9jdXJyZW50UG9wdXBJbmRleCArIDEpLnRvRml4ZWQoKSk7XHJcbiAgICAgICAgJGxheWVyTmFtZVNwYW4uaHRtbChseXJGZWF0T2JqLmxheWVyTmFtZSk7XHJcbiAgICAgICAgJGlubmVyUG9wdXAuaHRtbChseXJGZWF0T2JqLnBvcHVwQ29udGVudCk7XHJcbiAgICAgICAgbHlyRmVhdE9iai5zZWxlY3Rpb25MYXllci5nZXRTb3VyY2UoKS5hZGRGZWF0dXJlKGx5ckZlYXRPYmouZmVhdHVyZSk7XHJcbiAgICAgICAgZm9yIChsZXQgZiBvZiB0aGlzLl9wb3B1cENoYW5nZWRGdW5jdGlvbnMpIHtcclxuICAgICAgICAgICAgZih0aGlzLl8kcG9wdXBDb250ZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBmZWF0dXJlIC0gdGhlIG9sIGZlYXR1cmVcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJFc3JpTWFwU2VydmVyfSBseXIgLSB0aGUgbWFwIHNlcnZlciBsYXllclxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHBvcHVwQ29udGVudCAtIHBvcHVwIGNvbnRlbnRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBlc3JpTmFtZSAtIGVzcmkgbGF5ZXIgbmFtZVxyXG4gICAgICovXHJcbiAgICBhZGRNYXBTZXJ2aWNlUG9wdXBDb250ZW50KGZlYXR1cmU6IG9sLkZlYXR1cmUsIGx5cjogTGF5ZXJFc3JpTWFwU2VydmVyLCBwb3B1cENvbnRlbnQ6IHN0cmluZywgZXNyaU5hbWU6IHN0cmluZykge1xyXG5cclxuICAgICAgICBsZXQgZmVhdExheWVyT2JqZWN0ID0gbmV3IEZlYXR1cmVMYXllclByb3BlcnRpZXMoXHJcbiAgICAgICAgICAgIGZlYXR1cmUsIGx5ciwgdGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoLCB0aGlzLl9zZWxlY3Rpb25MYXllckxvb2t1cFtseXIuaWRdLCBlc3JpTmFtZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgZmVhdExheWVyT2JqZWN0LnBvcHVwQ29udGVudCA9IHBvcHVwQ29udGVudDtcclxuXHJcbiAgICAgICAgdGhpcy5fcGFzc1Rocm91Z2hMYXllckZlYXR1cmVBcnJheS5wdXNoKGZlYXRMYXllck9iamVjdCk7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoKys7XHJcblxyXG4gICAgICAgICQoJy5wb3B1cC1jb250ZW50LWxlbmd0aCcpLmh0bWwodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoLnRvRml4ZWQoKSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fcG9wdXBPcGVuKSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuZmluZCgnLm5leHQtcG9wdXAnKS50cmlnZ2VyKCdjbGljaycpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5LnNldFBvc2l0aW9uKHRoaXMuX3BvcHVwQ29vcmRpbmF0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuc2Nyb2xsVG9wKDApO1xyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cE9wZW4gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gIHBpeGVsIC0gdGhlIG9sIHBpeGVsXHJcbiAgICAgKiBAcmV0dXJucyAgZmVhdHVyZSBsYXllciBwcm9wZXJ0aWVzXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBfZmVhdHVyZXNBdFBpeGVsKHBpeGVsOiBvbC5QaXhlbCk6IEFycmF5PEZlYXR1cmVMYXllclByb3BlcnRpZXM+IHtcclxuICAgICAgICBsZXQgbGF5ZXJGZWF0dXJlT2JqZWN0QXJyYXkgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5tYXAuZm9yRWFjaEZlYXR1cmVBdFBpeGVsKHBpeGVsLCAoZmVhdHVyZTogb2wuRmVhdHVyZSwgbGF5ZXI6IG9sLmxheWVyLlZlY3RvcikgPT4ge1xyXG4gICAgICAgICAgICBsZXQgbHlySW5kZXggPSB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzLmluZGV4T2YobGF5ZXIpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGx5ckluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIGxheWVyRmVhdHVyZU9iamVjdEFycmF5LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAgbmV3IEZlYXR1cmVMYXllclByb3BlcnRpZXMoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZlYXR1cmUsIHRoaXMuX2FyclBvcHVwTGF5ZXJzW2x5ckluZGV4XSwgbHlySW5kZXgsIHRoaXMuX3NlbGVjdGlvbkxheWVyc1tseXJJbmRleF0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gbGF5ZXJGZWF0dXJlT2JqZWN0QXJyYXk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VQb3B1cCgpIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICB0aGlzLl9wb3B1cE9wZW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9wb3B1cE92ZXJsYXkuc2V0UG9zaXRpb24odW5kZWZpbmVkKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDbG9zZXJbMF0uYmx1cigpO1xyXG4gICAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24oKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250ZW50Lmh0bWwoJycpO1xyXG5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY2hnRnVuY3Rpb24gLSBwb3B1cCBjaGFuZ2UgZnVuY3Rpb25cclxuICAgICAqL1xyXG4gICAgYWRkUG9wdXBDaGFuZ2VkRnVuY3Rpb24oY2hnRnVuY3Rpb246IHBvcHVwQ2hhbmdlZEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDaGFuZ2VkRnVuY3Rpb25zLnB1c2goY2hnRnVuY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJCYXNlfCp9IGx5ciAtIHRoZSBsYXllciBiZWluZyBhY3RlZCBvblxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtzZWxlY3Rpb25TdHlsZT17fV0gdGhlIHNlbGVjdGlvbiBzdHlsZSBjb25maWd1cmF0aW9uXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3NlbGVjdGlvblN0eWxlLmNvbG9yPXJnYmEoMjU1LDE3MCwwLDAuNSldIHRoZSBzZWxlY3Rpb24gY29sb3JcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc2VsZWN0aW9uU3R5bGUud2lkdGg9MTBdIHRoZSBzZWxlY3Rpb24gd2lkdGggZm9yIGxpbmVhciBmZWF0dXJlc1xyXG4gICAgICogQHBhcmFtIHtvYmplY3R8ZnVuY3Rpb259IFtzZWxlY3Rpb25TdHlsZS5vbFN0eWxlPXVuZGVmaW5lZF0gYW4gb3BlbmxheWVycyBzdHlsZSBvYmplY3Qgb3IgZnVuY3Rpb25cclxuICAgICAqIEByZXR1cm5zICB0aGUgbmV3IHNlbGVjdGlvbiBsYXllclxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgX2FkZFBvcHVwTGF5ZXIobHlyOiBMYXllckJhc2VWZWN0b3IsIHNlbGVjdGlvblN0eWxlOiB7Y29sb3I/OiBzdHJpbmcsIHdpZHRoPzogbnVtYmVyLCBvbFN0eWxlPzogb2wuc3R5bGUuU3R5bGV9KTogb2wubGF5ZXIuVmVjdG9yIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuXHJcbiAgICAgICAgc2VsZWN0aW9uU3R5bGUgPSBzZWxlY3Rpb25TdHlsZSB8fCB7fTtcclxuICAgICAgICBzZWxlY3Rpb25TdHlsZS5jb2xvciA9IHNlbGVjdGlvblN0eWxlLmNvbG9yIHx8ICdyZ2JhKDI1NSwxNzAsMCwwLjUpJztcclxuICAgICAgICBzZWxlY3Rpb25TdHlsZS53aWR0aCA9IHNlbGVjdGlvblN0eWxlLndpZHRoIHx8IDEwO1xyXG5cclxuICAgICAgICBsZXQgdGhlU3R5bGU7XHJcblxyXG4gICAgICAgIGlmIChzZWxlY3Rpb25TdHlsZS5vbFN0eWxlKSB7XHJcbiAgICAgICAgICAgIHRoZVN0eWxlID0gc2VsZWN0aW9uU3R5bGUub2xTdHlsZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGVTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICBzdHJva2U6IG5ldyBvbC5zdHlsZS5TdHJva2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzZWxlY3Rpb25TdHlsZS5jb2xvcixcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogc2VsZWN0aW9uU3R5bGUud2lkdGhcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5DaXJjbGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHJhZGl1czogNyxcclxuICAgICAgICAgICAgICAgICAgICBmaWxsOiBuZXcgb2wuc3R5bGUuRmlsbCh7Y29sb3I6IHNlbGVjdGlvblN0eWxlLmNvbG9yfSksXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiBuZXcgb2wuc3R5bGUuU3Ryb2tlKHtjb2xvcjogc2VsZWN0aW9uU3R5bGUuY29sb3IsIHdpZHRoOiAxfSlcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgZmlsbDogbmV3IG9sLnN0eWxlLkZpbGwoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzZWxlY3Rpb25TdHlsZS5jb2xvclxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgc2VsZWN0aW9uTGF5ZXIgPSBuZXcgb2wubGF5ZXIuVmVjdG9yKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IG5ldyBvbC5zb3VyY2UuVmVjdG9yKCksXHJcbiAgICAgICAgICAgICAgICBzdHlsZTogdGhlU3R5bGVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHNlbGVjdGlvbkxheWVyLnNldFpJbmRleCgxMDApO1xyXG5cclxuICAgICAgICB0aGlzLl9zZWxlY3Rpb25MYXllcnMucHVzaChzZWxlY3Rpb25MYXllcik7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uTGF5ZXJMb29rdXBbbHlyLmlkXSA9IHNlbGVjdGlvbkxheWVyO1xyXG4gICAgICAgIHRoaXMubWFwLmFkZExheWVyKHNlbGVjdGlvbkxheWVyKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHNlbGVjdGlvbkxheWVyO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBwb3B1cCB0byB0aGUgbWFwXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyQmFzZXwqfSBseXIgVGhlIGxheWVyIHRoYXQgdGhlIHBvcHVwIHdpdGggYWN0IG9uXHJcbiAgICAgKiBAcGFyYW0ge3BvcHVwQ2FsbGJhY2t9IHBvcHVwQ29udGVudEZ1bmN0aW9uIC0gcG9wdXAgY29udGVudCBmdW5jdGlvbiB0aGF0IG1ha2VzIHBvcHVwIGluZm9cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbc2VsZWN0aW9uU3R5bGU9e31dIHRoZSBzZWxlY3Rpb24gc3R5bGUgY29uZmlndXJhdGlvblxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzZWxlY3Rpb25TdHlsZS5jb2xvcj1yZ2JhKDI1NSwxNzAsMCwwLjUpXSB0aGUgc2VsZWN0aW9uIGNvbG9yXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3NlbGVjdGlvblN0eWxlLndpZHRoPTEwXSB0aGUgc2VsZWN0aW9uIHdpZHRoIGZvciBsaW5lYXIgZmVhdHVyZXNcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fGZ1bmN0aW9ufSBbc2VsZWN0aW9uU3R5bGUub2xTdHlsZT11bmRlZmluZWRdIGFuIG9wZW5sYXllcnMgc3R5bGUgb2JqZWN0IG9yIGZ1bmN0aW9uXHJcbiAgICAgKiBAcmV0dXJucyB7b2JqZWN0fSBhIHJlZmVyZW5jZSB0byB0aGUgb2wgc2VsZWN0aW9uIGxheWVyXHJcbiAgICAgKi9cclxuICAgIGFkZFZlY3RvclBvcHVwKGx5cjogTGF5ZXJCYXNlVmVjdG9yLCBwb3B1cENvbnRlbnRGdW5jdGlvbjogcG9wdXBDYWxsYmFjayxcclxuICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblN0eWxlPzoge2NvbG9yPzogc3RyaW5nLCB3aWR0aD86IG51bWJlciwgb2xTdHlsZT86IG9sLnN0eWxlLlN0eWxlfSkge1xyXG4gICAgICAgIGxldCBzZWxlY3Rpb25MYXllciA9IHRoaXMuX2FkZFBvcHVwTGF5ZXIobHlyLCBzZWxlY3Rpb25TdHlsZSk7XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcklkcy5wdXNoKGx5ci5pZCk7XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzLnB1c2gobHlyLm5hbWUpO1xyXG4gICAgICAgIHRoaXMuX2FyclBvcHVwTGF5ZXJzLnB1c2gobHlyKTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzLnB1c2gobHlyLm9sTGF5ZXIpO1xyXG4gICAgICAgIHRoaXMuX2FyclBvcHVwQ29udGVudEZ1bmN0aW9uLnB1c2gocG9wdXBDb250ZW50RnVuY3Rpb24pO1xyXG5cclxuICAgICAgICByZXR1cm4gc2VsZWN0aW9uTGF5ZXI7XHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyQmFzZX0gbHlyIC0gbGF5ZXJcclxuICAgICAqL1xyXG4gICAgcmVtb3ZlVmVjdG9yUG9wdXAobHlyKSB7XHJcbiAgICAgICAgbGV0IGlkeCA9IHRoaXMuX2FyclBvcHVwTGF5ZXJJZHMuaW5kZXhPZihseXIuaWQpO1xyXG5cclxuICAgICAgICBpZiAoaWR4ID4gLTEpIHtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcklkcy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzLnNwbGljZShpZHgsIDEpO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJQb3B1cExheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBPbExheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb24uc3BsaWNlKGlkeCwgMSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NlbGVjdGlvbkxheWVyTG9va3VwW2x5ci5pZF07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJFc3JpTWFwU2VydmVyfSBseXIgLSBtYXAgc2VydmVyIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW3NlbGVjdGlvblN0eWxlPXt9XSB0aGUgc2VsZWN0aW9uIHN0eWxlIGNvbmZpZ3VyYXRpb25cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc2VsZWN0aW9uU3R5bGUuY29sb3I9cmdiYSgyNTUsMTcwLDAsMC41KV0gdGhlIHNlbGVjdGlvbiBjb2xvclxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzZWxlY3Rpb25TdHlsZS53aWR0aD0xMF0gdGhlIHNlbGVjdGlvbiB3aWR0aCBmb3IgbGluZWFyIGZlYXR1cmVzXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdHxmdW5jdGlvbn0gW3NlbGVjdGlvblN0eWxlLm9sU3R5bGU9dW5kZWZpbmVkXSBhbiBvcGVubGF5ZXJzIHN0eWxlIG9iamVjdCBvciBmdW5jdGlvblxyXG4gICAgICogQHJldHVybnMge29iamVjdH0gYSByZWZlcmVuY2UgdG8gdGhlIG9sIHNlbGVjdGlvbiBsYXllclxyXG4gICAgICovXHJcbiAgICBhZGRNYXBTZXJ2aWNlUG9wdXAobHlyLCBzZWxlY3Rpb25TdHlsZT86IG9sLnN0eWxlLlN0eWxlfEFycmF5PG9sLnN0eWxlLlN0eWxlPnxvbC5TdHlsZUZ1bmN0aW9uKSB7XHJcbiAgICAgICAgbGV0IHNlbGVjdGlvbkxheWVyID0gdGhpcy5fYWRkUG9wdXBMYXllcihseXIsIHNlbGVjdGlvblN0eWxlKTtcclxuICAgICAgICB0aGlzLl9lc3JpTWFwU2VydmljZUxheWVycy5wdXNoKGx5cik7XHJcblxyXG4gICAgICAgIHJldHVybiBzZWxlY3Rpb25MYXllcjtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhclNlbGVjdGlvbigpIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3NlbGVjdGlvbkxheWVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25MYXllcnNbaV0uZ2V0U291cmNlKCkuY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgZiBvZiB0aGlzLl9tYXBDbGlja0Z1bmN0aW9ucykge1xyXG4gICAgICAgICAgICBmKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBtYXAgaXMgY2xpY2tlZCBidXQgYmVmb3JlIGFueSBwb3B1cHMgYXJlIGltcGxlbWVudGVkXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIC0gdGhlIG1hcCBjbGljayBmdW5jdGlvblxyXG4gICAgICovXHJcbiAgICBhZGRNYXBDbGlja0Z1bmN0aW9uKGZ1bmM6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fbWFwQ2xpY2tGdW5jdGlvbnMucHVzaChmdW5jKTtcclxuICAgIH1cclxufVxyXG5ubS5NYXBQb3B1cENscyA9IE1hcFBvcHVwQ2xzO1xyXG5leHBvcnQgZGVmYXVsdCBNYXBQb3B1cENscztcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapPopupCls.ts\n// module id = 12\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 12/15/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('olHelpers');\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\nfunction quickMapBase(options) {\r\n options = options || {};\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 var $mapDiv = $('#' + options.divId);\r\n $mapDiv.css('position', 'relative');\r\n var 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 var 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 var 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 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 if (options.zoom < 0 || options.zoom > 28) {\r\n throw 'zoom out of range';\r\n }\r\n if (options.center.x >= -180 && options.center.x <= 180 && options.center.y >= -90 && options.center.y <= 90) {\r\n var p = new ol.geom.Point([options.center.x, options.center.y]);\r\n new ol.proj.Projection({ code: \"EPSG:4326\" });\r\n p.transform(new ol.proj.Projection({ code: \"EPSG:4326\" }), new ol.proj.Projection({ code: \"EPSG:3857\" }));\r\n var coordinates = p.getCoordinates();\r\n options.center.x = coordinates[0];\r\n options.center.y = coordinates[1];\r\n }\r\n var controls = ol.control.defaults({\r\n attributionOptions: { collapsible: false }\r\n });\r\n var 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 var map = new ol.Map({\r\n layers: [osmLayer],\r\n target: options.divId,\r\n controls: controls,\r\n view: view\r\n });\r\n if (options.fullScreen) {\r\n map.addControl(new ol.control.FullScreen({}));\r\n }\r\n return map;\r\n}\r\nexports.quickMapBase = quickMapBase;\r\nnm.quickMapBase = quickMapBase;\r\nexports.default = quickMapBase;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2tNYXBCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicXVpY2tNYXBCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFFSCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBQ2pDLDBCQUE2QjtBQUM3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBWWhDOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILHNCQUE2QixPQUF5QjtJQUNsRCxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQXFCLENBQUM7SUFDM0MsT0FBTyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztJQUN2QyxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBQyxDQUFDO0lBQzlELE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxPQUFPLENBQUMsSUFBSSxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNsRSxPQUFPLENBQUMsWUFBWSxHQUFHLE9BQU8sT0FBTyxDQUFDLFlBQVksSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDOUYsT0FBTyxDQUFDLFVBQVUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxVQUFVLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBR3pGLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXBDLElBQUksUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVB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RUgsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDckIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUM7QUFDZixDQUFDO0FBNUVELG9DQTRFQztBQUVELEVBQUUsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0FBQy9CLGtCQUFlLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzE1LzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnb2xIZWxwZXJzJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIHF1aWNrTWFwT3B0aW9ucyB7XHJcbiAgICBkaXZJZD86IHN0cmluZztcclxuICAgIGNlbnRlcj86IHt4OiBudW1iZXIsIHk6IG51bWJlcn07XHJcbiAgICB6b29tPzogbnVtYmVyO1xyXG4gICAgbWluWm9vbT86IG51bWJlcjtcclxuICAgIG1heFpvb20/OiBudW1iZXI7XHJcbiAgICBiYXNlU3dpdGNoZXI/OiBib29sZWFuO1xyXG4gICAgZnVsbFNjcmVlbj86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXRzIHVwIGEgbWFwIHdpdGggc29tZSBkZWZhdWx0IHBhcmFtZXRlcnMgYW5kIGluaXRpYWxpemVzXHJcbiAqIG1hcE1vdmUgYW5kIG1hcFBvcHVwXHJcbiAqXHJcbiAqIEBwYXJhbSBbb3B0aW9ucz17fV0gY29uZmlnIG9wdGlvbnNcclxuICogQHBhcmFtIFtvcHRpb25zLmRpdklkPW1hcF0gbWFwIGRpdiBpZFxyXG4gKiBAcGFyYW0gW29wdGlvbnMuY2VudGVyPXt9XSBjZW50ZXIgY29uZmlnIG9iamVjdFxyXG4gKiBAcGFyYW0gW29wdGlvbnMuY2VudGVyLng9LTEwMDE4Mzc4XSBjZW50ZXIgeCwgd2ViIG1lcmNhdG9yIHggb3IgbG9uXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5jZW50ZXIueT01NTc0OTEwXSBjZW50ZXIgeSwgd2ViIG1lcmNhdG9yIHkgb3IgbGF0XHJcbiAqIEBwYXJhbSBbb3B0aW9ucy56b29tPTddIHpvb20gbGV2ZWxcclxuICogQHBhcmFtIFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSBtaW4gem9vbVxyXG4gKiBAcGFyYW0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIG1heCB6b29tXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5iYXNlU3dpdGNoZXI9dHJ1ZV0gaWYgYWRkIGJhc2UgbWFwIHN3aXRjaGVyXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5mdWxsU2NyZWVuPWZhbHNlXSBpZiBhZGQgYmFzZSBtYXAgc3dpdGNoZXJcclxuICogQHJldHVybnMgdGhlIG9sIG1hcFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHF1aWNrTWFwQmFzZShvcHRpb25zPzogcXVpY2tNYXBPcHRpb25zKTogb2wuTWFwIHtcclxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9IGFzIHF1aWNrTWFwT3B0aW9ucztcclxuICAgIG9wdGlvbnMuZGl2SWQgPSBvcHRpb25zLmRpdklkIHx8ICdtYXAnO1xyXG4gICAgb3B0aW9ucy5jZW50ZXIgPSBvcHRpb25zLmNlbnRlciB8fCB7eDogLTEwMDE4Mzc4LCB5OiA1NTc0OTEwfTtcclxuICAgIG9wdGlvbnMuem9vbSA9IHR5cGVvZiBvcHRpb25zLnpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLnpvb20gOiA3O1xyXG4gICAgb3B0aW9ucy5iYXNlU3dpdGNoZXIgPSB0eXBlb2Ygb3B0aW9ucy5iYXNlU3dpdGNoZXIgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5iYXNlU3dpdGNoZXIgOiB0cnVlO1xyXG4gICAgb3B0aW9ucy5mdWxsU2NyZWVuID0gdHlwZW9mIG9wdGlvbnMuZnVsbFNjcmVlbiA9PSAnYm9vbGVhbicgPyBvcHRpb25zLmZ1bGxTY3JlZW4gOiBmYWxzZTtcclxuXHJcblxyXG4gICAgbGV0ICRtYXBEaXYgPSAkKCcjJyArIG9wdGlvbnMuZGl2SWQpO1xyXG4gICAgJG1hcERpdi5jc3MoJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XHJcblxyXG4gICAgbGV0IG9zbUxheWVyID0gbmV3IG9sLmxheWVyLlRpbGUoe3NvdXJjZTogbmV3IG9sLnNvdXJjZS5PU00oKX0pO1xyXG4gICAgLy8gbGV0IHNhdExheWVyID0gbmV3IG9sLmxheWVyLlRpbGUoe3Zpc2libGU6IGZhbHNlLCBzb3VyY2U6IG5ldyBvbC5zb3VyY2UuTWFwUXVlc3Qoe2xheWVyOiAnc2F0J30pfSk7XHJcblxyXG4gICAgbGV0IG9zbUNzcyA9IFwidXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURBQUFBQXdDQU1BQUFCZzNBbTFBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFNQVVFeFVSUUFBQURRMU5EazVPVVJGUkV0TFMxRkhTRmxaV0dKUlZHSmlZV2RtWld4c2JIUm1hWEJwYW5OMGMzVjBkSHA1ZVg1K2ZJVnpkNEYzZWVWMGp1ZDVqdVo4azRhSGhvbUhob3lHaDVlR2o1T1ZsSmlWbFppWWw1cVptSnlkbktPVGxhS1ptcUtkbmFPaW9hcXFxS3V6c2JPdnJyU3lzTGEzdGJXNHVMbTZ1YjI3dWIrL3ZiR1h3YkNad2JDZ3hMS2x4ck9xeUxTdHliTzN5clN4eXJXenpiVzJ5N2ExemJLNHk3VzZ6Ylc4eTc2MHlyVEF6YlRGenJQS3pyTE96clRKenJUT3pyN0N3YlhDMExYSzBMVE8wTDNJMGJQUXo3VFF6N1BTMGJYUTBMblIwYnJXMWJ6VDByN1UwNzdWMUx6YzJkcU5xdGVVc2R5WHNjYXF1dU9IbmVhR211ZUhuT2VKbnVpQmxlaUtuK2VOb09pT29PV1VwT2lSbytpU3BlaVVwZXFZcHVtYXFPbWRyUFN5bmVtZ3J1U3F0T21pc09tbHN1dXF0ZXF1dU9XMXZPdXh1K3V4dk9xMXZlK3h2UEswcHZXM28vVzVwZk81cXZTN3FmQ3d2TU91d2MyL3dOZW54Tnl5ek5lLzBOcTMxTnE1MWR5NzJPeTN3T3U0d091K3hleTR3Tys2eE8yK3hmVEFyL1RDc3ZmRnRQSEx2dlRKdU1QRHdNZkh4Y1hLeWMzRHhNdkZ5TXZMeU0zUHpjRFYwOERWMU1UWDFjYlkxczdYMXNqWjFzcmEyTW5kM003YjJjN2MydGZIMXRuQjF0N0YyZDdNMjlmWDF0TFkxdERkMnRIZTNOVGYzTm5TMTlyWjF0dmEyTm5mM3QzZDI4cmgzdFhnM05uaDN0emozOTNrMzluaTRON2s0TjduNXVYRHlPZkx6K3pBeHUzQ3lPekV5ZXpLemVESjNlTE0zdXZQMHUzUDBlUGYyKzdSMHU3UTF1L1UwKzdVMWV6YzArN2EyZS9kMiszZjN2YkZ6dkxPd2ZITjBQUFF3L1RVeC9MV3l2TFl6UERRMWZQZTB1YmM0dnZlNHVIaDMrbmgzKy9oMnUvaDN2SGoydkhsM3VIbTRlVG40dURwNWVibzQrWG81T0RxNmVicTZPVHY2K25sNCsvajRPN2w0ZTduNXVqcDQrbnA1T3pxNWU3czV1cnQ2Tzd0Nk9ydzZ1N3g2dTN4N3ZQajVQRGw0ZkRvNHZEcTVmRHQ1dkR1NlBEdjdQVHY2ZkR4NnZIeDdmSDE3Zlh3NmZYeTdmYjA3L2J6OGZUMTh2bjM4dnIzOWZyNDgvcjU5UHI2K1AzKysvLysvZ0FBQUxOVFNrMEFBQUVBZEZKT1UvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vd0JUOXdjbEFBQUFDWEJJV1hNQUFBN0RBQUFPd3dISGI2aGtBQUFBR0hSRldIUlRiMlowZDJGeVpRQndZV2x1ZEM1dVpYUWdOQzR3TGpsc00zNU9BQUFGTkVsRVFWUklTMVZWQ1p4VlV4aS85bDBVSVVUMmJNblk0M2JWSTJjMFkwMWtTV0lhUzBqMkpFdGtONDFwaW9tWnJQUEtRMmFRN0pLSW1PWmxubTI0OTNUSnpEdWZ1VTFaaSt2L2ZlZSttWi8vNzkzdm5QT2Q3enZmZXM1ekRCRVprQkJqQWNJamIrSWlvdHFnZGhhdDhBTUswdmw3L1I5TjdHaVd0c2hxSXIrRVo1Z1lLaWJ5VXNYWTFsL21mRnBzc3ZVbFdRMEZrVTNneTQrUkIvK2t3WWNPOHBSU25sZGNPVS9yMmxBSEFSU3drMk9SZ0VtT2RDMUVzdVJpWVNxTVB3d3JvTUlyYVprNVYyZllKUWpDS2ZaclJtaDNnU0FaaTJpNGI3d1N5bFd1OEVxWndTNTlKa0ZVYVc5NkpiTlNjK0NFVW10NHJvcnd1Wm1XZERhb2MrdVpFVHVRbFRDVTV4WXpSN211VW5WVVZvK0JjUmhyZS9Wd1VwYXNnSndoSDdKa1lJWUEwc054aG1Dd1VLK2x3NnZDS0JaZWh3MDFkRWl5dzRRNGFFMFo0YWhEaEthRlFzR25KMkJncUtvVEJzTmpGeTBTbFc2d2hSQVpUZG04REJKbWtCWmhEaTFqNHhKUUJrNnl3cldVVHltYUN4YWM4bFJPY2RhdVJHelFTTnRBN0VIVVloWHlFd2hoZ2pGVXFSdU8rcmF1aEYxYXdGcHpDc213VWJqSUZCUjB1MWJLdHlHcHVsVy9IL2NWVnpreUdhSVdUSVI5cEZBVjZHSzJnUE1YTVg4Z1BrOXp6eFhnSTFraW1jQWx0RVlyK2NqaW8xaW1sS3BFYTlyT2lwTG0rcCtDWjZCdy8vcWQxL2YvTytHd014YlNMcHlvWkVjd2t5aDJqSWtzKzNobWRkMmpXVXc0c2N4Tnlzbkh4VTduU3NwVFJjSmpDWkdMM0lzanNZSk1NZzVtd2d4N2dhSU9MQkZDb2dBZ0JCb05hOXcrREU2SStCczdGVGd3d3JKYkhqV0RncFlvMkt3dEJUY1lFRHVsb0M5Z2VRdytrMlJHblBHcFRhT2xxN0FTK1lJQ1V6NERaVmFYMlRpTkRodVlmVHRZNGdlTGkwSW9DbTNYY2N3TTloeDRrVTI4U3RRRWxqRHMzWkVwRkdBKzhkS3pMbVY5eW1Jd0Y1Rk9HbjJHZEpNOEtMSERKYlh5aVlWTUc5TVJUTGlYR0dnMlFLYXhNM2toUFNScndNOXpFSWFyZHhVMncvRWlBMGdPZVlLSHpEUjBWNy9RR1YzbEtJQTlrdHJEQXJ4TzNnZEErazZTS29CaVZ3Y203TmpaYjkrSG56dGcyODJUdUhWWjlMT0lTRk50OU1neUNldFpWY3pTeG55RGJsMTdQZW5xNm1xcGcxSWhSYUVPMmFWTFVPNC9yMTdIOHRUdjZmMTNoNzFkZHV2WkkzWSt1TWRXa3NOU2F1TG92Snc1aHNxaVBJVXZ0MGt1Ny9pQmVVUjNza3Ntb21ZV3RSYkFqYmlMZnYybFg5L1Y3TFZHNHVZblVaWGhRN2YyT1BDWkV4OXdyWVdUY2VQRVFxUEVNTDhwbDRtTWRyL2psWGx2SGlSaUoyK01TVEZZNFRUU1lTdHV2ejJSL0pYaCtQUGVHWG0wNTVKKzMvWURXdU51M1IzREFyUHV0eWcwWmd5a01WRFU5TmRtMjIrd1lhbHIycnNlNDhDbnNUSUZjTW43M3ZmaE5ya3R4MUVVY1puUHY2YWgzWXk1Y0RUUmRCRW9Hb0JlYWg3MWRxRnlqWkRKTGtXazNOM3Y0dXVrdHNzaldwemNpTVB4UWVIajhuTUt6Y0d1QjB0QXl6RmhkQ0tPWVd2NEh3T1FWd0l4TEc5OWE2dXZIM3NKQ3lPM2grazRFWitHNyt4ajVmNFhYa3NvYUdyZE1SelNjOEFSQTgrY2RPdWsyeDZmZmZOTnQ1eCtSbzFvbVBsclQvQ1FEbGNObHB4NE5CSVdYaGt4N1kzWnAzb2ZOUjdVdjg5T20vYmVXMFRMSXluSHYzdnMxVnNPRnBTV1NYdmZ1UFVmOUJyUkZ5eGdYZEhvS0puUUZlZ1BPb3Z2eno1OW50cnp5ZTI0MGlnOFVRM2xESTJWcXdhZ3JLSVFjTFhORkwzd2dsTjJPSGRCUTYvdkkza0VORFZCd1JiM2sxWHRjekZialduNEV6TVlpN0NGMzEyOStKVFl1UlNkckd1UzkyZzVkcHFuNnFYb0pRczV4bUw4cCtXdDRoTGJ0MG14Mk9MTlpSMmJiUHk4ekpOUUdGTS9mL0NmWFpla1JZRmpHQ1dqSUpwTStXaUN6R0JQV0hob3lhQXNqUlQvQjJHeTV5ellKa3dVQUFBQUFFbEZUa1N1UW1DQycpXCI7XHJcbiAgICBsZXQgYWVyaWFsQ3NzID0gXCJ1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBREFBQUFBd0NBTUFBQUJnM0FtMUFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQU1BVUV4VVJRQUxCZ0lNRFFnT0J3UU9FUWNUQndVU0N3b1ZEQXdkQnc4WkRnVVJFd1lVR0FZWkZRWVpHZ2tURlFvVkdRc1pGQXdaSEJNZURoSWJGQkViSEF3V0lBNGJJUkVjSVE0aENRd2pGdzRsSEJna0RCOHNEeFVpRXhJaUdoQW9HeG9oRlJzaEdSb3JIUWNyS1FzaUlRd21LZ29vSkEwcEtRODFKdzh5TFJNaUl4SW1LeFVySlJFdUtoc2xKQjBySWhvb0tSVXVNQk15TGhrd0pob3pLaDQ4THhVek1STTlNQnd6TWlVdkZDTXRHaU13RWl3ekZDZ3pIREkrR1NJc0lTa3ZKU1F4SWlNMkxpWTVKaWMrTHlrMEpTbzBLeTQ5SlNzOUtTVTFOU003TkNzMk5TOCtORE0xSnpVOUxqZzdJREpDSFMxRExTTkFNaXRDTVN4SU9qUkVJVFpMSURaSktEbEZJanBGS3p0S0pUMUxLekpCTXpwSE1EMUpNanBLUEQxUktqbFFOQzFEUWo1UVFFQThNRUpHSmtCS0pVSk5LMGxMTEVKTU1rVk1QRXBPTkVOU0xVZFpMMHBUTGtwYUxrUlVNa1JTUEVWWk1rdFVNMHBWT2tsWk1rbFpORXBjTlUxWk1rMVpOVXhmTWs1ZE5reGNPVkZVTTFSVU9GSmJOVkZaT1ZOWVBWRmRPVkpkUEZWYU9WVmFQVlZkT2xWZFBWcGFObHBkTzBwaE4wMWhPbEJpTjFOaFBGTm9QMXBpUFdGYlBtUmpQRU5PUUV0UFNVUlRRa0pWUzB4VlFrMVZTa3hiUWt4Y1MwaGVVVkZYUkZSY1FsSmZURnhlUWxwZVMwNWxRazFrU0ZSalFWUmpTbFpwUTF0a1FseGxTbHhwUkYxclNWVm5VVnRsVTFsbFhGOXRVMXhvWGx4d1NsOXJhbVJmUW1KbFEyRmhTV0ZsU1dGbFRtVmxTV1JtVEdGb1FXRnBSV0ZzUm1WcFJXVnRSbU5zU210bFJHcHFSbXBzUzJCbVdHUnNVbUZyVzJwdFVtWnlSMlJ4VEdweFRXVnlVMlJ5VzJkNVYydHpVbXQwV1cxNVZHMTVXWEZ1VEhOdFZuRnhUWEY0VDNoMFRuSnpVbkoxWEhKNFZYTjZXbnAwVkh4MVczMTVWWHA4WEdSMFlHeDBZSFZ6WlhKMGFIUjlaWFYrYUhsOVlIT0NYWHFCWFhlQ1lIeUNZM2lFYUh5SVluK0phWHFLY1lCNVdJTjZZNFNDWG9DRFpJR0VhWUNJWm9PTGE0aUNhSW1KYklPT2RZdU1jbzZPZUl1VmNwT0tiWktQYzVhUWI1ZVhlNXVmZzZLamhBQUFBQUFBQUFBQUFBQUFBT0dDZVFnQUFBRUFkRkpPVS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy93QlQ5d2NsQUFBQUNYQklXWE1BQUE3REFBQU93d0hIYjZoa0FBQUFHSFJGV0hSVGIyWjBkMkZ5WlFCd1lXbHVkQzV1WlhRZ05DNHdMamxzTTM1T0FBQUg4MGxFUVZSSVN5MVdiWFFVVnhtKzZ3cW5rM1ptcHhsMkZHMkVHZzkyQzhHRGxXcHRWVHdhK3VGM3hjS21EZkZ6Q1V6RHNKTnN1blhpcGdsSlhKYnJ0Sldtd1pOU25IRDNqb2pSZ1VJbTJVdW1JWjBKWjdKQnlyQUxiTVdXMElCVzhhUmE0K2NmNzZUZVgzTm0zdWMrei9zKzcvdnVnbDRyL2FNVHJUNGUxcFBUcW5ubUpObjVBeVV6Um5yUmxlL3FFMzNkc3ZyQnRBUVZveHRwWk5LM3pTellqVWp2aVdPMkFnK1I3N2RsN1czNm4vMUVwOUtCUEcvUytQeTBQa2pVL2dQS1FHcXdUSHJ5aVdZRkFYU3ZNYWlyc2lvN1NqeU5zbkN6aDBxS0ltVjkvN21oZkhRWngyeU4xTys3clhVbTMzTVVQYWJvT2tBSkhhb0lkWGZKajJ4V2V5RDhqTUZFWGt2SXU1cXpwVTk4OGdXQjV6bCtHUytzRmU1NXRyRVZQZFdaQjJtaXE4YkJWa05GTzJSMHFucmZraVhoY0podEROWEU2dGJXOTcvczlPOS83WmZWaHg4Ni9Dd3JST3BmdnZ4Ym9NcWVMc3VxUHIxajQ0cUV3RE5NT0J4aW1VaVlvVThzdzdCQy9hN1Q3MnVFbnlKRGxHeFo5S2NnbFpSeXVxcXJ2L3RTWkVyZ09JNE5nUkJUSXc5RW1IQW9GR1pabnA2YUdhSjJHVHhmeFlzOGtLVlVRaDdXQjVoUWVDM0xzVXhveFZLVzE0bDNCWDJXY29VWVBpWnlMTGU4dGVaK2l1VDRHR2h2VjVLcEtXa3B5enhFcjJNWmdRMXhkUmpmUkJvSCsyazZsSUhqS1RIUFBCbzhDU0pJU3FxcTR3R0dPY1d5bElHbGd2Z05YMUdkOHZGNWYrSVVJd2IzMG5nK0dnMlFmQlJJTXZ5MGpHOFNWa1lvNE4wenZVWFZSenRiSi9MNnhMN2xVWkVYQkVIa3VacWxTNmdFQVVnS0p1cm5oRnRmcEFDT1lkOGIvaFZiSlBxd2k0NGE2S0Ewc1BWaklpL1NJeXhiM3U4S2xBSjBTOGpSVmdybFcrblZIUGRyaGlYQ3h1NDJkODZCeWtzRGM4MFAzTWtKRkJGUThIbzFsUWVncFdKUldGR3NEc1J3d3Y3cEl5dnVRVzBaa3JYNk5EVkZicWN2YVFJOHZieXF6dDVBQVJyc2JLeDV5aFFFR3Mrd1BPNTZiT0srMHJjd01yT0trcFViWldZeFYwNFVlWlp2L2NCS0ZoUkw2UWR2OXk0TGZFREE3L3RoZzd0VG12MWE1L0duTzB3bDBkUWc4MHdnbFphSFVteFJ2andBSE9meU4wbXhycHFMVXBjanNLM05IWU1vNFIxbzZlaG8yWnlJYjJGb2VPQzNJTEs4a1oySFFNT3VXeXdHWFVrSkJDZVRiWUZTMCt5bTFoMi82VWdtdm5ydktZWlp0SUVYR2Y3NUMyY0lBcDVMSE5kNzF4N3VQb1RqYWtyV0g5ZTNLRnBhYXRqVXZKVXlzRncwS3JMTVlNVzJsVGc0UGVVUXg2a0pFQUx2eFhFbUNkVnlQTEh0Q1NqQmhjMDFYQ2pJZ2FmeG91K1BFNktDMWRoeFNDd29CQ2MrTjRQM2J0TTg0cG1kU1NqSm5qTy9udlk0TFFmVnl6NS9JK3Y2SXdqVU9NankrTVZDeEliS3VwVEphRWt0cDdjVEtVNDJQdmpoMm0vOGNTcEM2YVBzYVgvTUhTdVVRTFZWc0lhNFJVVHMvci9CVkFleE5kamRuc05HN2ovclY5M3hoZUxNektuRnJQZVRFUWNoQ3lDY0tiMjVhQUluN2xyQWVydHJad3lOWE04TjZ6ZldyRm8zZDJTbU9FY0Y4M3gvcitPT0ZnckFIWVdGN2NFTGpoVjdVUW8vNldBSVVWbDlKRmw4YS8vSFo2NlZwYlkzSTlRS1pxUHJ1NzdsQStpT1dBSXIwaEt4SENtbXIwb3RoU3llSWw1eTNxdDR4VDhnU05yS0Vab3pzOEVsczY3cmdzTE9aK3lnendNZmJ0TmhvYmZnenBFeUduejdodFB0elVpNlB1T29qN0swV0YvTVhpVUZ4d0dhalJEMWhqWVhIWEk5cDQwNnFPeWlucDUvdGlXY0RIWTBqSXU0bjY0UWZxN2tsaUIyZ2VtYWc5UWJPaWEwUGJiRE1iZDQzU0h1dnhGeHJBb2N4aW5zN01YNUtxYmUxUWl4S0J4b1Y0Ly9QZkFnR0N1K1JsbTRTdlppenlESCswcmVESHA5MmlPMEJ1WDNiQ2ZJdGwwUEV3dllMcXB3WEcyTUhsR3NRNFM4cE1KWnYxSkdtSGlFb0hRRGRPandtVmxFUC9uRTlBREtqSTh4TEkwT09HSVRmeTBTYmVHL0MyaktVREdTbERoTTlJM0lwSzlpdXA2WG5iUk5DN3lxdWVOc0pDQ0lpWHpkUWhuYUdOKzQ2dW1uRWR5NVU1VWJVSjQ4TEZNOUdrSm84QmRET2lBWjdaSVFiS2hZTE1xdmhVMndtTnhqRUFzUzJBSTd5NG5XRjY0ZHVlUGJrN1lWM3p2QVZMRU1EOUF4SlJOYTNLRFVpYlY3RGpua3Vwck1FWWpTY0ZOY2FSMmNlUDJ1OVIvNWsxMDUyUnltZTVwaEFGUnN3bEhqQXVkaVA0ZE95N0NheExnZEpoOXZVbFUxNzAyLytMUGExVTlmdlBpOXFsQTRYRVVCSmMzZEZscHNSNDU3SURsMWlQcUxwN284MU5RZ3lWMTlpWVUzOHVUaXY5NzVQZDNTaXdRY3NHangrdjQvNmZsNVQ3RU9PTVRDdHBiS3hmZW1zUXEvM29sUVpjbWluQURBQUkwY3VHTEhhSE9GeGJ1R3ZSay9aOXU3Q1VMcW9WUjZORTB5eDFhdmozMG9SaGMvaldVb0lBTEd4a3owZGcxRGw5aWFJN0xxT09YS3NYSkZ3aml1RUFpNzBKcmEyblcxUEwwOHpMQmhac01BQnBXNWNzSTdUUGZldzlpcEZLY241azFpKzFLeUNXS2pDM1cvOGRGMWQ2NjYrUmFhYkJWVEZUSGFjam9vakJORGgwTkR4aytJUFRsd2ZxSmtXcGJucEZIWEliTGJtcHhFUTNmZi9aMGcvbWF1WHNvbG45d0RSankvTkhzUUZ3M1A2dld1VEo0My8rRlpyazJjdkFGUmlwQ0tkZkQ5eTIrcGpSajc4czBLZENVREtKdmRWOTFDaG5nVjM4VDIwVE0rZ2doanBKYVBscEZyMnhiRXo1ZzRBL05HdDVyTndkd21ZR2VlZU1YQlNMSEhVSWMrNlJzb2pSSDlWVFVtMy9tTGYvNjRiNDcwWHZveG9US2hsTUJRMmpNRXpvMlBqeGRHTXBwbW4xUk0yNGJXRkpxYVF2NEJjdUphMlNhbTdab2txMWxkQ3N6MDZOQ0JIcmh3cVZRWXBmRmo0Mk5aZXh6MUVXOVNSL2tUNThuRWVRS0piMmZQWGpqcDB1L1lVa3dIRWdMZU9uZjJuT3VmMVRSVE0wMkNMS0xUUHk2MC94MUNDenRxbjdFditCZHNDM20rMzBkZWNRdlcvd0JOVHdVK0NmVVFBUUFBQUFCSlJVNUVya0pnZ2c9PScpXCI7XHJcblxyXG4gICAgaWYgKG9wdGlvbnMuYmFzZVN3aXRjaGVyKSB7XHJcbiAgICAgICAgLy8gIGxldCBzd2l0Y2hlckNvbnRlbnQgPSAnPGRpdiBjbGFzcz1cImJhc2UtbWFwLXN3aXRjaGVyXCIgdGl0bGU9XCJUb2dnbGUgQmFzZSBMYXllclwiIHN0eWxlPVwiJztcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9ICdwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNzBweDsgbGVmdDogNHB4OyBib3JkZXI6IHNvbGlkIGJsYWNrIDFweDsgJztcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9IGBoZWlnaHQ6IDUwcHg7IHdpZHRoOiA1MHB4OyB6LWluZGV4OiAxMDsgYm9yZGVyLXJhZGl1czogNHB4OyBiYWNrZ3JvdW5kOiAke2FlcmlhbENzc307YDtcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9ICdcIj48L2Rpdj4nO1xyXG4gICAgICAgIC8vICAkbWFwRGl2LmFwcGVuZChzd2l0Y2hlckNvbnRlbnQpO1xyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gJG1hcERpdi5maW5kKCcuYmFzZS1tYXAtc3dpdGNoZXInKS5jbGljayhmdW5jdGlvbigpIHtcclxuICAgICAgICAvLyAgICAgIFwidXNlIHN0cmljdFwiO1xyXG4gICAgICAgIC8vICAgICAgb3NtTGF5ZXIuc2V0VmlzaWJsZSghb3NtTGF5ZXIuZ2V0VmlzaWJsZSgpKTtcclxuICAgICAgICAvLyAgICAgIHNhdExheWVyLnNldFZpc2libGUoIXNhdExheWVyLmdldFZpc2libGUoKSk7XHJcbiAgICAgICAgLy9cclxuICAgICAgICAvLyAgICAgIGlmIChvc21MYXllci5nZXRWaXNpYmxlKCkpe1xyXG4gICAgICAgIC8vICAgICAgICAgICQodGhpcykuY3NzKCdiYWNrZ3JvdW5kJywgYWVyaWFsQ3NzKTtcclxuICAgICAgICAvLyAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgJCh0aGlzKS5jc3MoJ2JhY2tncm91bmQnLCBvc21Dc3MpO1xyXG4gICAgICAgIC8vICAgICAgfVxyXG4gICAgICAgIC8vICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0aW9ucy56b29tIDwgMCB8fCBvcHRpb25zLnpvb20gPiAyOCkge1xyXG4gICAgICAgIHRocm93ICd6b29tIG91dCBvZiByYW5nZSc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9wdGlvbnMuY2VudGVyLnggPj0gLTE4MCAmJiBvcHRpb25zLmNlbnRlci54IDw9IDE4MCAmJiBvcHRpb25zLmNlbnRlci55ID49IC05MCAmJiBvcHRpb25zLmNlbnRlci55IDw9IDkwKSB7XHJcbiAgICAgICAgbGV0IHAgPSBuZXcgb2wuZ2VvbS5Qb2ludChbb3B0aW9ucy5jZW50ZXIueCwgb3B0aW9ucy5jZW50ZXIueV0pO1xyXG4gICAgICAgIG5ldyBvbC5wcm9qLlByb2plY3Rpb24oe2NvZGU6IFwiRVBTRzo0MzI2XCJ9KTtcclxuXHJcbiAgICAgICAgcC50cmFuc2Zvcm0obmV3IG9sLnByb2ouUHJvamVjdGlvbih7Y29kZTogXCJFUFNHOjQzMjZcIn0pLCBuZXcgb2wucHJvai5Qcm9qZWN0aW9uKHtjb2RlOiBcIkVQU0c6Mzg1N1wifSkpO1xyXG4gICAgICAgIGxldCBjb29yZGluYXRlcyA9IHAuZ2V0Q29vcmRpbmF0ZXMoKTtcclxuICAgICAgICBvcHRpb25zLmNlbnRlci54ID0gY29vcmRpbmF0ZXNbMF07XHJcbiAgICAgICAgb3B0aW9ucy5jZW50ZXIueSA9IGNvb3JkaW5hdGVzWzFdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xzID0gb2wuY29udHJvbC5kZWZhdWx0cyh7XHJcbiAgICAgICAgICAgIGF0dHJpYnV0aW9uT3B0aW9uczoge2NvbGxhcHNpYmxlOiBmYWxzZX1cclxuICAgICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IHZpZXcgPSBuZXcgb2wuVmlldyh7XHJcbiAgICAgICAgY2VudGVyOiBbb3B0aW9ucy5jZW50ZXIueCwgb3B0aW9ucy5jZW50ZXIueV0sXHJcbiAgICAgICAgem9vbTogb3B0aW9ucy56b29tLFxyXG4gICAgICAgIG1pblpvb206IG9wdGlvbnMubWluWm9vbSxcclxuICAgICAgICBtYXhab29tOiBvcHRpb25zLm1heFpvb21cclxuICAgIH0pO1xyXG5cclxuICAgIGxldCBtYXAgPSBuZXcgb2wuTWFwKHtcclxuICAgICAgICBsYXllcnM6IFtvc21MYXllcl0sXHJcbiAgICAgICAgdGFyZ2V0OiBvcHRpb25zLmRpdklkLFxyXG4gICAgICAgIGNvbnRyb2xzOiBjb250cm9scyxcclxuICAgICAgICB2aWV3OiB2aWV3XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAob3B0aW9ucy5mdWxsU2NyZWVuKSB7XHJcbiAgICAgICAgbWFwLmFkZENvbnRyb2wobmV3IG9sLmNvbnRyb2wuRnVsbFNjcmVlbih7fSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtYXA7XHJcbn1cclxuXHJcbm5tLnF1aWNrTWFwQmFzZSA9IHF1aWNrTWFwQmFzZTtcclxuZXhwb3J0IGRlZmF1bHQgcXVpY2tNYXBCYXNlO1xyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/quickMapBase.ts\n// module id = 13\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 12/14/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"../util/provide\");\r\nvar nm = provide_1.default('olHelpers.zoomResolutionConvert');\r\nvar _zoomResLookup = [\r\n 156543.03392804097,\r\n 78271.51696402048,\r\n 39135.75848201024,\r\n 19567.87924100512,\r\n 9783.93962050256,\r\n 4891.96981025128,\r\n 2445.98490512564,\r\n 1222.99245256282,\r\n 611.49622628141,\r\n 305.748113140705,\r\n 152.8740565703525,\r\n 76.43702828517625,\r\n 38.21851414258813,\r\n 19.109257071294063,\r\n 9.554628535647032,\r\n 4.777314267823516,\r\n 2.388657133911758,\r\n 1.194328566955879,\r\n 0.5971642834779395,\r\n 0.29858214173896974,\r\n 0.14929107086948487,\r\n 0.07464553543474244,\r\n 0.03732276771737122,\r\n 0.01866138385868561,\r\n 0.009330691929342804,\r\n 0.004665345964671402,\r\n 0.002332672982335701,\r\n 0.0011663364911678506,\r\n 0.0005831682455839253 //28\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\nfunction zoomToResolution(zoomLevel) {\r\n \"use strict\";\r\n if (typeof zoomLevel == 'number') {\r\n if (zoomLevel % 1 === 0 && zoomLevel >= 0 && zoomLevel <= 28) {\r\n return _zoomResLookup[zoomLevel];\r\n }\r\n else {\r\n console.log(\"invalid zoom level provided: \" + zoomLevel);\r\n return undefined;\r\n }\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\nexports.zoomToResolution = zoomToResolution;\r\nnm.zoomToResolution = zoomToResolution;\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\nfunction resolutionToZoom(resolution) {\r\n for (var i = 0; i < _zoomResLookup.length; i++) {\r\n if (resolution >= _zoomResLookup[i]) {\r\n return i;\r\n }\r\n }\r\n return 0;\r\n}\r\nexports.resolutionToZoom = resolutionToZoom;\r\nnm.resolutionToZoom = resolutionToZoom;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbVJlc29sdXRpb25Db252ZXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiem9vbVJlc29sdXRpb25Db252ZXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFFSCwyQ0FBc0M7QUFDdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBRXRELElBQUksY0FBYyxHQUFHO0lBQ2pCLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLHFCQUFxQjtJQUNyQixxQkFBcUIsQ0FBQyxJQUFJO0NBQzdCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsMEJBQWlDLFNBQVM7SUFDdEMsWUFBWSxDQUFDO0lBRWIsRUFBRSxDQUFDLENBQUMsT0FBTyxTQUFTLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMvQixFQUFFLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLElBQUksQ0FBQyxJQUFJLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNELE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBZ0MsU0FBVyxDQUFDLENBQUM7WUFFekQsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNyQixDQUFDO0lBQ0wsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUNyQixDQUFDO0FBQ0wsQ0FBQztBQWRELDRDQWNDO0FBQ0QsRUFBRSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0FBR3ZDOzs7O0dBSUc7QUFDSCwwQkFBaUMsVUFBVTtJQUN2QyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUMsQ0FBQztRQUM1QyxFQUFFLENBQUMsQ0FBQyxVQUFVLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUEsQ0FBQztZQUNsQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2IsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ2IsQ0FBQztBQVJELDRDQVFDO0FBRUQsRUFBRSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTQvMjAxNS5cclxuICovXHJcblxyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycy56b29tUmVzb2x1dGlvbkNvbnZlcnQnKTtcclxuXHJcbmxldCBfem9vbVJlc0xvb2t1cCA9IFtcclxuICAgIDE1NjU0My4wMzM5MjgwNDA5NywgLy8wXHJcbiAgICA3ODI3MS41MTY5NjQwMjA0OCwgLy8xXHJcbiAgICAzOTEzNS43NTg0ODIwMTAyNCwgLy8yXHJcbiAgICAxOTU2Ny44NzkyNDEwMDUxMiwgLy8zXHJcbiAgICA5NzgzLjkzOTYyMDUwMjU2LCAvLzRcclxuICAgIDQ4OTEuOTY5ODEwMjUxMjgsIC8vNVxyXG4gICAgMjQ0NS45ODQ5MDUxMjU2NCwgLy82XHJcbiAgICAxMjIyLjk5MjQ1MjU2MjgyLCAvLzdcclxuICAgIDYxMS40OTYyMjYyODE0MSwgLy84XHJcbiAgICAzMDUuNzQ4MTEzMTQwNzA1LCAvLzlcclxuICAgIDE1Mi44NzQwNTY1NzAzNTI1LCAvLzEwXHJcbiAgICA3Ni40MzcwMjgyODUxNzYyNSwgLy8xMVxyXG4gICAgMzguMjE4NTE0MTQyNTg4MTMsIC8vMTJcclxuICAgIDE5LjEwOTI1NzA3MTI5NDA2MywgLy8xM1xyXG4gICAgOS41NTQ2Mjg1MzU2NDcwMzIsIC8vMTRcclxuICAgIDQuNzc3MzE0MjY3ODIzNTE2LCAvLzE1XHJcbiAgICAyLjM4ODY1NzEzMzkxMTc1OCwgLy8xNlxyXG4gICAgMS4xOTQzMjg1NjY5NTU4NzksIC8vMTdcclxuICAgIDAuNTk3MTY0MjgzNDc3OTM5NSwgLy8xOFxyXG4gICAgMC4yOTg1ODIxNDE3Mzg5Njk3NCwgLy8xOVxyXG4gICAgMC4xNDkyOTEwNzA4Njk0ODQ4NywgLy8yMFxyXG4gICAgMC4wNzQ2NDU1MzU0MzQ3NDI0NCwgLy8yMVxyXG4gICAgMC4wMzczMjI3Njc3MTczNzEyMiwgLy8yMlxyXG4gICAgMC4wMTg2NjEzODM4NTg2ODU2MSwgLy8yM1xyXG4gICAgMC4wMDkzMzA2OTE5MjkzNDI4MDQsIC8vMjRcclxuICAgIDAuMDA0NjY1MzQ1OTY0NjcxNDAyLCAvLzI1XHJcbiAgICAwLjAwMjMzMjY3Mjk4MjMzNTcwMSwgLy8yNlxyXG4gICAgMC4wMDExNjYzMzY0OTExNjc4NTA2LCAvLzI3XHJcbiAgICAwLjAwMDU4MzE2ODI0NTU4MzkyNTMgLy8yOFxyXG5dO1xyXG5cclxuLyoqXHJcbiAqIEdldCB0aGUgcmVzb2x1dGlvbiBnaXZlbiB0aGUgem9vbSBsZXZlbFxyXG4gKiBAcGFyYW0ge251bWJlcn0gem9vbUxldmVsIC0gdGhlIHpvb20gbGV2ZWxcclxuICogQHJldHVybnMge251bWJlcnwqfSB0aGUgbWFwIHJlc29sdXRpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB6b29tVG9SZXNvbHV0aW9uKHpvb21MZXZlbCkge1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB6b29tTGV2ZWwgPT0gJ251bWJlcicpIHtcclxuICAgICAgICBpZiAoem9vbUxldmVsICUgMSA9PT0gMCAmJiB6b29tTGV2ZWwgPj0gMCAmJiB6b29tTGV2ZWwgPD0gMjgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIF96b29tUmVzTG9va3VwW3pvb21MZXZlbF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYGludmFsaWQgem9vbSBsZXZlbCBwcm92aWRlZDogJHt6b29tTGV2ZWx9YCk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxufVxyXG5ubS56b29tVG9SZXNvbHV0aW9uID0gem9vbVRvUmVzb2x1dGlvbjtcclxuXHJcblxyXG4vKipcclxuICogR2V0IHJlc29sdXRpb24gZnJvbSB0aGUgem9vbSBsZXZlbFxyXG4gKiBAcGFyYW0ge251bWJlcn0gcmVzb2x1dGlvbiAtIHRoZSByZXNvbHV0aW9uXHJcbiAqIEByZXR1cm5zIHtudW1iZXJ8Kn0gdGhlIHpvb20gbGV2ZWxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZXNvbHV0aW9uVG9ab29tKHJlc29sdXRpb24pe1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBfem9vbVJlc0xvb2t1cC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgaWYgKHJlc29sdXRpb24gPj0gX3pvb21SZXNMb29rdXBbaV0gKXtcclxuICAgICAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAwO1xyXG59XHJcblxyXG5ubS5yZXNvbHV0aW9uVG9ab29tID0gcmVzb2x1dGlvblRvWm9vbTtcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/zoomResolutionConvert.ts\n// module id = 14\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 12/16/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"../util/provide\");\r\nvar makeGuid_1 = require(\"../util/makeGuid\");\r\nvar mapMove_1 = require(\"../olHelpers/mapMove\");\r\nvar nm = provide_1.default('collections');\r\nvar $ = require(\"jquery\");\r\nvar LayerGroup = (function () {\r\n /**\r\n *\r\n * @param {object} [groupConfig={}] - group configuration object\r\n * @param {string} groupConfig.groupName - the group name\r\n * @param {boolean} [groupConfig.collapse=false] - if the group should be collapsed initially\r\n * @param {boolean} [groupConfig.addCheck=true] - if the group should have a checkbox controlling visibility of all layers\r\n * @param {LayerGroup} [parent=undefined] - the parent group\r\n */\r\n function LayerGroup(groupConfig, parent) {\r\n this.groupLayers = [];\r\n this.groupLayersLookup = {};\r\n this.groupGroups = [];\r\n this.groupGroupsLookup = {};\r\n this.itemIdArray = [];\r\n if (typeof groupConfig == 'undefined') {\r\n this.parent = null;\r\n this.groupId = 'root';\r\n this.groupName = 'root';\r\n this.allGroupLookup = { root: this };\r\n this.allGroupArray = [this];\r\n this.allLayerArray = [];\r\n this.allLayerLookup = {};\r\n this.layerParentLookup = {};\r\n this.collapse = false;\r\n this.addCheck = false;\r\n }\r\n else {\r\n this.groupId = makeGuid_1.default();\r\n this.parent = parent;\r\n this.groupName = groupConfig.groupName;\r\n this.collapse = typeof groupConfig.collapse == 'boolean' ? groupConfig.collapse : false;\r\n this.addCheck = typeof groupConfig.addCheck == 'boolean' ? groupConfig.addCheck : true;\r\n }\r\n }\r\n /**\r\n *\r\n * @param {object} groupConfig - configuration object\r\n * @param {string} groupConfig.groupName - the group name\r\n * @param {boolean} groupConfig.collapse if the group should be collapsed initially\r\n * @param {boolean} groupConfig.addCheck if the group should have a checkbox controlling visibility of all layers\r\n * @param {Array<LayerGroup>} parents parent groups\r\n * @returns {LayerGroup} the layer group just added\r\n */\r\n LayerGroup.prototype.addGroup = function (groupConfig, parents) {\r\n var parent;\r\n if (parents.length > 0) {\r\n parent = parents[parents.length - 1];\r\n }\r\n else {\r\n parent = 'root';\r\n }\r\n /**\r\n * @type {LayerGroup}\r\n */\r\n var parentGroup = this.allGroupLookup[parent];\r\n var newGroup = new LayerGroup(groupConfig, parentGroup);\r\n this.allGroupLookup[newGroup.groupId] = newGroup;\r\n this.allGroupArray.push(newGroup);\r\n parentGroup.groupGroups.push(newGroup);\r\n parentGroup.groupGroupsLookup[newGroup.groupId] = newGroup;\r\n if (parentGroup.itemIdArray.indexOf(newGroup.groupId) > 0) {\r\n console.log(newGroup.groupId);\r\n throw 'layer and group ids must be unique';\r\n }\r\n parentGroup.itemIdArray.push(newGroup.groupId);\r\n return newGroup;\r\n };\r\n /**\r\n *\r\n * @param {LayerBase} newLayer the layer to be added\r\n * @param {Array} parents array\r\n */\r\n LayerGroup.prototype.addLegendLayer = function (newLayer, parents) {\r\n var parent;\r\n if (parents.length > 0) {\r\n parent = parents[parents.length - 1];\r\n }\r\n else {\r\n parent = 'root';\r\n }\r\n this.allLayerLookup[newLayer.id] = newLayer;\r\n this.allLayerArray.push(newLayer);\r\n /**\r\n * @type {LayerGroup}\r\n */\r\n var parentGroup = this.allGroupLookup[parent];\r\n parentGroup.groupLayers.push(newLayer);\r\n parentGroup.groupLayersLookup[newLayer.id] = newLayer;\r\n if (parentGroup.itemIdArray.indexOf(newLayer.id) > 0) {\r\n console.log(newLayer.id);\r\n throw 'layer and group ids must be unique';\r\n }\r\n parentGroup.itemIdArray.push(newLayer.id);\r\n this.layerParentLookup[newLayer.id] = parentGroup;\r\n };\r\n LayerGroup.prototype.getLegendHtml = function (legendId, options) {\r\n var legendHtml = \"<ul id=\\\"\" + legendId + \"\\\" class=\\\"legend-container\\\">\";\r\n legendHtml += \"<li>\" + options.legendTitle + \"<input type=\\\"checkbox\\\" checked id=\\\"suppress-by-extent-\" + legendId + \"\\\" class=\\\"suppress-by-extent\\\">\" +\r\n (\"<label title=\\\"Suppress layers not visible at this zoom level\\\" for=\\\"suppress-by-extent-\" + legendId + \"\\\">\") +\r\n \"<span></span>\" +\r\n \"</label></li>\";\r\n legendHtml += this._buildLegend(this.itemIdArray, this, options.layerDivClasses) + '</ul>';\r\n return legendHtml;\r\n };\r\n /**\r\n * @param {Array} itemIds the items to process\r\n * @param {LayerGroup} theGroup new group\r\n * @param {Array} [layerDivClasses=[]] optional classes to apply to the layer divs\r\n * @static\r\n * @returns {string} html string\r\n */\r\n LayerGroup.prototype._buildLegend = function (itemIds, theGroup, layerDivClasses) {\r\n if (itemIds.length == 0) {\r\n return '';\r\n }\r\n var theHml = '';\r\n var itemId = itemIds[0];\r\n if (theGroup.groupLayersLookup[itemId]) {\r\n /**\r\n * @type {LayerBase}\r\n */\r\n var lyr = theGroup.groupLayersLookup[itemId];\r\n theHml += \"<li id=\\\"\" + lyr.id + \"-layer-li\\\" class=\\\"legend-layer-li \" + layerDivClasses.join(' ') + \"\\\">\" + lyr.getLegendDiv() + '</li>';\r\n }\r\n else if (theGroup.groupGroupsLookup[itemId]) {\r\n /**\r\n * type {LayerGroup}\r\n */\r\n var otherGroup = theGroup.groupGroupsLookup[itemId];\r\n theHml += \"<li>\";\r\n theHml += \"<div id=\\\"\" + otherGroup.groupId + \"-legend-layer-div\\\" \" +\r\n (\"class=\\\"legend-layer-group \" + layerDivClasses.join(' ') + \"\\\">\");\r\n if (otherGroup.addCheck) {\r\n theHml += \"<input type=\\\"checkbox\\\" checked id=\\\"\" + otherGroup.groupId + \"-group-chck\\\">\" +\r\n (\"<label for=\\\"\" + otherGroup.groupId + \"-group-chck\\\" title=\\\"Click arrow to expand or collapse\\\">\" + otherGroup.groupName + \"</label>\");\r\n }\r\n else {\r\n theHml += \"<label title=\\\"Click arrow to expand or collapse\\\">\" + otherGroup.groupName + \"</label>\";\r\n }\r\n theHml += \"<span title=\\\"Expand/Collapse\\\" class=\\\"layer-group-expander\";\r\n theHml += (otherGroup.collapse ? ' legend-layer-group-initial-collapse' : '') + \"\\\">\";\r\n theHml += otherGroup.collapse ? '▶' : '▼';\r\n theHml += '</span>';\r\n //parents.push(groupId);\r\n theHml += '<ul>' + this._buildLegend(otherGroup.itemIdArray, otherGroup, layerDivClasses) + '</ul>';\r\n theHml += '</div>';\r\n theHml += '</li>';\r\n }\r\n return theHml + this._buildLegend(itemIds.slice(1), theGroup, layerDivClasses);\r\n };\r\n return LayerGroup;\r\n}());\r\n/**\r\n * a wrapper to make a legend\r\n */\r\nvar LayerLegend = (function () {\r\n /**\r\n *\r\n * @param {Array} legendItems array of layers or objects with {groupName: {string}, collapse: {boolean}, addCheck: {boolean}, items: {Array}}\r\n * @param {string} divId the div where the legend should be added\r\n * @param {object} options for legend\r\n * @param {Array} [options.layerDivClasses=[]] optional array of classes to be applied to the layer legend divs for custom styling\r\n * @param {string} [options.legendTitle=Legend] the legend title\r\n * @param {boolean} [options.scaleDependent=true] if legend display is scale dependent\r\n */\r\n function LayerLegend(legendItems, divId, options) {\r\n for (var _i = 0, legendItems_1 = legendItems; _i < legendItems_1.length; _i++) {\r\n var i = legendItems_1[_i];\r\n if (typeof i == 'undefined') {\r\n throw 'undefined item passed in array to legend constructor';\r\n }\r\n }\r\n options = options || {};\r\n options.legendTitle = typeof options.legendTitle == 'string' ? options.legendTitle : 'Legend';\r\n options.scaleDependent = typeof options.scaleDependent == 'boolean' ? options.scaleDependent : true;\r\n options.layerDivClasses = options.layerDivClasses || [];\r\n // if legend display is scale dependent, make sure the mapMove object is initialized first\r\n if (options.scaleDependent) {\r\n mapMove_1.default.checkInit();\r\n }\r\n this.$divElement = $('#' + divId);\r\n this._legendItems = legendItems;\r\n this.layerGroup = new LayerGroup();\r\n this._buildTree(legendItems);\r\n this.legendId = makeGuid_1.default();\r\n this.$divElement.append(this.layerGroup.getLegendHtml(this.legendId, options));\r\n for (var _a = 0, _b = this.layerGroup.allLayerArray; _a < _b.length; _a++) {\r\n var l = _b[_a];\r\n l.applyCollapse();\r\n }\r\n var _this = this;\r\n //// if legend display is scale dependent, make sure the mapMove object is initialized first\r\n if (options.scaleDependent) {\r\n mapMove_1.default.checkInit();\r\n mapMove_1.default.addCallback(function (ext, zoom, evt) {\r\n if (typeof evt == 'undefined' || evt == 'change:resolution') {\r\n for (var _i = 0, _a = this.layerGroup.allLayerArray; _i < _a.length; _i++) {\r\n var lyr = _a[_i];\r\n var $lyrLi = $('#' + lyr.id + '-layer-li');\r\n if (zoom > lyr.maxZoom || zoom < lyr.minZoom) {\r\n $lyrLi.addClass('layer-not-visible');\r\n }\r\n else {\r\n $lyrLi.removeClass('layer-not-visible');\r\n }\r\n }\r\n }\r\n }, this, 100, true, 'legend1');\r\n }\r\n // <editor-fold desc=\"add event listeners\">\r\n this.$divElement.find(\".suppress-by-extent\").change(function () {\r\n var legendLayerLis = $('.legend-layer-li');\r\n if (this.checked) {\r\n legendLayerLis.removeClass('layer-force-show');\r\n }\r\n else {\r\n legendLayerLis.addClass('layer-force-show');\r\n }\r\n });\r\n this.$divElement.find('.legend-check').change(function () {\r\n var lyrId = this.id.replace('-legend-layer-check', '');\r\n _this.layerGroup.allLayerLookup[lyrId].visible = this.checked;\r\n });\r\n this.$divElement.find('.legend-layer-group > input[type=checkbox]').change(function () {\r\n $(this).siblings('ul').find('input[type=checkbox]').prop('checked', this.checked).trigger('change');\r\n });\r\n this.$divElement.find('.layer-group-expander').click(function () {\r\n var $this = $(this);\r\n $this.removeClass('legend-layer-group-initial-collapse');\r\n $this.siblings('ul').slideToggle();\r\n if ($this.hasClass('legend-layer-group-collapsed')) {\r\n $this.removeClass('legend-layer-group-collapsed');\r\n $this.html('▼');\r\n }\r\n else {\r\n $this.addClass('legend-layer-group-collapsed');\r\n $this.html('▶');\r\n }\r\n });\r\n this.$divElement.find('.legend-layer-group-initial-collapse').trigger('click');\r\n // </editor-fold>\r\n }\r\n /**\r\n * @param {Array} [legendItems=this._layerConfig] the legend items\r\n * @param {Array} [parents=[]] the ordered list of groups in which this item is a member\r\n * @private\r\n */\r\n LayerLegend.prototype._buildTree = function (legendItems, parents) {\r\n if (legendItems.length == 0) {\r\n return;\r\n }\r\n var oneItem = legendItems[0];\r\n //reset the parent if the item is in the base array\r\n if (this._legendItems.indexOf(oneItem) > -1 || typeof parents == 'undefined') {\r\n parents = [];\r\n }\r\n if (typeof oneItem['groupName'] !== 'undefined') {\r\n var groupItem = legendItems[0];\r\n var newGroup = this.layerGroup.addGroup(groupItem, parents);\r\n parents.push(newGroup.groupId);\r\n this._buildTree(groupItem.items, parents);\r\n }\r\n else {\r\n /**\r\n * @type {LayerBase}\r\n */\r\n var layerItem = legendItems[0];\r\n this.layerGroup.addLegendLayer(layerItem, parents);\r\n }\r\n this._buildTree(legendItems.slice(1), parents);\r\n };\r\n return LayerLegend;\r\n}());\r\nnm.LayerLegend = LayerLegend;\r\nexports.default = LayerLegend;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJMZWdlbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJMYXllckxlZ2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsMkNBQXNDO0FBQ3RDLDZDQUF3QztBQUN4QyxnREFBMkM7QUFFM0MsSUFBSSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNoQywwQkFBNkI7QUFFN0I7SUFpQkk7Ozs7Ozs7T0FPRztJQUNILG9CQUFZLFdBQVksRUFBRSxNQUFPO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUV0QixFQUFFLENBQUMsQ0FBQyxPQUFPLFdBQVcsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUIsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxrQkFBUSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBUSxXQUFXLENBQUMsUUFBUSxJQUFJLFNBQVMsR0FBRyxXQUFXLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN6RixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQVEsV0FBVyxDQUFDLFFBQVEsSUFBSSxTQUFTLEdBQUcsV0FBVyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDNUYsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILDZCQUFRLEdBQVIsVUFBUyxXQUFXLEVBQUUsT0FBTztRQUN6QixJQUFJLE1BQU0sQ0FBQztRQUNYLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQixNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNwQixDQUFDO1FBR0Q7O1dBRUc7UUFDSCxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLElBQUksUUFBUSxHQUFHLElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDakQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbEMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxRQUFRLENBQUM7UUFFM0QsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUIsTUFBTSxvQ0FBb0MsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRS9DLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxtQ0FBYyxHQUFkLFVBQWUsUUFBUSxFQUFFLE9BQU87UUFDNUIsSUFBSSxNQUFNLENBQUM7UUFDWCxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDcEIsQ0FBQztRQUVELElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUM1QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVsQzs7V0FFRztRQUNILElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFOUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDdEQsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDekIsTUFBTSxvQ0FBb0MsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxDQUFDO0lBRXRELENBQUM7SUFFRCxrQ0FBYSxHQUFiLFVBQWMsUUFBUSxFQUFFLE9BQU87UUFHM0IsSUFBSSxVQUFVLEdBQUcsY0FBVyxRQUFRLG1DQUE2QixDQUFDO1FBRWxFLFVBQVUsSUFBSSxTQUFPLE9BQU8sQ0FBQyxXQUFXLGlFQUF5RCxRQUFRLHFDQUErQjthQUNwSSw4RkFBeUYsUUFBUSxRQUFJLENBQUE7WUFDckcsZUFBZTtZQUNmLGVBQWUsQ0FBQztRQUVwQixVQUFVLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBRTNGLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGlDQUFZLEdBQVosVUFBYSxPQUFPLEVBQUUsUUFBUSxFQUFFLGVBQWU7UUFFM0MsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWhCLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4QixFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXJDOztlQUVHO1lBQ0gsSUFBSSxHQUFHLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdDLE1BQU0sSUFBSSxjQUFXLEdBQUcsQ0FBQyxFQUFFLDRDQUFxQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFJLEdBQUcsR0FBRyxDQUFDLFlBQVksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUdqSSxDQUFDO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUM7O2VBRUc7WUFDSCxJQUFJLFVBQVUsR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFcEQsTUFBTSxJQUFJLE1BQU0sQ0FBQztZQUNqQixNQUFNLElBQUksZUFBWSxVQUFVLENBQUMsT0FBTyx5QkFBcUI7aUJBQ3pELGlDQUE4QixlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFJLENBQUEsQ0FBQztZQUVoRSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDdEIsTUFBTSxJQUFJLDJDQUFzQyxVQUFVLENBQUMsT0FBTyxtQkFBZTtxQkFDN0Usa0JBQWUsVUFBVSxDQUFDLE9BQU8sa0VBQTBELFVBQVUsQ0FBQyxTQUFTLGFBQVUsQ0FBQSxDQUFDO1lBQ2xJLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDSixNQUFNLElBQUksd0RBQW9ELFVBQVUsQ0FBQyxTQUFTLGFBQVUsQ0FBQztZQUNqRyxDQUFDO1lBRUQsTUFBTSxJQUFJLDhEQUEyRCxDQUFDO1lBQ3RFLE1BQU0sSUFBSSxDQUFHLFVBQVUsQ0FBQyxRQUFRLEdBQUcsc0NBQXNDLEdBQUcsRUFBRSxTQUFJLENBQUM7WUFDbkYsTUFBTSxJQUFJLFVBQVUsQ0FBQyxRQUFRLEdBQUcsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUN0RCxNQUFNLElBQUksU0FBUyxDQUFDO1lBRXBCLHdCQUF3QjtZQUN4QixNQUFNLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsZUFBZSxDQUFDLEdBQUcsT0FBTyxDQUFDO1lBQ3BHLE1BQU0sSUFBSSxRQUFRLENBQUM7WUFDbkIsTUFBTSxJQUFJLE9BQU8sQ0FBQztRQUN0QixDQUFDO1FBRUQsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFDTCxpQkFBQztBQUFELENBQUMsQUFsTUQsSUFrTUM7QUFFRDs7R0FFRztBQUNIO0lBT0k7Ozs7Ozs7O09BUUc7SUFDSCxxQkFBWSxXQUFXLEVBQUUsS0FBSyxFQUFFLE9BQU87UUFDbkMsR0FBRyxDQUFDLENBQVUsVUFBVyxFQUFYLDJCQUFXLEVBQVgseUJBQVcsRUFBWCxJQUFXO1lBQXBCLElBQUksQ0FBQyxvQkFBQTtZQUNOLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQzFCLE1BQU0sc0RBQXNELENBQUM7WUFDakUsQ0FBQztTQUNKO1FBRUQsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFFeEIsT0FBTyxDQUFDLFdBQVcsR0FBRyxPQUFPLE9BQU8sQ0FBQyxXQUFXLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDO1FBQzlGLE9BQU8sQ0FBQyxjQUFjLEdBQUcsT0FBTyxPQUFPLENBQUMsY0FBYyxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUNwRyxPQUFPLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDO1FBRXhELDBGQUEwRjtRQUMxRixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUN6QixpQkFBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFFbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7UUFFaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBRW5DLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxrQkFBUSxFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRS9FLEdBQUcsQ0FBQyxDQUFVLFVBQTZCLEVBQTdCLEtBQUEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQTdCLGNBQTZCLEVBQTdCLElBQTZCO1lBQXRDLElBQUksQ0FBQyxTQUFBO1lBQ04sQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3JCO1FBRUQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLDRGQUE0RjtRQUM1RixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUN6QixpQkFBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBRXBCLGlCQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHO2dCQUV4QyxFQUFFLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxXQUFXLElBQUksR0FBRyxJQUFJLG1CQUFtQixDQUFDLENBQUMsQ0FBQztvQkFDMUQsR0FBRyxDQUFDLENBQVksVUFBNkIsRUFBN0IsS0FBQSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBN0IsY0FBNkIsRUFBN0IsSUFBNkI7d0JBQXhDLElBQUksR0FBRyxTQUFBO3dCQUNSLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxXQUFXLENBQUMsQ0FBQzt3QkFDM0MsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxPQUFPLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDOzRCQUMzQyxNQUFNLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7d0JBQ3pDLENBQUM7d0JBQUMsSUFBSSxDQUFDLENBQUM7NEJBQ0osTUFBTSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO3dCQUM1QyxDQUFDO3FCQUNKO2dCQUNMLENBQUM7WUFDTCxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUVELDJDQUEyQztRQUUzQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNoRCxJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUMzQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDZixjQUFjLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDbkQsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLGNBQWMsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNoRCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFHSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDMUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDbEUsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUN2RSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ2pELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQixLQUFLLENBQUMsV0FBVyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7WUFFekQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUVuQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQSxDQUFDO2dCQUNoRCxLQUFLLENBQUMsV0FBVyxDQUFDLDhCQUE4QixDQUFDLENBQUM7Z0JBQ2xELEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUIsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLEtBQUssQ0FBQyxRQUFRLENBQUMsOEJBQThCLENBQUMsQ0FBQztnQkFDL0MsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxQixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvRSxpQkFBaUI7SUFDckIsQ0FBQztJQUdEOzs7O09BSUc7SUFDSCxnQ0FBVSxHQUFWLFVBQVcsV0FBVyxFQUFFLE9BQVE7UUFFNUIsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sQ0FBQztRQUNYLENBQUM7UUFFRCxJQUFJLE9BQU8sR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFN0IsbURBQW1EO1FBQ25ELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLE9BQU8sT0FBTyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDM0UsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNqQixDQUFDO1FBRUQsRUFBRSxDQUFDLENBQUMsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztZQUM5QyxJQUFJLFNBQVMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzVELE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSjs7ZUFFRztZQUNILElBQUksU0FBUyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUUvQixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUwsa0JBQUM7QUFBRCxDQUFDLEFBbEpELElBa0pDO0FBRUQsRUFBRSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDN0Isa0JBQWUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTYvMjAxNS5cclxuICovXHJcblxyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFrZUd1aWQgZnJvbSAnLi4vdXRpbC9tYWtlR3VpZCc7XHJcbmltcG9ydCBtYXBNb3ZlIGZyb20gJy4uL29sSGVscGVycy9tYXBNb3ZlJztcclxuXHJcbmxldCBubSA9IHByb3ZpZGUoJ2NvbGxlY3Rpb25zJyk7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcblxyXG5jbGFzcyBMYXllckdyb3VwIHtcclxuICAgIGdyb3VwTGF5ZXJzOiBhbnk7XHJcbiAgICBncm91cExheWVyc0xvb2t1cDogYW55O1xyXG4gICAgZ3JvdXBHcm91cHNMb29rdXA6IGFueTtcclxuICAgIGdyb3VwR3JvdXBzOiBhbnk7XHJcbiAgICBpdGVtSWRBcnJheTogYW55O1xyXG4gICAgZ3JvdXBJZDogYW55O1xyXG4gICAgZ3JvdXBOYW1lOiBhbnk7XHJcbiAgICBhbGxMYXllckFycmF5OiBhbnk7XHJcbiAgICBwYXJlbnQ6IGFueTtcclxuICAgIGFsbEdyb3VwQXJyYXk6IGFueTtcclxuICAgIGFsbEdyb3VwTG9va3VwOiBhbnk7XHJcbiAgICBhbGxMYXllckxvb2t1cDogYW55O1xyXG4gICAgY29sbGFwc2U6IGFueTtcclxuICAgIGFkZENoZWNrOiBhbnk7XHJcbiAgICBsYXllclBhcmVudExvb2t1cDogYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbZ3JvdXBDb25maWc9e31dIC0gZ3JvdXAgY29uZmlndXJhdGlvbiBvYmplY3RcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBncm91cENvbmZpZy5ncm91cE5hbWUgLSB0aGUgZ3JvdXAgbmFtZVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZ3JvdXBDb25maWcuY29sbGFwc2U9ZmFsc2VdIC0gaWYgdGhlIGdyb3VwIHNob3VsZCBiZSBjb2xsYXBzZWQgaW5pdGlhbGx5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtncm91cENvbmZpZy5hZGRDaGVjaz10cnVlXSAtIGlmIHRoZSBncm91cCBzaG91bGQgaGF2ZSBhIGNoZWNrYm94IGNvbnRyb2xsaW5nIHZpc2liaWxpdHkgb2YgYWxsIGxheWVyc1xyXG4gICAgICogQHBhcmFtIHtMYXllckdyb3VwfSBbcGFyZW50PXVuZGVmaW5lZF0gLSB0aGUgcGFyZW50IGdyb3VwXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGdyb3VwQ29uZmlnPywgcGFyZW50Pykge1xyXG4gICAgICAgIHRoaXMuZ3JvdXBMYXllcnMgPSBbXTtcclxuICAgICAgICB0aGlzLmdyb3VwTGF5ZXJzTG9va3VwID0ge307XHJcbiAgICAgICAgdGhpcy5ncm91cEdyb3VwcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuZ3JvdXBHcm91cHNMb29rdXAgPSB7fTtcclxuICAgICAgICB0aGlzLml0ZW1JZEFycmF5ID0gW107XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgZ3JvdXBDb25maWcgPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnQgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLmdyb3VwSWQgPSAncm9vdCc7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBOYW1lID0gJ3Jvb3QnO1xyXG4gICAgICAgICAgICB0aGlzLmFsbEdyb3VwTG9va3VwID0ge3Jvb3Q6IHRoaXN9O1xyXG4gICAgICAgICAgICB0aGlzLmFsbEdyb3VwQXJyYXkgPSBbdGhpc107XHJcbiAgICAgICAgICAgIHRoaXMuYWxsTGF5ZXJBcnJheSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmFsbExheWVyTG9va3VwID0ge307XHJcbiAgICAgICAgICAgIHRoaXMubGF5ZXJQYXJlbnRMb29rdXAgPSB7fTtcclxuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmFkZENoZWNrID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cElkID0gbWFrZUd1aWQoKTtcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBOYW1lID0gZ3JvdXBDb25maWcuZ3JvdXBOYW1lO1xyXG4gICAgICAgICAgICB0aGlzLmNvbGxhcHNlID0gdHlwZW9mICBncm91cENvbmZpZy5jb2xsYXBzZSA9PSAnYm9vbGVhbicgPyBncm91cENvbmZpZy5jb2xsYXBzZSA6IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmFkZENoZWNrID0gdHlwZW9mICBncm91cENvbmZpZy5hZGRDaGVjayA9PSAnYm9vbGVhbicgPyBncm91cENvbmZpZy5hZGRDaGVjayA6IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBncm91cENvbmZpZyAtIGNvbmZpZ3VyYXRpb24gb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZ3JvdXBDb25maWcuZ3JvdXBOYW1lIC0gdGhlIGdyb3VwIG5hbWVcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZ3JvdXBDb25maWcuY29sbGFwc2UgaWYgdGhlIGdyb3VwIHNob3VsZCBiZSBjb2xsYXBzZWQgaW5pdGlhbGx5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGdyb3VwQ29uZmlnLmFkZENoZWNrIGlmIHRoZSBncm91cCBzaG91bGQgaGF2ZSBhIGNoZWNrYm94IGNvbnRyb2xsaW5nIHZpc2liaWxpdHkgb2YgYWxsIGxheWVyc1xyXG4gICAgICogQHBhcmFtIHtBcnJheTxMYXllckdyb3VwPn0gcGFyZW50cyBwYXJlbnQgZ3JvdXBzXHJcbiAgICAgKiBAcmV0dXJucyB7TGF5ZXJHcm91cH0gdGhlIGxheWVyIGdyb3VwIGp1c3QgYWRkZWRcclxuICAgICAqL1xyXG4gICAgYWRkR3JvdXAoZ3JvdXBDb25maWcsIHBhcmVudHMpIHtcclxuICAgICAgICBsZXQgcGFyZW50O1xyXG4gICAgICAgIGlmIChwYXJlbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50c1twYXJlbnRzLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHBhcmVudCA9ICdyb290JztcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAdHlwZSB7TGF5ZXJHcm91cH1cclxuICAgICAgICAgKi9cclxuICAgICAgICBsZXQgcGFyZW50R3JvdXAgPSB0aGlzLmFsbEdyb3VwTG9va3VwW3BhcmVudF07XHJcbiAgICAgICAgbGV0IG5ld0dyb3VwID0gbmV3IExheWVyR3JvdXAoZ3JvdXBDb25maWcsIHBhcmVudEdyb3VwKTtcclxuICAgICAgICB0aGlzLmFsbEdyb3VwTG9va3VwW25ld0dyb3VwLmdyb3VwSWRdID0gbmV3R3JvdXA7XHJcbiAgICAgICAgdGhpcy5hbGxHcm91cEFycmF5LnB1c2gobmV3R3JvdXApO1xyXG5cclxuICAgICAgICBwYXJlbnRHcm91cC5ncm91cEdyb3Vwcy5wdXNoKG5ld0dyb3VwKTtcclxuICAgICAgICBwYXJlbnRHcm91cC5ncm91cEdyb3Vwc0xvb2t1cFtuZXdHcm91cC5ncm91cElkXSA9IG5ld0dyb3VwO1xyXG5cclxuICAgICAgICBpZiAocGFyZW50R3JvdXAuaXRlbUlkQXJyYXkuaW5kZXhPZihuZXdHcm91cC5ncm91cElkKSA+IDApIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2cobmV3R3JvdXAuZ3JvdXBJZCk7XHJcbiAgICAgICAgICAgIHRocm93ICdsYXllciBhbmQgZ3JvdXAgaWRzIG11c3QgYmUgdW5pcXVlJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcGFyZW50R3JvdXAuaXRlbUlkQXJyYXkucHVzaChuZXdHcm91cC5ncm91cElkKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ld0dyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJCYXNlfSBuZXdMYXllciB0aGUgbGF5ZXIgdG8gYmUgYWRkZWRcclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHBhcmVudHMgYXJyYXlcclxuICAgICAqL1xyXG4gICAgYWRkTGVnZW5kTGF5ZXIobmV3TGF5ZXIsIHBhcmVudHMpIHtcclxuICAgICAgICBsZXQgcGFyZW50O1xyXG4gICAgICAgIGlmIChwYXJlbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50c1twYXJlbnRzLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHBhcmVudCA9ICdyb290JztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWxsTGF5ZXJMb29rdXBbbmV3TGF5ZXIuaWRdID0gbmV3TGF5ZXI7XHJcbiAgICAgICAgdGhpcy5hbGxMYXllckFycmF5LnB1c2gobmV3TGF5ZXIpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAdHlwZSB7TGF5ZXJHcm91cH1cclxuICAgICAgICAgKi9cclxuICAgICAgICBsZXQgcGFyZW50R3JvdXAgPSB0aGlzLmFsbEdyb3VwTG9va3VwW3BhcmVudF07XHJcblxyXG4gICAgICAgIHBhcmVudEdyb3VwLmdyb3VwTGF5ZXJzLnB1c2gobmV3TGF5ZXIpO1xyXG4gICAgICAgIHBhcmVudEdyb3VwLmdyb3VwTGF5ZXJzTG9va3VwW25ld0xheWVyLmlkXSA9IG5ld0xheWVyO1xyXG4gICAgICAgIGlmIChwYXJlbnRHcm91cC5pdGVtSWRBcnJheS5pbmRleE9mKG5ld0xheWVyLmlkKSA+IDApIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2cobmV3TGF5ZXIuaWQpO1xyXG4gICAgICAgICAgICB0aHJvdyAnbGF5ZXIgYW5kIGdyb3VwIGlkcyBtdXN0IGJlIHVuaXF1ZSc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBhcmVudEdyb3VwLml0ZW1JZEFycmF5LnB1c2gobmV3TGF5ZXIuaWQpO1xyXG5cclxuICAgICAgICB0aGlzLmxheWVyUGFyZW50TG9va3VwW25ld0xheWVyLmlkXSA9IHBhcmVudEdyb3VwO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBnZXRMZWdlbmRIdG1sKGxlZ2VuZElkLCBvcHRpb25zKSB7XHJcblxyXG5cclxuICAgICAgICBsZXQgbGVnZW5kSHRtbCA9IGA8dWwgaWQ9XCIke2xlZ2VuZElkfVwiIGNsYXNzPVwibGVnZW5kLWNvbnRhaW5lclwiPmA7XHJcblxyXG4gICAgICAgIGxlZ2VuZEh0bWwgKz0gYDxsaT4ke29wdGlvbnMubGVnZW5kVGl0bGV9PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNoZWNrZWQgaWQ9XCJzdXBwcmVzcy1ieS1leHRlbnQtJHtsZWdlbmRJZH1cIiBjbGFzcz1cInN1cHByZXNzLWJ5LWV4dGVudFwiPmAgK1xyXG4gICAgICAgICAgICBgPGxhYmVsIHRpdGxlPVwiU3VwcHJlc3MgbGF5ZXJzIG5vdCB2aXNpYmxlIGF0IHRoaXMgem9vbSBsZXZlbFwiIGZvcj1cInN1cHByZXNzLWJ5LWV4dGVudC0ke2xlZ2VuZElkfVwiPmAgK1xyXG4gICAgICAgICAgICBgPHNwYW4+PC9zcGFuPmAgK1xyXG4gICAgICAgICAgICBgPC9sYWJlbD48L2xpPmA7XHJcblxyXG4gICAgICAgIGxlZ2VuZEh0bWwgKz0gdGhpcy5fYnVpbGRMZWdlbmQodGhpcy5pdGVtSWRBcnJheSwgdGhpcywgb3B0aW9ucy5sYXllckRpdkNsYXNzZXMpICsgJzwvdWw+JztcclxuXHJcbiAgICAgICAgcmV0dXJuIGxlZ2VuZEh0bWw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBpdGVtSWRzIHRoZSBpdGVtcyB0byBwcm9jZXNzXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyR3JvdXB9IHRoZUdyb3VwIG5ldyBncm91cFxyXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2xheWVyRGl2Q2xhc3Nlcz1bXV0gb3B0aW9uYWwgY2xhc3NlcyB0byBhcHBseSB0byB0aGUgbGF5ZXIgZGl2c1xyXG4gICAgICogQHN0YXRpY1xyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gaHRtbCBzdHJpbmdcclxuICAgICAqL1xyXG4gICAgX2J1aWxkTGVnZW5kKGl0ZW1JZHMsIHRoZUdyb3VwLCBsYXllckRpdkNsYXNzZXMpIHtcclxuXHJcbiAgICAgICAgaWYgKGl0ZW1JZHMubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHRoZUhtbCA9ICcnO1xyXG5cclxuICAgICAgICBsZXQgaXRlbUlkID0gaXRlbUlkc1swXTtcclxuXHJcbiAgICAgICAgaWYgKHRoZUdyb3VwLmdyb3VwTGF5ZXJzTG9va3VwW2l0ZW1JZF0pIHtcclxuXHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBAdHlwZSB7TGF5ZXJCYXNlfVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgbGV0IGx5ciA9IHRoZUdyb3VwLmdyb3VwTGF5ZXJzTG9va3VwW2l0ZW1JZF07XHJcbiAgICAgICAgICAgIHRoZUhtbCArPSBgPGxpIGlkPVwiJHtseXIuaWR9LWxheWVyLWxpXCIgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbGkgJHtsYXllckRpdkNsYXNzZXMuam9pbignICcpfVwiPmAgKyBseXIuZ2V0TGVnZW5kRGl2KCkgKyAnPC9saT4nO1xyXG5cclxuXHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGVHcm91cC5ncm91cEdyb3Vwc0xvb2t1cFtpdGVtSWRdKSB7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiB0eXBlIHtMYXllckdyb3VwfVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgbGV0IG90aGVyR3JvdXAgPSB0aGVHcm91cC5ncm91cEdyb3Vwc0xvb2t1cFtpdGVtSWRdO1xyXG5cclxuICAgICAgICAgICAgdGhlSG1sICs9IGA8bGk+YDtcclxuICAgICAgICAgICAgdGhlSG1sICs9IGA8ZGl2IGlkPVwiJHtvdGhlckdyb3VwLmdyb3VwSWR9LWxlZ2VuZC1sYXllci1kaXZcIiBgICtcclxuICAgICAgICAgICAgICAgIGBjbGFzcz1cImxlZ2VuZC1sYXllci1ncm91cCAgJHtsYXllckRpdkNsYXNzZXMuam9pbignICcpfVwiPmA7XHJcblxyXG4gICAgICAgICAgICBpZiAob3RoZXJHcm91cC5hZGRDaGVjaykge1xyXG4gICAgICAgICAgICAgICAgdGhlSG1sICs9IGA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2hlY2tlZCBpZD1cIiR7b3RoZXJHcm91cC5ncm91cElkfS1ncm91cC1jaGNrXCI+YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYDxsYWJlbCBmb3I9XCIke290aGVyR3JvdXAuZ3JvdXBJZH0tZ3JvdXAtY2hja1wiIHRpdGxlPVwiQ2xpY2sgYXJyb3cgdG8gZXhwYW5kIG9yIGNvbGxhcHNlXCI+JHtvdGhlckdyb3VwLmdyb3VwTmFtZX08L2xhYmVsPmA7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGVIbWwgKz0gYDxsYWJlbCB0aXRsZT1cIkNsaWNrIGFycm93IHRvIGV4cGFuZCBvciBjb2xsYXBzZVwiPiR7b3RoZXJHcm91cC5ncm91cE5hbWV9PC9sYWJlbD5gO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGVIbWwgKz0gYDxzcGFuIHRpdGxlPVwiRXhwYW5kL0NvbGxhcHNlXCIgY2xhc3M9XCJsYXllci1ncm91cC1leHBhbmRlcmA7XHJcbiAgICAgICAgICAgIHRoZUhtbCArPSBgJHtvdGhlckdyb3VwLmNvbGxhcHNlID8gJyBsZWdlbmQtbGF5ZXItZ3JvdXAtaW5pdGlhbC1jb2xsYXBzZScgOiAnJ31cIj5gO1xyXG4gICAgICAgICAgICB0aGVIbWwgKz0gb3RoZXJHcm91cC5jb2xsYXBzZSA/ICcmIzk2NTQ7JyA6ICcmIzk2NjA7JztcclxuICAgICAgICAgICAgdGhlSG1sICs9ICc8L3NwYW4+JztcclxuXHJcbiAgICAgICAgICAgIC8vcGFyZW50cy5wdXNoKGdyb3VwSWQpO1xyXG4gICAgICAgICAgICB0aGVIbWwgKz0gJzx1bD4nICsgdGhpcy5fYnVpbGRMZWdlbmQob3RoZXJHcm91cC5pdGVtSWRBcnJheSwgb3RoZXJHcm91cCwgbGF5ZXJEaXZDbGFzc2VzKSArICc8L3VsPic7XHJcbiAgICAgICAgICAgIHRoZUhtbCArPSAnPC9kaXY+JztcclxuICAgICAgICAgICAgdGhlSG1sICs9ICc8L2xpPic7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhlSG1sICsgdGhpcy5fYnVpbGRMZWdlbmQoaXRlbUlkcy5zbGljZSgxKSwgdGhlR3JvdXAsIGxheWVyRGl2Q2xhc3Nlcyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBhIHdyYXBwZXIgdG8gbWFrZSBhIGxlZ2VuZFxyXG4gKi9cclxuY2xhc3MgTGF5ZXJMZWdlbmQge1xyXG5cclxuICAgICRkaXZFbGVtZW50OiBhbnk7XHJcbiAgICBfbGVnZW5kSXRlbXM6IGFueTtcclxuICAgIGxheWVyR3JvdXA6IGFueTtcclxuICAgIGxlZ2VuZElkOiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtBcnJheX0gbGVnZW5kSXRlbXMgYXJyYXkgb2YgbGF5ZXJzIG9yIG9iamVjdHMgd2l0aCB7Z3JvdXBOYW1lOiAge3N0cmluZ30sIGNvbGxhcHNlOiB7Ym9vbGVhbn0sIGFkZENoZWNrOiB7Ym9vbGVhbn0sIGl0ZW1zOiB7QXJyYXl9fVxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGRpdklkIHRoZSBkaXYgd2hlcmUgdGhlIGxlZ2VuZCBzaG91bGQgYmUgYWRkZWRcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIGZvciBsZWdlbmRcclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtvcHRpb25zLmxheWVyRGl2Q2xhc3Nlcz1bXV0gb3B0aW9uYWwgYXJyYXkgb2YgY2xhc3NlcyB0byBiZSBhcHBsaWVkIHRvIHRoZSBsYXllciBsZWdlbmQgZGl2cyBmb3IgY3VzdG9tIHN0eWxpbmdcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5sZWdlbmRUaXRsZT1MZWdlbmRdIHRoZSBsZWdlbmQgdGl0bGVcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuc2NhbGVEZXBlbmRlbnQ9dHJ1ZV0gaWYgbGVnZW5kIGRpc3BsYXkgaXMgc2NhbGUgZGVwZW5kZW50XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGxlZ2VuZEl0ZW1zLCBkaXZJZCwgb3B0aW9ucykge1xyXG4gICAgICAgIGZvciAobGV0IGkgb2YgbGVnZW5kSXRlbXMpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBpID09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyAndW5kZWZpbmVkIGl0ZW0gcGFzc2VkIGluIGFycmF5IHRvIGxlZ2VuZCBjb25zdHJ1Y3Rvcic7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xyXG5cclxuICAgICAgICBvcHRpb25zLmxlZ2VuZFRpdGxlID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kVGl0bGUgPT0gJ3N0cmluZycgPyBvcHRpb25zLmxlZ2VuZFRpdGxlIDogJ0xlZ2VuZCc7XHJcbiAgICAgICAgb3B0aW9ucy5zY2FsZURlcGVuZGVudCA9IHR5cGVvZiBvcHRpb25zLnNjYWxlRGVwZW5kZW50ID09ICdib29sZWFuJyA/IG9wdGlvbnMuc2NhbGVEZXBlbmRlbnQgOiB0cnVlO1xyXG4gICAgICAgIG9wdGlvbnMubGF5ZXJEaXZDbGFzc2VzID0gb3B0aW9ucy5sYXllckRpdkNsYXNzZXMgfHwgW107XHJcblxyXG4gICAgICAgIC8vIGlmIGxlZ2VuZCBkaXNwbGF5IGlzIHNjYWxlIGRlcGVuZGVudCwgbWFrZSBzdXJlIHRoZSBtYXBNb3ZlIG9iamVjdCBpcyBpbml0aWFsaXplZCBmaXJzdFxyXG4gICAgICAgIGlmIChvcHRpb25zLnNjYWxlRGVwZW5kZW50KSB7XHJcbiAgICAgICAgICAgIG1hcE1vdmUuY2hlY2tJbml0KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLiRkaXZFbGVtZW50ID0gJCgnIycgKyBkaXZJZCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZEl0ZW1zID0gbGVnZW5kSXRlbXM7XHJcblxyXG4gICAgICAgIHRoaXMubGF5ZXJHcm91cCA9IG5ldyBMYXllckdyb3VwKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2J1aWxkVHJlZShsZWdlbmRJdGVtcyk7XHJcblxyXG4gICAgICAgIHRoaXMubGVnZW5kSWQgPSBtYWtlR3VpZCgpO1xyXG5cclxuICAgICAgICB0aGlzLiRkaXZFbGVtZW50LmFwcGVuZCh0aGlzLmxheWVyR3JvdXAuZ2V0TGVnZW5kSHRtbCh0aGlzLmxlZ2VuZElkLCBvcHRpb25zKSk7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGwgb2YgdGhpcy5sYXllckdyb3VwLmFsbExheWVyQXJyYXkpe1xyXG4gICAgICAgICAgICBsLmFwcGx5Q29sbGFwc2UoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgLy8vLyBpZiBsZWdlbmQgZGlzcGxheSBpcyBzY2FsZSBkZXBlbmRlbnQsIG1ha2Ugc3VyZSB0aGUgbWFwTW92ZSBvYmplY3QgaXMgaW5pdGlhbGl6ZWQgZmlyc3RcclxuICAgICAgICBpZiAob3B0aW9ucy5zY2FsZURlcGVuZGVudCkge1xyXG4gICAgICAgICAgICBtYXBNb3ZlLmNoZWNrSW5pdCgpO1xyXG5cclxuICAgICAgICAgICAgbWFwTW92ZS5hZGRDYWxsYmFjayhmdW5jdGlvbiAoZXh0LCB6b29tLCBldnQpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGV2dCA9PSAndW5kZWZpbmVkJyB8fCBldnQgPT0gJ2NoYW5nZTpyZXNvbHV0aW9uJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGx5ciBvZiB0aGlzLmxheWVyR3JvdXAuYWxsTGF5ZXJBcnJheSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgJGx5ckxpID0gJCgnIycgKyBseXIuaWQgKyAnLWxheWVyLWxpJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh6b29tID4gbHlyLm1heFpvb20gfHwgem9vbSA8IGx5ci5taW5ab29tKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbHlyTGkuYWRkQ2xhc3MoJ2xheWVyLW5vdC12aXNpYmxlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbHlyTGkucmVtb3ZlQ2xhc3MoJ2xheWVyLW5vdC12aXNpYmxlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sIHRoaXMsIDEwMCwgdHJ1ZSwgJ2xlZ2VuZDEnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIDxlZGl0b3ItZm9sZCBkZXNjPVwiYWRkIGV2ZW50IGxpc3RlbmVyc1wiPlxyXG5cclxuICAgICAgICB0aGlzLiRkaXZFbGVtZW50LmZpbmQoXCIuc3VwcHJlc3MtYnktZXh0ZW50XCIpLmNoYW5nZShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGxldCBsZWdlbmRMYXllckxpcyA9ICQoJy5sZWdlbmQtbGF5ZXItbGknKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tlZCkge1xyXG4gICAgICAgICAgICAgICAgbGVnZW5kTGF5ZXJMaXMucmVtb3ZlQ2xhc3MoJ2xheWVyLWZvcmNlLXNob3cnKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGxlZ2VuZExheWVyTGlzLmFkZENsYXNzKCdsYXllci1mb3JjZS1zaG93Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuJGRpdkVsZW1lbnQuZmluZCgnLmxlZ2VuZC1jaGVjaycpLmNoYW5nZShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGxldCBseXJJZCA9IHRoaXMuaWQucmVwbGFjZSgnLWxlZ2VuZC1sYXllci1jaGVjaycsICcnKTtcclxuICAgICAgICAgICAgX3RoaXMubGF5ZXJHcm91cC5hbGxMYXllckxvb2t1cFtseXJJZF0udmlzaWJsZSA9IHRoaXMuY2hlY2tlZDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy4kZGl2RWxlbWVudC5maW5kKCcubGVnZW5kLWxheWVyLWdyb3VwID4gaW5wdXRbdHlwZT1jaGVja2JveF0nKS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAkKHRoaXMpLnNpYmxpbmdzKCd1bCcpLmZpbmQoJ2lucHV0W3R5cGU9Y2hlY2tib3hdJykucHJvcCgnY2hlY2tlZCcsIHRoaXMuY2hlY2tlZCkudHJpZ2dlcignY2hhbmdlJyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuJGRpdkVsZW1lbnQuZmluZCgnLmxheWVyLWdyb3VwLWV4cGFuZGVyJykuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBsZXQgJHRoaXMgPSAkKHRoaXMpO1xyXG4gICAgICAgICAgICAkdGhpcy5yZW1vdmVDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWluaXRpYWwtY29sbGFwc2UnKTtcclxuXHJcbiAgICAgICAgICAgICR0aGlzLnNpYmxpbmdzKCd1bCcpLnNsaWRlVG9nZ2xlKCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoJHRoaXMuaGFzQ2xhc3MoJ2xlZ2VuZC1sYXllci1ncm91cC1jb2xsYXBzZWQnKSl7XHJcbiAgICAgICAgICAgICAgICAkdGhpcy5yZW1vdmVDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpO1xyXG4gICAgICAgICAgICAgICAgJHRoaXMuaHRtbCgnJiM5NjYwOycpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgJHRoaXMuYWRkQ2xhc3MoJ2xlZ2VuZC1sYXllci1ncm91cC1jb2xsYXBzZWQnKTtcclxuICAgICAgICAgICAgICAgICR0aGlzLmh0bWwoJyYjOTY1NDsnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLiRkaXZFbGVtZW50LmZpbmQoJy5sZWdlbmQtbGF5ZXItZ3JvdXAtaW5pdGlhbC1jb2xsYXBzZScpLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgLy8gPC9lZGl0b3ItZm9sZD5cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbbGVnZW5kSXRlbXM9dGhpcy5fbGF5ZXJDb25maWddIHRoZSBsZWdlbmQgaXRlbXNcclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtwYXJlbnRzPVtdXSB0aGUgb3JkZXJlZCBsaXN0IG9mIGdyb3VwcyBpbiB3aGljaCB0aGlzIGl0ZW0gaXMgYSBtZW1iZXJcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIF9idWlsZFRyZWUobGVnZW5kSXRlbXMsIHBhcmVudHM/KSB7XHJcblxyXG4gICAgICAgIGlmIChsZWdlbmRJdGVtcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgb25lSXRlbSA9IGxlZ2VuZEl0ZW1zWzBdO1xyXG5cclxuICAgICAgICAvL3Jlc2V0IHRoZSBwYXJlbnQgaWYgdGhlIGl0ZW0gaXMgaW4gdGhlIGJhc2UgYXJyYXlcclxuICAgICAgICBpZiAodGhpcy5fbGVnZW5kSXRlbXMuaW5kZXhPZihvbmVJdGVtKSA+IC0xIHx8IHR5cGVvZiBwYXJlbnRzID09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIHBhcmVudHMgPSBbXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb25lSXRlbVsnZ3JvdXBOYW1lJ10gIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIGxldCBncm91cEl0ZW0gPSBsZWdlbmRJdGVtc1swXTtcclxuICAgICAgICAgICAgbGV0IG5ld0dyb3VwID0gdGhpcy5sYXllckdyb3VwLmFkZEdyb3VwKGdyb3VwSXRlbSwgcGFyZW50cyk7XHJcbiAgICAgICAgICAgIHBhcmVudHMucHVzaChuZXdHcm91cC5ncm91cElkKTtcclxuICAgICAgICAgICAgdGhpcy5fYnVpbGRUcmVlKGdyb3VwSXRlbS5pdGVtcywgcGFyZW50cyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEB0eXBlIHtMYXllckJhc2V9XHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBsZXQgbGF5ZXJJdGVtID0gbGVnZW5kSXRlbXNbMF07XHJcblxyXG4gICAgICAgICAgICB0aGlzLmxheWVyR3JvdXAuYWRkTGVnZW5kTGF5ZXIobGF5ZXJJdGVtLCBwYXJlbnRzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2J1aWxkVHJlZShsZWdlbmRJdGVtcy5zbGljZSgxKSwgcGFyZW50cyk7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5ubS5MYXllckxlZ2VuZCA9IExheWVyTGVnZW5kO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckxlZ2VuZDtcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/collections/LayerLegend.ts\n// module id = 16\n// module chunks = 1 3","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar LayerBase_1 = require(\"./LayerBase\");\r\nvar mapMove_1 = require(\"../olHelpers/mapMove\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('layers');\r\n/**\r\n * The Vector layer base\r\n * @augments LayerBase\r\n * @abstract\r\n */\r\nvar LayerBaseVector = (function (_super) {\r\n __extends(LayerBaseVector, _super);\r\n /**\r\n * The base vector layer\r\n * @param {string} url - pass an empty string to prevent default load and add from a json 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 *\r\n * @param {boolean} [options.autoLoad=false] if the layer should auto load if not visible\r\n * @param {object} [options.style=undefined] the layer style, use openlayers default style if not defined\r\n * @param {boolean} [options.onDemand=false] if the layer should be loaded by extent on map move\r\n * @param {number} [options.onDemandDelay=300] delay before the map move callback should be called\r\n * @param {mapMoveMakeGetParams} [options.mapMoveMakeGetParams=function(lyr, extent, zoomLevel){}] function to create additional map move params\r\n * @param {MapMoveCls} [options.mapMoveObj=mapMove] alternate map move object for use with multi map pages\r\n *\r\n */\r\n function LayerBaseVector(url, options) {\r\n if (options === void 0) { options = {}; }\r\n var _this = _super.call(this, url, options) || this;\r\n options = options;\r\n //prevent regular load if no url has been provided\r\n if (_this.url.trim() == '') {\r\n _this._loaded = true;\r\n }\r\n _this._style = typeof options.style == 'undefined' ? undefined : options.style;\r\n if (_this.visible) {\r\n _this._autoLoad = true;\r\n }\r\n else {\r\n _this._autoLoad = (typeof options['autoLoad'] == 'boolean' ? options['autoLoad'] : false);\r\n }\r\n _this._onDemand = typeof options.onDemand == 'boolean' ? options.onDemand : false;\r\n _this._onDemandDelay = typeof options.onDemandDelay == 'number' ? options.onDemandDelay : 300;\r\n if (options.mapMoveObj) {\r\n _this._mapMove = options.mapMoveObj;\r\n }\r\n else {\r\n _this._mapMove = _this._onDemand ? mapMove_1.default : undefined;\r\n }\r\n _this._mapMoveMakeGetParams = typeof options.mapMoveMakeGetParams == 'function' ? options.mapMoveMakeGetParams :\r\n function () { return {}; };\r\n if (_this._onDemand) {\r\n _this._loaded = true;\r\n _this._mapMoveParams = {};\r\n _this._mapMove.checkInit();\r\n _this._mapMove.addVectorLayer(_this);\r\n }\r\n _this._source = new ol.source.Vector();\r\n _this._olLayer = new ol.layer.Vector({\r\n source: _this._source,\r\n visible: _this.visible,\r\n style: _this.style,\r\n minResolution: _this._minResolution,\r\n maxResolution: _this._maxResolution,\r\n renderOrder: options.renderOrder\r\n });\r\n _this.olLayer.setZIndex(_this._zIndex);\r\n _this._projectionMap = null;\r\n _this._projection4326 = new ol.proj.Projection({ code: \"EPSG:4326\" });\r\n return _this;\r\n }\r\n /**\r\n * dummy to be overridden\r\n * @param {object} featureCollection - geojson or esrijson object\r\n */\r\n LayerBaseVector.prototype.addFeatures = function (featureCollection) {\r\n console.log('Layer vector base addFeatures is a placeholder and does nothing');\r\n };\r\n /**\r\n * Before call to map move callback, can prevent call by returning false\r\n * @param {number} zoom - zoom level\r\n * @param {string} [evtType=undefined] undefined for initial load, otherwise one of 'change:center', 'change:resolution'\r\n * @returns {boolean} if the call should proceed\r\n */\r\n LayerBaseVector.prototype.mapMoveBefore = function (zoom, evtType) {\r\n if (this.minZoom !== undefined) {\r\n if (zoom < this.minZoom) {\r\n return false;\r\n }\r\n }\r\n if (this.maxZoom !== undefined) {\r\n if (zoom > this.maxZoom) {\r\n return false;\r\n }\r\n }\r\n return this.visible;\r\n };\r\n /**\r\n * callback to generate the parameters passed in the get request\r\n * @param {object} extent - extent object\r\n * @param {number} extent.minX - minX\r\n * @param {number} extent.minY - minY\r\n * @param {number} extent.maxX - maxX\r\n * @param {number} extent.maxY - maxY\r\n * @param {number} zoomLevel - zoom level\r\n */\r\n LayerBaseVector.prototype.mapMoveMakeGetParams = function (extent, zoomLevel) {\r\n this._mapMoveParams = {};\r\n $.extend(this._mapMoveParams, this.params);\r\n $.extend(this._mapMoveParams, this._mapMoveMakeGetParams(this, extent, zoomLevel));\r\n };\r\n /**\r\n * callback function on map move\r\n * @param {object} d - the json response\r\n */\r\n LayerBaseVector.prototype.mapMoveCallback = function (d) {\r\n if (this.source) {\r\n this._source.clear();\r\n }\r\n };\r\n /**\r\n * clear features in the layer\r\n */\r\n LayerBaseVector.prototype.clear = function () {\r\n if (this._source) {\r\n this._source.clear();\r\n }\r\n };\r\n Object.defineProperty(LayerBaseVector.prototype, \"onDemandDelay\", {\r\n /**\r\n * get on demand delay in miliseconds\r\n */\r\n get: function () {\r\n return this._onDemandDelay;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"autoLoad\", {\r\n /**\r\n * get if the layer is autoloaded\r\n */\r\n get: function () {\r\n return this._autoLoad;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"style\", {\r\n /**\r\n * get the style definition\r\n */\r\n get: function () {\r\n return this._style;\r\n },\r\n /**\r\n * set the style\r\n * @param style - the style or function\r\n */\r\n set: function (style) {\r\n this._style = style;\r\n this.olLayer.setStyle(this._style);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"mapCrs\", {\r\n /**\r\n * get the map CRS if it is defined by the map move object\r\n */\r\n get: function () {\r\n return this.mapProj == null ? null : this.mapProj.getCode();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"mapProj\", {\r\n get: function () {\r\n if (this._projectionMap != null) {\r\n return this._projectionMap;\r\n }\r\n if (this._mapMove) {\r\n this._projectionMap = this._mapMove.map.getView().getProjection();\r\n return this._projectionMap;\r\n }\r\n else {\r\n return null;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"mapMove\", {\r\n /**\r\n * get the map move object\r\n * @type {MapMoveCls|*}\r\n */\r\n get: function () {\r\n return this._mapMove;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"mapMoveParams\", {\r\n /**\r\n * map move params\r\n * @type {object}\r\n */\r\n get: function () {\r\n return this._mapMoveParams;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"visible\", {\r\n get: function () {\r\n return this._visible;\r\n },\r\n /**\r\n * Set the layer visibility\r\n * @type {boolean}\r\n * @override\r\n */\r\n set: function (visibility) {\r\n _super.prototype.setVisible.call(this, visibility);\r\n if (this._onDemand) {\r\n this.mapMove.triggerLyrLoad(this);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"source\", {\r\n /**\r\n * get the layer vector source\r\n * @override\r\n */\r\n get: function () {\r\n return this.getSource();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"features\", {\r\n /**\r\n * array of ol features\r\n */\r\n get: function () {\r\n return this.source.getFeatures();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBaseVector.prototype, \"olLayer\", {\r\n /**\r\n *\r\n */\r\n get: function () {\r\n return _super.prototype.getOlLayer.call(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LayerBaseVector.prototype.setZIndex = function (newZ) {\r\n this.olLayer.setZIndex(newZ);\r\n };\r\n return LayerBaseVector;\r\n}(LayerBase_1.LayerBase));\r\nexports.LayerBaseVector = LayerBaseVector;\r\nnm.LayerBaseVector = LayerBaseVector;\r\nexports.default = LayerBaseVector;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJCYXNlVmVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJCYXNlVmVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHlDQUF3RDtBQUN4RCxnREFBMkM7QUFFM0MsMkNBQXNDO0FBQ3RDLDhCQUFpQztBQUNqQywwQkFBNkI7QUFFN0IsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQTRCN0I7Ozs7R0FJRztBQUNIO0lBQXFDLG1DQUFTO0lBZTFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F3Qkc7SUFDSCx5QkFBWSxHQUFXLEVBQUUsT0FBb0M7UUFBcEMsd0JBQUEsRUFBQSxZQUFvQztRQUE3RCxZQUNJLGtCQUFNLEdBQUcsRUFBRSxPQUFPLENBQUMsU0F3RHRCO1FBdERHLE9BQU8sR0FBRyxPQUFpQyxDQUFDO1FBRTVDLGtEQUFrRDtRQUNsRCxFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEIsS0FBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQztRQUVELEtBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxPQUFPLENBQUMsS0FBSyxJQUFJLFdBQVcsR0FBRyxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUU5RSxFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNmLEtBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzFCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLEtBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQzdGLENBQUM7UUFFRCxLQUFJLENB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QUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QyxDQUFDO1FBQ0wsQ0FBQzs7O09BYkE7SUFtQkQsc0JBQUksbUNBQU07UUFKVjs7O1dBR0c7YUFDSDtZQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFzQixDQUFDO1FBQ2hELENBQUM7OztPQUFBO0lBS0Qsc0JBQUkscUNBQVE7UUFIWjs7V0FFRzthQUNIO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckMsQ0FBQzs7O09BQUE7SUFLRCxzQkFBSSxvQ0FBTztRQUhYOztXQUVHO2FBQ0g7WUFDSSxNQUFNLENBQUMsaUJBQU0sVUFBVSxXQUFxQixDQUFDO1FBQ2pELENBQUM7OztPQUFBO0lBRVMsbUNBQVMsR0FBbkIsVUFBb0IsSUFBWTtRQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0wsc0JBQUM7QUFBRCxDQUFDLEFBaFJELENBQXFDLHFCQUFTLEdBZ1I3QztBQWhSWSwwQ0FBZTtBQWtSNUIsRUFBRSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7QUFDckMsa0JBQWUsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMYXllckJhc2UsIExheWVyQmFzZU9wdGlvbnN9IGZyb20gJy4vTGF5ZXJCYXNlJztcclxuaW1wb3J0IG1hcE1vdmUgZnJvbSAnLi4vb2xIZWxwZXJzL21hcE1vdmUnO1xyXG5pbXBvcnQgTWFwTW92ZUNscyBmcm9tICcuLi9vbEhlbHBlcnMvbWFwTW92ZUNscydcclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcblxyXG5jb25zdCBubSA9IHByb3ZpZGUoJ2xheWVycycpO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBtYWtlTWFwTW92ZVBhcmFtcyB7XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gbHlyXHJcbiAgICAgKiBAcGFyYW0gZXh0ZW50XHJcbiAgICAgKiBAcGFyYW0gem9vbUxldmVsXHJcbiAgICAgKi9cclxuICAgIChseXI6IExheWVyQmFzZVZlY3RvciwgZXh0ZW50OiBBcnJheTxudW1iZXI+LCB6b29tTGV2ZWw/OiBudW1iZXIpOiBhbnlcclxufVxyXG5cclxuXHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckJhc2VWZWN0b3JPcHRpb25zIGV4dGVuZHMgTGF5ZXJCYXNlT3B0aW9uc3tcclxuICAgIGF1dG9Mb2FkPzogYm9vbGVhbjtcclxuICAgIHN0eWxlPzogb2wuc3R5bGUuU3R5bGV8QXJyYXk8b2wuc3R5bGUuU3R5bGU+fG9sLlN0eWxlRnVuY3Rpb247XHJcbiAgICBvbkRlbWFuZD86IGJvb2xlYW47XHJcbiAgICBvbkRlbWFuZERlbGF5PzogbnVtYmVyO1xyXG4gICAgbWFwTW92ZU1ha2VHZXRQYXJhbXM/OiBtYWtlTWFwTW92ZVBhcmFtcztcclxuICAgIG1hcE1vdmVPYmo/OiBNYXBNb3ZlQ2xzO1xyXG4gICAgcmVuZGVyT3JkZXI/OiAoYTogb2wuRmVhdHVyZSwgYjogb2wuRmVhdHVyZSkgPT4gbnVtYmVyO1xyXG5cclxufVxyXG5cclxuXHJcblxyXG4vKipcclxuICogVGhlIFZlY3RvciBsYXllciBiYXNlXHJcbiAqIEBhdWdtZW50cyBMYXllckJhc2VcclxuICogQGFic3RyYWN0XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTGF5ZXJCYXNlVmVjdG9yIGV4dGVuZHMgTGF5ZXJCYXNlIHtcclxuICAgIF9vbExheWVyOiBvbC5sYXllci5WZWN0b3I7XHJcbiAgICBfc291cmNlOiBvbC5zb3VyY2UuVmVjdG9yO1xyXG4gICAgX3N0eWxlOiBvbC5zdHlsZS5TdHlsZXxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuU3R5bGVGdW5jdGlvbjtcclxuICAgIF9hdXRvTG9hZDogYm9vbGVhbjtcclxuICAgIF9vbkRlbWFuZDogYm9vbGVhbjtcclxuICAgIF9vbkRlbWFuZERlbGF5OiBudW1iZXI7XHJcbiAgICBfbWFwTW92ZU1ha2VHZXRQYXJhbXM6IG1ha2VNYXBNb3ZlUGFyYW1zO1xyXG4gICAgX21hcE1vdmVQYXJhbXM6IGFueTtcclxuICAgIF9tYXBNb3ZlOiBNYXBNb3ZlQ2xzO1xyXG4gICAgX3Byb2plY3Rpb25NYXA6IG9sLnByb2ouUHJvamVjdGlvbjtcclxuICAgIF9wcm9qZWN0aW9uNDMyNjogb2wucHJvai5Qcm9qZWN0aW9uO1xyXG5cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYmFzZSB2ZWN0b3IgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgLSBwYXNzIGFuIGVtcHR5IHN0cmluZyB0byBwcmV2ZW50IGRlZmF1bHQgbG9hZCBhbmQgYWRkIGZyb20gYSBqc29uIHNvdXJjZVxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgLSBjb25maWdcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5pZF0gLSBsYXllciBpZFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLm5hbWU9VW5uYW1lZCBMYXllcl0gLSBsYXllciBuYW1lXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMub3BhY2l0eT0xXSAtIG9wYWNpdHlcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMudmlzaWJsZT10cnVlXSAtIGRlZmF1bHQgdmlzaWJsZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSAtIG1pbiB6b29tIGxldmVsLCAwIC0gMjhcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5tYXhab29tPXVuZGVmaW5lZF0gLSBtYXggem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMucGFyYW1zPXt9XSB0aGUgZ2V0IHBhcmFtZXRlcnMgdG8gaW5jbHVkZSB0byByZXRyaWV2ZSB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56SW5kZXg9MF0gdGhlIHogaW5kZXggZm9yIHRoZSBsYXllclxyXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbn0gW29wdGlvbnMubG9hZENhbGxiYWNrXSBmdW5jdGlvbiB0byBjYWxsIG9uIGxvYWQsIGNvbnRleHQgdGhpcyBpcyB0aGUgbGF5ZXIgb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENvbGxhcHNlPWZhbHNlXSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGJlIGluaXRpYWxseSBjb2xsYXBzZWRcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ2hlY2tib3g9dHJ1ZV0gaWYgdGhlIGxlZ2VuZCBpdGVtIHNob3VsZCBoYXZlIGEgY2hlY2tib3ggZm9yIHZpc2liaWxpdHlcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ29udGVudF0gYWRkaXRpb25hbCBjb250ZW50IHRvIGFkZCB0byB0aGUgbGVnZW5kXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5hdXRvTG9hZD1mYWxzZV0gaWYgdGhlIGxheWVyIHNob3VsZCBhdXRvIGxvYWQgaWYgbm90IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucy5zdHlsZT11bmRlZmluZWRdIHRoZSBsYXllciBzdHlsZSwgdXNlIG9wZW5sYXllcnMgZGVmYXVsdCBzdHlsZSBpZiBub3QgZGVmaW5lZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5vbkRlbWFuZD1mYWxzZV0gaWYgdGhlIGxheWVyIHNob3VsZCBiZSBsb2FkZWQgYnkgZXh0ZW50IG9uIG1hcCBtb3ZlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMub25EZW1hbmREZWxheT0zMDBdIGRlbGF5IGJlZm9yZSB0aGUgbWFwIG1vdmUgY2FsbGJhY2sgc2hvdWxkIGJlIGNhbGxlZFxyXG4gICAgICogQHBhcmFtIHttYXBNb3ZlTWFrZUdldFBhcmFtc30gW29wdGlvbnMubWFwTW92ZU1ha2VHZXRQYXJhbXM9ZnVuY3Rpb24obHlyLCBleHRlbnQsIHpvb21MZXZlbCl7fV0gZnVuY3Rpb24gdG8gY3JlYXRlIGFkZGl0aW9uYWwgbWFwIG1vdmUgcGFyYW1zXHJcbiAgICAgKiBAcGFyYW0ge01hcE1vdmVDbHN9IFtvcHRpb25zLm1hcE1vdmVPYmo9bWFwTW92ZV0gYWx0ZXJuYXRlIG1hcCBtb3ZlIG9iamVjdCBmb3IgdXNlIHdpdGggbXVsdGkgbWFwIHBhZ2VzXHJcbiAgICAgKlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcih1cmw6IHN0cmluZywgb3B0aW9uczogTGF5ZXJCYXNlVmVjdG9yT3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIodXJsLCBvcHRpb25zKTtcclxuXHJcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgYXMgTGF5ZXJCYXNlVmVjdG9yT3B0aW9ucztcclxuXHJcbiAgICAgICAgLy9wcmV2ZW50IHJlZ3VsYXIgbG9hZCBpZiBubyB1cmwgaGFzIGJlZW4gcHJvdmlkZWRcclxuICAgICAgICBpZiAodGhpcy51cmwudHJpbSgpID09ICcnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zdHlsZSA9IHR5cGVvZiBvcHRpb25zLnN0eWxlID09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogb3B0aW9ucy5zdHlsZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9hdXRvTG9hZCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fYXV0b0xvYWQgPSAodHlwZW9mIG9wdGlvbnNbJ2F1dG9Mb2FkJ10gPT0gJ2Jvb2xlYW4nID8gb3B0aW9uc1snYXV0b0xvYWQnXSA6IGZhbHNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX29uRGVtYW5kID0gdHlwZW9mIG9wdGlvbnMub25EZW1hbmQgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5vbkRlbWFuZCA6IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX29uRGVtYW5kRGVsYXkgPSB0eXBlb2Ygb3B0aW9ucy5vbkRlbWFuZERlbGF5ID09ICdudW1iZXInID8gb3B0aW9ucy5vbkRlbWFuZERlbGF5IDogMzAwO1xyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5tYXBNb3ZlT2JqKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX21hcE1vdmUgPSBvcHRpb25zLm1hcE1vdmVPYmo7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fbWFwTW92ZSA9IHRoaXMuX29uRGVtYW5kID8gbWFwTW92ZSA6IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9tYXBNb3ZlTWFrZUdldFBhcmFtcyA9IHR5cGVvZiBvcHRpb25zLm1hcE1vdmVNYWtlR2V0UGFyYW1zID09ICdmdW5jdGlvbicgPyBvcHRpb25zLm1hcE1vdmVNYWtlR2V0UGFyYW1zIDpcclxuICAgICAgICAgICAgZnVuY3Rpb24gKCkge3JldHVybiB7fTt9O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fb25EZW1hbmQpIHtcclxuICAgICAgICAgICAgdGhpcy5fbG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5fbWFwTW92ZVBhcmFtcyA9IHt9O1xyXG4gICAgICAgICAgICB0aGlzLl9tYXBNb3ZlLmNoZWNrSW5pdCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9tYXBNb3ZlLmFkZFZlY3RvckxheWVyKHRoaXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fc291cmNlID0gbmV3IG9sLnNvdXJjZS5WZWN0b3IoKTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIgPSBuZXcgb2wubGF5ZXIuVmVjdG9yKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IHRoaXMuX3NvdXJjZSxcclxuICAgICAgICAgICAgICAgIHZpc2libGU6IHRoaXMudmlzaWJsZSxcclxuICAgICAgICAgICAgICAgIHN0eWxlOiB0aGlzLnN0eWxlLFxyXG4gICAgICAgICAgICAgICAgbWluUmVzb2x1dGlvbjogdGhpcy5fbWluUmVzb2x1dGlvbixcclxuICAgICAgICAgICAgICAgIG1heFJlc29sdXRpb246IHRoaXMuX21heFJlc29sdXRpb24sXHJcbiAgICAgICAgICAgICAgICByZW5kZXJPcmRlcjogb3B0aW9ucy5yZW5kZXJPcmRlclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5vbExheWVyLnNldFpJbmRleCh0aGlzLl96SW5kZXgpO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5fcHJvamVjdGlvbk1hcCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fcHJvamVjdGlvbjQzMjYgPSBuZXcgb2wucHJvai5Qcm9qZWN0aW9uKHtjb2RlOiBcIkVQU0c6NDMyNlwifSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBkdW1teSB0byBiZSBvdmVycmlkZGVuXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZmVhdHVyZUNvbGxlY3Rpb24gLSBnZW9qc29uIG9yIGVzcmlqc29uIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBhZGRGZWF0dXJlcyhmZWF0dXJlQ29sbGVjdGlvbikge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdMYXllciB2ZWN0b3IgYmFzZSBhZGRGZWF0dXJlcyBpcyBhIHBsYWNlaG9sZGVyIGFuZCBkb2VzIG5vdGhpbmcnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEJlZm9yZSBjYWxsIHRvIG1hcCBtb3ZlIGNhbGxiYWNrLCBjYW4gcHJldmVudCBjYWxsIGJ5IHJldHVybmluZyBmYWxzZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHpvb20gLSB6b29tIGxldmVsXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2V2dFR5cGU9dW5kZWZpbmVkXSB1bmRlZmluZWQgZm9yIGluaXRpYWwgbG9hZCwgb3RoZXJ3aXNlIG9uZSBvZiAnY2hhbmdlOmNlbnRlcicsICdjaGFuZ2U6cmVzb2x1dGlvbidcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBpZiB0aGUgY2FsbCBzaG91bGQgcHJvY2VlZFxyXG4gICAgICovXHJcbiAgICBtYXBNb3ZlQmVmb3JlKHpvb20sIGV2dFR5cGUpIHtcclxuICAgICAgICBpZiAodGhpcy5taW5ab29tICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgaWYgKHpvb20gPCB0aGlzLm1pblpvb20pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMubWF4Wm9vbSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGlmICh6b29tID4gdGhpcy5tYXhab29tKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnZpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBjYWxsYmFjayB0byBnZW5lcmF0ZSB0aGUgcGFyYW1ldGVycyBwYXNzZWQgaW4gdGhlIGdldCByZXF1ZXN0XHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZXh0ZW50IC0gZXh0ZW50IG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5taW5YIC0gbWluWFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5taW5ZIC0gbWluWVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5tYXhYIC0gbWF4WFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGV4dGVudC5tYXhZIC0gbWF4WVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHpvb21MZXZlbCAtIHpvb20gbGV2ZWxcclxuICAgICAqL1xyXG4gICAgbWFwTW92ZU1ha2VHZXRQYXJhbXMoZXh0ZW50LCB6b29tTGV2ZWwpIHtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlUGFyYW1zID0ge307XHJcbiAgICAgICAgJC5leHRlbmQodGhpcy5fbWFwTW92ZVBhcmFtcywgdGhpcy5wYXJhbXMpO1xyXG4gICAgICAgICQuZXh0ZW5kKHRoaXMuX21hcE1vdmVQYXJhbXMsIHRoaXMuX21hcE1vdmVNYWtlR2V0UGFyYW1zKHRoaXMsIGV4dGVudCwgem9vbUxldmVsKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBjYWxsYmFjayBmdW5jdGlvbiBvbiBtYXAgbW92ZVxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGQgLSB0aGUganNvbiByZXNwb25zZVxyXG4gICAgICovXHJcbiAgICBtYXBNb3ZlQ2FsbGJhY2soZCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNvdXJjZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9zb3VyY2UuY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBjbGVhciBmZWF0dXJlcyBpbiB0aGUgbGF5ZXJcclxuICAgICAqL1xyXG4gICAgY2xlYXIoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3NvdXJjZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9zb3VyY2UuY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgb24gZGVtYW5kIGRlbGF5IGluIG1pbGlzZWNvbmRzXHJcbiAgICAgKi9cclxuICAgIGdldCBvbkRlbWFuZERlbGF5KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29uRGVtYW5kRGVsYXk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgaWYgdGhlIGxheWVyIGlzIGF1dG9sb2FkZWRcclxuICAgICAqL1xyXG4gICAgZ2V0IGF1dG9Mb2FkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRvTG9hZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgc3R5bGUgZGVmaW5pdGlvblxyXG4gICAgICovXHJcbiAgICBnZXQgc3R5bGUoKTogb2wuU3R5bGVGdW5jdGlvbnxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuc3R5bGUuU3R5bGUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdHlsZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgc3R5bGVcclxuICAgICAqIEBwYXJhbSBzdHlsZSAtIHRoZSBzdHlsZSBvciBmdW5jdGlvblxyXG4gICAgICovXHJcbiAgICBzZXQgc3R5bGUoc3R5bGU6IG9sLlN0eWxlRnVuY3Rpb258QXJyYXk8b2wuc3R5bGUuU3R5bGU+fG9sLnN0eWxlLlN0eWxlKSB7XHJcbiAgICAgICAgdGhpcy5fc3R5bGUgPSBzdHlsZTtcclxuICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0U3R5bGUodGhpcy5fc3R5bGUgYXMgb2wuc3R5bGUuU3R5bGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtYXAgQ1JTIGlmIGl0IGlzIGRlZmluZWQgYnkgdGhlIG1hcCBtb3ZlIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBnZXQgbWFwQ3JzKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwUHJvaiA9PSBudWxsID8gbnVsbCA6IHRoaXMubWFwUHJvai5nZXRDb2RlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG1hcFByb2ooKTogb2wucHJvai5Qcm9qZWN0aW9ue1xyXG4gICAgICAgIGlmICh0aGlzLl9wcm9qZWN0aW9uTWFwICE9IG51bGwpe1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcHJvamVjdGlvbk1hcDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9tYXBNb3ZlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3Byb2plY3Rpb25NYXAgPSB0aGlzLl9tYXBNb3ZlLm1hcC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcHJvamVjdGlvbk1hcDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtYXAgbW92ZSBvYmplY3RcclxuICAgICAqIEB0eXBlIHtNYXBNb3ZlQ2xzfCp9XHJcbiAgICAgKi9cclxuICAgIGdldCBtYXBNb3ZlKCk6IE1hcE1vdmVDbHMge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXBNb3ZlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIG1vdmUgcGFyYW1zXHJcbiAgICAgKiBAdHlwZSB7b2JqZWN0fVxyXG4gICAgICovXHJcbiAgICBnZXQgbWFwTW92ZVBhcmFtcygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWFwTW92ZVBhcmFtcztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdmlzaWJsZSgpOiBib29sZWFue1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSBsYXllciB2aXNpYmlsaXR5XHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqIEBvdmVycmlkZVxyXG4gICAgICovXHJcbiAgICBzZXQgdmlzaWJsZSh2aXNpYmlsaXR5KSB7XHJcbiAgICAgICAgc3VwZXIuc2V0VmlzaWJsZSh2aXNpYmlsaXR5KTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX29uRGVtYW5kKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWFwTW92ZS50cmlnZ2VyTHlyTG9hZCh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIGxheWVyIHZlY3RvciBzb3VyY2VcclxuICAgICAqIEBvdmVycmlkZVxyXG4gICAgICovXHJcbiAgICBnZXQgc291cmNlKCk6IG9sLnNvdXJjZS5WZWN0b3Ige1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNvdXJjZSgpIGFzIG9sLnNvdXJjZS5WZWN0b3I7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhcnJheSBvZiBvbCBmZWF0dXJlc1xyXG4gICAgICovXHJcbiAgICBnZXQgZmVhdHVyZXMoKTogQXJyYXk8b2wuRmVhdHVyZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNvdXJjZS5nZXRGZWF0dXJlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqL1xyXG4gICAgZ2V0IG9sTGF5ZXIoKTogb2wubGF5ZXIuVmVjdG9yIHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0T2xMYXllcigpIGFzIG9sLmxheWVyLlZlY3RvcjtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0WkluZGV4KG5ld1o6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMub2xMYXllci5zZXRaSW5kZXgobmV3Wik7XHJcbiAgICB9XHJcbn1cclxuXHJcbm5tLkxheWVyQmFzZVZlY3RvciA9IExheWVyQmFzZVZlY3RvcjtcclxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJCYXNlVmVjdG9yO1xyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/layers/LayerBaseVector.ts\n// module id = 19\n// module chunks = 0 1","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Created by gavorhes on 10/3/2016.\r\n */\r\nvar ol = require(\"custom-ol\");\r\nexports.proj4326 = new ol.proj.Projection({ code: 'EPSG:4326' });\r\nexports.proj3857 = new ol.proj.Projection({ code: 'EPSG:3857' });\r\nexports.proj3070 = new ol.proj.Projection({ code: 'EPSG:3070' });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcm9qZWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOztHQUVHO0FBQ0gsOEJBQWlDO0FBR3BCLFFBQUEsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQztBQUN2RCxRQUFBLFFBQVEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUM7QUFDdkQsUUFBQSxRQUFRLEdBQUcsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTAvMy8yMDE2LlxyXG4gKi9cclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IHByb2o0MzI2ID0gbmV3IG9sLnByb2ouUHJvamVjdGlvbih7Y29kZTogJ0VQU0c6NDMyNid9KTtcclxuZXhwb3J0IGNvbnN0IHByb2ozODU3ID0gbmV3IG9sLnByb2ouUHJvamVjdGlvbih7Y29kZTogJ0VQU0c6Mzg1Nyd9KTtcclxuZXhwb3J0IGNvbnN0IHByb2ozMDcwID0gbmV3IG9sLnByb2ouUHJvamVjdGlvbih7Y29kZTogJ0VQU0c6MzA3MCd9KTtcclxuXHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/projections.ts\n// module id = 20\n// module chunks = 1","/**\r\n * Created by gavorhes on 12/14/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar colors = require(\"../util/colors\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar LayerItsInventory_1 = require(\"../layers/LayerItsInventory\");\r\nvar nm = provide_1.default('collections');\r\nvar itsConfig = [\r\n {\r\n name: 'Camera',\r\n itsType: 'cctv',\r\n minZoom: 11,\r\n itsIconConfig: {\r\n prop: 'owner',\r\n defaultName: 'WisDOT',\r\n defaultIcon: 'cctv.png',\r\n iconArray: [\r\n ['City of Madison', 'Madison', 'cctv-mad.png']\r\n ]\r\n }\r\n },\r\n {\r\n name: 'Message Signs',\r\n itsType: 'DMS',\r\n minZoom: 11,\r\n itsIconConfig: {\r\n prop: 'dmsType',\r\n defaultName: 'DMS',\r\n defaultIcon: 'dms.png',\r\n iconArray: [\r\n ['pcms', 'PCMS', 'pcms.png']\r\n ]\r\n }\r\n },\r\n { name: 'ATR', itsType: 'atr', minZoom: 8, itsIcon: 'atr.png', visible: false },\r\n { name: 'Lighting', itsType: 'light', minZoom: 16, itsIcon: 'streetlight.png', visible: false, onDemand: true },\r\n { name: 'Bluetooth', itsType: 'blue', minZoom: 10, itsIcon: 'bluetooth.png', visible: false },\r\n { name: 'Cabinets', itsType: 'cabinet', minZoom: 10, itsIcon: 'cabinet.png', visible: false },\r\n { name: 'Hut', itsType: 'hut', minZoom: 10, itsIcon: 'hut.png', visible: false },\r\n { name: 'Vault', itsType: 'vault', minZoom: 13, itsIcon: 'vault.png', visible: false },\r\n { name: 'Advisory Radio', itsType: 'har', minZoom: 10, itsIcon: 'har.png', visible: false },\r\n {\r\n name: 'Loop Detectors',\r\n itsType: 'loop',\r\n legendCollapse: true,\r\n minZoom: 14,\r\n visible: false,\r\n itsIconConfig: {\r\n prop: 'dtctrType',\r\n defaultName: 'Other',\r\n defaultIcon: 'loopdetectorother.png',\r\n iconArray: [\r\n ['detector', 'Detector', 'loopdetector.png'],\r\n ['long', 'Long', 'loopdetectorlong.png'],\r\n ['zone', 'Zone', 'loopdetectorzone.png']\r\n ]\r\n },\r\n onDemand: true\r\n },\r\n { name: 'Microwave', itsType: 'microwave', minZoom: 14, itsIcon: 'microwave.png', visible: false },\r\n { name: 'Pull Box', itsType: 'pull', minZoom: 14, itsIcon: 'pullbox.png', visible: false, onDemand: true },\r\n { name: 'RWIS', itsType: 'rwis', minZoom: 7, itsIcon: 'rwis.png', visible: false },\r\n { name: 'Ramp Gates', itsType: 'gate', minZoom: 10, itsIcon: 'rampgate.png', visible: false },\r\n { name: 'Ramp Meter', itsType: 'meter', minZoom: 10, itsIcon: 'rampmeter.png', visible: false },\r\n { name: 'Signal', itsType: 'signal', minZoom: 13, itsIcon: 'signal.png', visible: false, onDemand: true },\r\n { name: 'Tower', itsType: 'tower', minZoom: 10, itsIcon: 'tower.png', visible: false },\r\n {\r\n name: 'Trench',\r\n itsType: 'trench',\r\n onDemand: true,\r\n visible: false,\r\n onDemandDelay: 500,\r\n minZoom: 15,\r\n legendCollapse: true,\r\n itsLineConfig: {\r\n prop: 'owner',\r\n //defaultName: 'Other',\r\n //defaultWidth: 7,\r\n defaultColor: colors.hexAlphaToRgbOrRgba('#747474', 0.8),\r\n lineArray: [\r\n ['WisDOT', 'WisDOT', colors.hexAlphaToRgbOrRgba('#FF032F', 0.7)],\r\n ['WIN', 'WIN', colors.hexAlphaToRgbOrRgba('#FFC632', 0.7)],\r\n ['USXchange', 'USXchange', colors.hexAlphaToRgbOrRgba('#2DFF46', 0.7)],\r\n ['AT&T', 'AT&T', colors.hexAlphaToRgbOrRgba('#ff2be5', 0.7)],\r\n ['Touch America', 'Touch America', colors.hexAlphaToRgbOrRgba('#52f3ff', 0.7)],\r\n ['Qwest', 'Qwest', colors.hexAlphaToRgbOrRgba('#9278ff', 0.7)],\r\n ['McLeodUSA', 'McLeodUSA', colors.hexAlphaToRgbOrRgba('#2926FF', 0.7)],\r\n ['CINC', 'CINC', colors.hexAlphaToRgbOrRgba('#CB00FF', 0.7)],\r\n ['City of Madison', 'Madison', colors.hexAlphaToRgbOrRgba('#000380', 0.7)]\r\n ]\r\n }\r\n }\r\n];\r\nvar ItsLayerCollection = (function () {\r\n /**\r\n * Create a collection of all ITS layers\r\n * @param {ol.Map} theMap the openlayers map\r\n * @param {Array} [exclude=[]] array of Its layer identifiers to exclude\r\n *\r\n * BLUE Bluetooth Detector - Bluetooth Detector\r\n * CABINET Cabinets - The cabinets\r\n * CCTV Camera - Traffic Cameras\r\n * HUT Communication Hut - Communication Hut\r\n * VAULT Communication Vault - The communication vaults\r\n * HAR Highway Advisory Radio - Advisory Radios\r\n * LIGHT Lighting - Lighting\r\n * LOOP Loop Detectors - Loop Detectors\r\n * DMS Message Board - Message Boards and Signs\r\n * MICROWAVE Microwave Detector - Microwave Detectors\r\n * PULL Pull Box - A pull box\r\n * RWIS RWIS - Road weather information system\r\n * GATE Ramp Gate - The ramp Gates\r\n * METER Ramp Meter - The ramp meters\r\n * SIGNAL Signal - Traffic Signal\r\n * TOWER Tower - The towers\r\n * TRENCH\r\n */\r\n function ItsLayerCollection(theMap, exclude) {\r\n this._map = theMap;\r\n this._layers = [];\r\n exclude = typeof exclude == 'object' ? exclude : [];\r\n for (var i = 0; i < itsConfig.length; i++) {\r\n var lyrConfig = itsConfig[i];\r\n var addLayer = true;\r\n for (var j = 0; j < exclude.length; j++) {\r\n if (exclude[j] == lyrConfig.itsType) {\r\n addLayer = false;\r\n break;\r\n }\r\n }\r\n if (addLayer) {\r\n var inventLyr = new LayerItsInventory_1.default(lyrConfig);\r\n this._map.addLayer(inventLyr.olLayer);\r\n this._layers.push(inventLyr);\r\n }\r\n }\r\n }\r\n Object.defineProperty(ItsLayerCollection.prototype, \"layers\", {\r\n /**\r\n * Return the array of layers in this collection\r\n * @returns {Array<LayerItsInventory>} an array of layers\r\n */\r\n get: function () {\r\n return this._layers;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return ItsLayerCollection;\r\n}());\r\nexports.ItsLayerCollection = ItsLayerCollection;\r\nnm.ItsLayerCollection = ItsLayerCollection;\r\nexports.default = ItsLayerCollection;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXRzTGF5ZXJDb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiSXRzTGF5ZXJDb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFFSCx1Q0FBeUM7QUFDekMsMkNBQXNDO0FBRXRDLGlFQUE0RDtBQUM1RCxJQUFJLEVBQUUsR0FBRyxpQkFBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBR2hDLElBQUksU0FBUyxHQUFHO0lBQ1o7UUFDSSxJQUFJLEVBQUUsUUFBUTtRQUNkLE9BQU8sRUFBRSxNQUFNO1FBQ2YsT0FBTyxFQUFFLEVBQUU7UUFDWCxhQUFhLEVBQUU7WUFDWCxJQUFJLEVBQUUsT0FBTztZQUNiLFdBQVcsRUFBRSxRQUFRO1lBQ3JCLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLFNBQVMsRUFBRTtnQkFDUCxDQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxjQUFjLENBQUM7YUFDakQ7U0FDSjtLQUNKO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsZUFBZTtRQUNyQixPQUFPLEVBQUUsS0FBSztRQUNkLE9BQU8sRUFBRSxFQUFFO1FBQ1gsYUFBYSxFQUFFO1lBQ1gsSUFBSSxFQUFFLFNBQVM7WUFDZixXQUFXLEVBQUUsS0FBSztZQUNsQixXQUFXLEVBQUUsU0FBUztZQUN0QixTQUFTLEVBQUU7Z0JBQ1AsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQzthQUMvQjtTQUNKO0tBQ0o7SUFDRCxFQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBQztJQUM3RSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFB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Q0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBTUQsc0JBQUksc0NBQU07UUFKVjs7O1dBR0c7YUFDSDtZQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3hCLENBQUM7OztPQUFBO0lBQ0wseUJBQUM7QUFBRCxDQUFDLEFBN0RELElBNkRDO0FBN0RZLGdEQUFrQjtBQStEL0IsRUFBRSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0FBQzNDLGtCQUFlLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTQvMjAxNS5cclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBjb2xvcnMgZnJvbSAnLi4vdXRpbC9jb2xvcnMnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgb2wgPSByZXF1aXJlKCdjdXN0b20tb2wnKTtcclxuaW1wb3J0IExheWVySXRzSW52ZW50b3J5IGZyb20gXCIuLi9sYXllcnMvTGF5ZXJJdHNJbnZlbnRvcnlcIjtcclxubGV0IG5tID0gcHJvdmlkZSgnY29sbGVjdGlvbnMnKTtcclxuXHJcblxyXG5sZXQgaXRzQ29uZmlnID0gW1xyXG4gICAge1xyXG4gICAgICAgIG5hbWU6ICdDYW1lcmEnLFxyXG4gICAgICAgIGl0c1R5cGU6ICdjY3R2JyxcclxuICAgICAgICBtaW5ab29tOiAxMSxcclxuICAgICAgICBpdHNJY29uQ29uZmlnOiB7XHJcbiAgICAgICAgICAgIHByb3A6ICdvd25lcicsXHJcbiAgICAgICAgICAgIGRlZmF1bHROYW1lOiAnV2lzRE9UJyxcclxuICAgICAgICAgICAgZGVmYXVsdEljb246ICdjY3R2LnBuZycsXHJcbiAgICAgICAgICAgIGljb25BcnJheTogW1xyXG4gICAgICAgICAgICAgICAgWydDaXR5IG9mIE1hZGlzb24nLCAnTWFkaXNvbicsICdjY3R2LW1hZC5wbmcnXVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBuYW1lOiAnTWVzc2FnZSBTaWducycsXHJcbiAgICAgICAgaXRzVHlwZTogJ0RNUycsXHJcbiAgICAgICAgbWluWm9vbTogMTEsXHJcbiAgICAgICAgaXRzSWNvbkNvbmZpZzoge1xyXG4gICAgICAgICAgICBwcm9wOiAnZG1zVHlwZScsXHJcbiAgICAgICAgICAgIGRlZmF1bHROYW1lOiAnRE1TJyxcclxuICAgICAgICAgICAgZGVmYXVsdEljb246ICdkbXMucG5nJyxcclxuICAgICAgICAgICAgaWNvbkFycmF5OiBbXHJcbiAgICAgICAgICAgICAgICBbJ3BjbXMnLCAnUENNUycsICdwY21zLnBuZyddXHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAge25hbWU6ICdBVFInLCBpdHNUeXBlOiAnYXRyJywgbWluWm9vbTogOCwgaXRzSWNvbjogJ2F0ci5wbmcnLCB2aXNpYmxlOiBmYWxzZX0sXHJcbiAgICB7bmFtZTogJ0xpZ2h0aW5nJywgaXRzVHlwZTogJ2xpZ2h0JywgbWluWm9vbTogMTYsIGl0c0ljb246ICdzdHJlZXRsaWdodC5wbmcnLCB2aXNpYmxlOiBmYWxzZSwgb25EZW1hbmQ6IHRydWV9LFxyXG4gICAge25hbWU6ICdCbHVldG9vdGgnLCBpdHNUeXBlOiAnYmx1ZScsIG1pblpvb206IDEwLCBpdHNJY29uOiAnYmx1ZXRvb3RoLnBuZycsIHZpc2libGU6IGZhbHNlfSxcclxuICAgIHtuYW1lOiAnQ2FiaW5ldHMnLCBpdHNUeXBlOiAnY2FiaW5ldCcsIG1pblpvb206IDEwLCBpdHNJY29uOiAnY2FiaW5ldC5wbmcnLCB2aXNpYmxlOiBmYWxzZX0sXHJcbiAgICB7bmFtZTogJ0h1dCcsIGl0c1R5cGU6ICdodXQnLCBtaW5ab29tOiAxMCwgaXRzSWNvbjogJ2h1dC5wbmcnLCB2aXNpYmxlOiBmYWxzZX0sXHJcbiAgICB7bmFtZTogJ1ZhdWx0JywgaXRzVHlwZTogJ3ZhdWx0JywgbWluWm9vbTogMTMsIGl0c0ljb246ICd2YXVsdC5wbmcnLCB2aXNpYmxlOiBmYWxzZX0sXHJcbiAgICB7bmFtZTogJ0Fkdmlzb3J5IFJhZGlvJywgaXRzVHlwZTogJ2hhcicsIG1pblpvb206IDEwLCBpdHNJY29uOiAnaGFyLnBuZycsIHZpc2libGU6IGZhbHNlfSxcclxuICAgIHtcclxuICAgICAgICBuYW1lOiAnTG9vcCBEZXRlY3RvcnMnLFxyXG4gICAgICAgIGl0c1R5cGU6ICdsb29wJyxcclxuICAgICAgICBsZWdlbmRDb2xsYXBzZTogdHJ1ZSxcclxuICAgICAgICBtaW5ab29tOiAxNCxcclxuICAgICAgICB2aXNpYmxlOiBmYWxzZSxcclxuICAgICAgICBpdHNJY29uQ29uZmlnOiB7XHJcbiAgICAgICAgICAgIHByb3A6ICdkdGN0clR5cGUnLFxyXG4gICAgICAgICAgICBkZWZhdWx0TmFtZTogJ090aGVyJyxcclxuICAgICAgICAgICAgZGVmYXVsdEljb246ICdsb29wZGV0ZWN0b3JvdGhlci5wbmcnLFxyXG4gICAgICAgICAgICBpY29uQXJyYXk6IFtcclxuICAgICAgICAgICAgICAgIFsnZGV0ZWN0b3InLCAnRGV0ZWN0b3InLCAnbG9vcGRldGVjdG9yLnBuZyddLFxyXG4gICAgICAgICAgICAgICAgWydsb25nJywgJ0xvbmcnLCAnbG9vcGRldGVjdG9ybG9uZy5wbmcnXSxcclxuICAgICAgICAgICAgICAgIFsnem9uZScsICdab25lJywgJ2xvb3BkZXRlY3RvcnpvbmUucG5nJ11cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25EZW1hbmQ6IHRydWVcclxuICAgIH0sXHJcbiAgICB7bmFtZTogJ01pY3Jvd2F2ZScsIGl0c1R5cGU6ICdtaWNyb3dhdmUnLCBtaW5ab29tOiAxNCwgaXRzSWNvbjogJ21pY3Jvd2F2ZS5wbmcnLCB2aXNpYmxlOiBmYWxzZX0sXHJcbiAgICB7bmFtZTogJ1B1bGwgQm94JywgaXRzVHlwZTogJ3B1bGwnLCBtaW5ab29tOiAxNCwgaXRzSWNvbjogJ3B1bGxib3gucG5nJywgdmlzaWJsZTogZmFsc2UsIG9uRGVtYW5kOiB0cnVlfSxcclxuICAgIHtuYW1lOiAnUldJUycsIGl0c1R5cGU6ICdyd2lzJywgbWluWm9vbTogNywgaXRzSWNvbjogJ3J3aXMucG5nJywgdmlzaWJsZTogZmFsc2V9LFxyXG4gICAge25hbWU6ICdSYW1wIEdhdGVzJywgaXRzVHlwZTogJ2dhdGUnLCBtaW5ab29tOiAxMCwgaXRzSWNvbjogJ3JhbXBnYXRlLnBuZycsIHZpc2libGU6IGZhbHNlfSxcclxuICAgIHtuYW1lOiAnUmFtcCBNZXRlcicsIGl0c1R5cGU6ICdtZXRlcicsIG1pblpvb206IDEwLCBpdHNJY29uOiAncmFtcG1ldGVyLnBuZycsIHZpc2libGU6IGZhbHNlfSxcclxuICAgIHtuYW1lOiAnU2lnbmFsJywgaXRzVHlwZTogJ3NpZ25hbCcsIG1pblpvb206IDEzLCBpdHNJY29uOiAnc2lnbmFsLnBuZycsIHZpc2libGU6IGZhbHNlLCBvbkRlbWFuZDogdHJ1ZX0sXHJcbiAgICB7bmFtZTogJ1Rvd2VyJywgaXRzVHlwZTogJ3Rvd2VyJywgbWluWm9vbTogMTAsIGl0c0ljb246ICd0b3dlci5wbmcnLCB2aXNpYmxlOiBmYWxzZX0sXHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogJ1RyZW5jaCcsXHJcbiAgICAgICAgaXRzVHlwZTogJ3RyZW5jaCcsXHJcbiAgICAgICAgb25EZW1hbmQ6IHRydWUsXHJcbiAgICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgb25EZW1hbmREZWxheTogNTAwLFxyXG4gICAgICAgIG1pblpvb206IDE1LFxyXG4gICAgICAgIGxlZ2VuZENvbGxhcHNlOiB0cnVlLFxyXG4gICAgICAgIGl0c0xpbmVDb25maWc6IHtcclxuICAgICAgICAgICAgcHJvcDogJ293bmVyJyxcclxuICAgICAgICAgICAgLy9kZWZhdWx0TmFtZTogJ090aGVyJyxcclxuICAgICAgICAgICAgLy9kZWZhdWx0V2lkdGg6IDcsXHJcbiAgICAgICAgICAgIGRlZmF1bHRDb2xvcjogY29sb3JzLmhleEFscGhhVG9SZ2JPclJnYmEoJyM3NDc0NzQnLCAwLjgpLFxyXG4gICAgICAgICAgICBsaW5lQXJyYXk6IFtcclxuICAgICAgICAgICAgICAgIFsnV2lzRE9UJywgJ1dpc0RPVCcsIGNvbG9ycy5oZXhBbHBoYVRvUmdiT3JSZ2JhKCcjRkYwMzJGJywgMC43KV0sXHJcbiAgICAgICAgICAgICAgICBbJ1dJTicsICdXSU4nLCBjb2xvcnMuaGV4QWxwaGFUb1JnYk9yUmdiYSgnI0ZGQzYzMicsIDAuNyldLFxyXG4gICAgICAgICAgICAgICAgWydVU1hjaGFuZ2UnLCAnVVNYY2hhbmdlJywgY29sb3JzLmhleEFscGhhVG9SZ2JPclJnYmEoJyMyREZGNDYnLCAwLjcpXSxcclxuICAgICAgICAgICAgICAgIFsnQVQmVCcsICdBVCZUJywgY29sb3JzLmhleEFscGhhVG9SZ2JPclJnYmEoJyNmZjJiZTUnLCAwLjcpXSxcclxuICAgICAgICAgICAgICAgIFsnVG91Y2ggQW1lcmljYScsICdUb3VjaCBBbWVyaWNhJywgY29sb3JzLmhleEFscGhhVG9SZ2JPclJnYmEoJyM1MmYzZmYnLCAwLjcpXSxcclxuICAgICAgICAgICAgICAgIFsnUXdlc3QnLCAnUXdlc3QnLCBjb2xvcnMuaGV4QWxwaGFUb1JnYk9yUmdiYSgnIzkyNzhmZicsIDAuNyldLFxyXG4gICAgICAgICAgICAgICAgWydNY0xlb2RVU0EnLCAnTWNMZW9kVVNBJywgY29sb3JzLmhleEFscGhhVG9SZ2JPclJnYmEoJyMyOTI2RkYnLCAwLjcpXSxcclxuICAgICAgICAgICAgICAgIFsnQ0lOQycsICdDSU5DJywgY29sb3JzLmhleEFscGhhVG9SZ2JPclJnYmEoJyNDQjAwRkYnLCAwLjcpXSxcclxuICAgICAgICAgICAgICAgIFsnQ2l0eSBvZiBNYWRpc29uJywgJ01hZGlzb24nLCBjb2xvcnMuaGV4QWxwaGFUb1JnYk9yUmdiYSgnIzAwMDM4MCcsIDAuNyldXHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXTtcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgSXRzTGF5ZXJDb2xsZWN0aW9uIHtcclxuICAgIF9tYXA6IG9sLk1hcDtcclxuICAgIF9sYXllcnM6IEFycmF5PExheWVySXRzSW52ZW50b3J5PjtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGUgYSBjb2xsZWN0aW9uIG9mIGFsbCBJVFMgbGF5ZXJzXHJcbiAgICAgKiBAcGFyYW0ge29sLk1hcH0gdGhlTWFwIHRoZSBvcGVubGF5ZXJzIG1hcFxyXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2V4Y2x1ZGU9W11dIGFycmF5IG9mIEl0cyBsYXllciBpZGVudGlmaWVycyB0byBleGNsdWRlXHJcbiAgICAgKlxyXG4gICAgICogQkxVRSBCbHVldG9vdGggRGV0ZWN0b3IgLSBCbHVldG9vdGggRGV0ZWN0b3JcclxuICAgICAqIENBQklORVQgQ2FiaW5ldHMgLSBUaGUgY2FiaW5ldHNcclxuICAgICAqIENDVFYgQ2FtZXJhIC0gVHJhZmZpYyBDYW1lcmFzXHJcbiAgICAgKiBIVVQgQ29tbXVuaWNhdGlvbiBIdXQgLSBDb21tdW5pY2F0aW9uIEh1dFxyXG4gICAgICogVkFVTFQgQ29tbXVuaWNhdGlvbiBWYXVsdCAtIFRoZSBjb21tdW5pY2F0aW9uIHZhdWx0c1xyXG4gICAgICogSEFSIEhpZ2h3YXkgQWR2aXNvcnkgUmFkaW8gLSBBZHZpc29yeSBSYWRpb3NcclxuICAgICAqIExJR0hUIExpZ2h0aW5nIC0gTGlnaHRpbmdcclxuICAgICAqIExPT1AgTG9vcCBEZXRlY3RvcnMgLSBMb29wIERldGVjdG9yc1xyXG4gICAgICogRE1TIE1lc3NhZ2UgQm9hcmQgLSBNZXNzYWdlIEJvYXJkcyBhbmQgU2lnbnNcclxuICAgICAqIE1JQ1JPV0FWRSBNaWNyb3dhdmUgRGV0ZWN0b3IgLSBNaWNyb3dhdmUgRGV0ZWN0b3JzXHJcbiAgICAgKiBQVUxMIFB1bGwgQm94IC0gQSBwdWxsIGJveFxyXG4gICAgICogUldJUyBSV0lTIC0gUm9hZCB3ZWF0aGVyIGluZm9ybWF0aW9uIHN5c3RlbVxyXG4gICAgICogR0FURSBSYW1wIEdhdGUgLSBUaGUgcmFtcCBHYXRlc1xyXG4gICAgICogTUVURVIgUmFtcCBNZXRlciAtIFRoZSByYW1wIG1ldGVyc1xyXG4gICAgICogU0lHTkFMIFNpZ25hbCAtIFRyYWZmaWMgU2lnbmFsXHJcbiAgICAgKiBUT1dFUiBUb3dlciAtIFRoZSB0b3dlcnNcclxuICAgICAqIFRSRU5DSFxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcih0aGVNYXA6IG9sLk1hcCwgZXhjbHVkZT86IEFycmF5PHN0cmluZz4pIHtcclxuXHJcbiAgICAgICAgdGhpcy5fbWFwID0gdGhlTWFwO1xyXG4gICAgICAgIHRoaXMuX2xheWVycyA9IFtdO1xyXG5cclxuICAgICAgICBleGNsdWRlID0gdHlwZW9mIGV4Y2x1ZGUgPT0gJ29iamVjdCcgPyBleGNsdWRlIDogW107XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRzQ29uZmlnLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBseXJDb25maWcgPSBpdHNDb25maWdbaV07XHJcbiAgICAgICAgICAgIGxldCBhZGRMYXllciA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGV4Y2x1ZGUubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICAgIGlmIChleGNsdWRlW2pdID09IGx5ckNvbmZpZy5pdHNUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWRkTGF5ZXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGFkZExheWVyKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgaW52ZW50THlyID0gbmV3IExheWVySXRzSW52ZW50b3J5KGx5ckNvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9tYXAuYWRkTGF5ZXIoaW52ZW50THlyLm9sTGF5ZXIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbGF5ZXJzLnB1c2goaW52ZW50THlyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybiB0aGUgYXJyYXkgb2YgbGF5ZXJzIGluIHRoaXMgY29sbGVjdGlvblxyXG4gICAgICogQHJldHVybnMge0FycmF5PExheWVySXRzSW52ZW50b3J5Pn0gYW4gYXJyYXkgb2YgbGF5ZXJzXHJcbiAgICAgKi9cclxuICAgIGdldCBsYXllcnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xheWVycztcclxuICAgIH1cclxufVxyXG5cclxubm0uSXRzTGF5ZXJDb2xsZWN0aW9uID0gSXRzTGF5ZXJDb2xsZWN0aW9uO1xyXG5leHBvcnQgZGVmYXVsdCBJdHNMYXllckNvbGxlY3Rpb247XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/collections/ItsLayerCollection.ts\n// module id = 21\n// module chunks = 1","/**\r\n * Created by gavorhes on 11/2/2015.\r\n */\r\n\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar LayerBaseVector_1 = require(\"./LayerBaseVector\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar $ = require(\"jquery\");\r\nvar proj = require(\"../olHelpers/projections\");\r\nvar projections_1 = require(\"../olHelpers/projections\");\r\nvar nm = provide_1.default('layers');\r\n/**\r\n * The Vector GeoJson Layer\r\n * @augments LayerBaseVector\r\n */\r\nvar LayerBaseVectorGeoJson = (function (_super) {\r\n __extends(LayerBaseVectorGeoJson, _super);\r\n /**\r\n * @param {string|null} url - resource url, set to '' to make blank layer\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 {boolean} [options.autoLoad=false] if the layer should auto load if not visible\r\n * @param {object} [options.style=undefined] the layer style, use openlayers default style if not defined\r\n * @param {boolean} [options.onDemand=false] if the layer should be loaded by extent on map move\r\n * @param {number} [options.onDemandDelay=300] delay before the map move callback should be called\r\n *\r\n * @param {object} [options.transform={}] SR transform, set as false for no transform\r\n * @param {string} options.transform.dataProjection=EPSG:4326 the data CRS\r\n * @param {string} options.transform.featureProjection=EPSG:3857 the feature/map CRS\r\n * @param {mapMoveMakeGetParams} [options.mapMoveMakeGetParams=function(lyr, extent, zoomLevel){}] function to create additional map move params\r\n * @param {MapMoveCls} [options.mapMoveObj=mapMove] alternate map move object for use with multi map pages\r\n */\r\n function LayerBaseVectorGeoJson(url, options) {\r\n if (options === void 0) { options = {}; }\r\n var _this = this;\r\n url = typeof url == 'string' ? url : '';\r\n _this = _super.call(this, url, options) || this;\r\n _this._geoJsonFormat = new ol.format.GeoJSON();\r\n _this._transform = options.transform || {};\r\n _this._transform.dataProjection = _this._transform.dataProjection || proj.proj4326;\r\n _this._transform.featureProjection = _this._transform.featureProjection || projections_1.proj3857;\r\n if (_this.autoLoad || _this.visible) {\r\n _this._load();\r\n }\r\n return _this;\r\n }\r\n /**\r\n * add feature collection\r\n * @param {object} featureCollection - as geojson object\r\n */\r\n LayerBaseVectorGeoJson.prototype.addFeatures = function (featureCollection) {\r\n this.source.addFeatures(this._geoJsonFormat.readFeatures(featureCollection, { dataProjection: this._transform.dataProjection,\r\n featureProjection: this._transform.featureProjection }));\r\n };\r\n /**\r\n * trigger load features\r\n * @protected\r\n * @returns {boolean} if already loaded\r\n */\r\n LayerBaseVectorGeoJson.prototype._load = function () {\r\n var _this = this;\r\n if (_super.prototype._load.call(this)) {\r\n return true;\r\n }\r\n $.get(this._url, this._params, function (d) {\r\n _this.addFeatures(d);\r\n _this.loadCallback(_this);\r\n }, 'json').fail(function () {\r\n this._loaded = false;\r\n });\r\n return false;\r\n };\r\n /**\r\n * callback function on map move\r\n * @param {object} d the json response\r\n * @override\r\n */\r\n LayerBaseVectorGeoJson.prototype.mapMoveCallback = function (d) {\r\n _super.prototype.mapMoveCallback.call(this, d);\r\n this._source.addFeatures(this._geoJsonFormat.readFeatures(d, { featureProjection: this._transform.featureProjection, dataProjection: this._transform.dataProjection }));\r\n };\r\n return LayerBaseVectorGeoJson;\r\n}(LayerBaseVector_1.LayerBaseVector));\r\nexports.LayerBaseVectorGeoJson = LayerBaseVectorGeoJson;\r\nnm.LayerBaseVectorGeoJson = LayerBaseVectorGeoJson;\r\nexports.default = LayerBaseVectorGeoJson;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJCYXNlVmVjdG9yR2VvSnNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkxheWVyQmFzZVZlY3Rvckdlb0pzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7Ozs7Ozs7Ozs7Ozs7QUFFSCxxREFBMEU7QUFDMUUsMkNBQXNDO0FBQ3RDLDhCQUFpQztBQUNqQywwQkFBNkI7QUFFN0IsK0NBQWlEO0FBQ2pELHdEQUFrRDtBQUVsRCxJQUFJLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBYTNCOzs7R0FHRztBQUNIO0lBQTRDLDBDQUFlO0lBSXZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTBCRztJQUNILGdDQUFZLEdBQVksRUFBRSxPQUEyQztRQUEzQyx3QkFBQSxFQUFBLFlBQTJDO1FBQXJFLGlCQWFDO1FBWkcsR0FBRyxHQUFHLE9BQU8sR0FBRyxJQUFJLFFBQVEsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ3hDLFFBQUEsa0JBQU0sR0FBRyxFQUFFLE9BQU8sQ0FBQyxTQUFDO1FBRXBCLEtBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRTlDLEtBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDMUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEdBQUcsS0FBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNqRixLQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixHQUFHLEtBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLElBQUksc0JBQVEsQ0FBQztRQUVsRixFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsUUFBUSxJQUFJLEtBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLEtBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQixDQUFDOztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCw0Q0FBVyxHQUFYLFVBQVksaUJBQXNCO1FBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFDOUMsRUFBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjO1lBQzNDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUMsQ0FDeEQsQ0FDUixDQUFDO0lBQ04sQ0FBQztJQUdEOzs7O09BSUc7SUFDSCxzQ0FBSyxHQUFMO1FBQUEsaUJBa0JDO1FBaEJHLEVBQUUsQ0FBQyxDQUFDLGlCQUFNLEtBQUssV0FBRSxDQUFDLENBQUMsQ0FBQztZQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQ1gsSUFBSSxDQUFDLE9BQU8sRUFDWixVQUFDLENBQUM7WUFDRSxLQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLEtBQUksQ0FBQyxZQUFZLENBQUMsS0FBSSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDZjtZQUNJLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FDSixDQUFDO1FBRUYsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGdEQUFlLEdBQWYsVUFBZ0IsQ0FBQztRQUNiLGlCQUFNLGVBQWUsWUFBQyxDQUFDLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQ3ZELEVBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUNMLDZCQUFDO0FBQUQsQ0FBQyxBQS9GRCxDQUE0QyxpQ0FBZSxHQStGMUQ7QUEvRlksd0RBQXNCO0FBaUduQyxFQUFFLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7QUFDbkQsa0JBQWUsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8yLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtMYXllckJhc2VWZWN0b3IsIExheWVyQmFzZVZlY3Rvck9wdGlvbnN9IGZyb20gJy4vTGF5ZXJCYXNlVmVjdG9yJztcclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcbmltcG9ydCB7TWFwTW92ZUNsc30gZnJvbSBcIi4uL29sSGVscGVycy9tYXBNb3ZlQ2xzXCI7XHJcbmltcG9ydCAqIGFzIHByb2ogZnJvbSAnLi4vb2xIZWxwZXJzL3Byb2plY3Rpb25zJztcclxuaW1wb3J0IHtwcm9qMzg1N30gZnJvbSBcIi4uL29sSGVscGVycy9wcm9qZWN0aW9uc1wiO1xyXG5cclxubGV0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIGNyc1RyYW5zZm9ybSB7XHJcbiAgICBkYXRhUHJvamVjdGlvbj86IG9sLnByb2ouUHJvamVjdGlvbjtcclxuICAgIGZlYXR1cmVQcm9qZWN0aW9uPzogb2wucHJvai5Qcm9qZWN0aW9uO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckJhc2VWZWN0b3JHZW9Kc29uT3B0aW9ucyBleHRlbmRzIExheWVyQmFzZVZlY3Rvck9wdGlvbnMge1xyXG4gICAgdHJhbnNmb3JtPzogY3JzVHJhbnNmb3JtO1xyXG4gICAgbWFwTW92ZU9iaj86IE1hcE1vdmVDbHM7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgVmVjdG9yIEdlb0pzb24gTGF5ZXJcclxuICogQGF1Z21lbnRzIExheWVyQmFzZVZlY3RvclxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIExheWVyQmFzZVZlY3Rvckdlb0pzb24gZXh0ZW5kcyBMYXllckJhc2VWZWN0b3Ige1xyXG4gICAgX2dlb0pzb25Gb3JtYXQ6IG9sLmZvcm1hdC5HZW9KU09OO1xyXG4gICAgX3RyYW5zZm9ybTogY3JzVHJhbnNmb3JtO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd8bnVsbH0gdXJsIC0gcmVzb3VyY2UgdXJsLCBzZXQgdG8gJycgdG8gbWFrZSBibGFuayBsYXllclxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgLSBjb25maWdcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5pZF0gLSBsYXllciBpZFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLm5hbWU9VW5uYW1lZCBMYXllcl0gLSBsYXllciBuYW1lXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMub3BhY2l0eT0xXSAtIG9wYWNpdHlcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMudmlzaWJsZT10cnVlXSAtIGRlZmF1bHQgdmlzaWJsZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSAtIG1pbiB6b29tIGxldmVsLCAwIC0gMjhcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5tYXhab29tPXVuZGVmaW5lZF0gLSBtYXggem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMucGFyYW1zPXt9XSB0aGUgZ2V0IHBhcmFtZXRlcnMgdG8gaW5jbHVkZSB0byByZXRyaWV2ZSB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56SW5kZXg9MF0gdGhlIHogaW5kZXggZm9yIHRoZSBsYXllclxyXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbn0gW29wdGlvbnMubG9hZENhbGxiYWNrXSBmdW5jdGlvbiB0byBjYWxsIG9uIGxvYWQsIGNvbnRleHQgdGhpcyBpcyB0aGUgbGF5ZXIgb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENvbGxhcHNlPWZhbHNlXSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGJlIGluaXRpYWxseSBjb2xsYXBzZWRcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ2hlY2tib3g9dHJ1ZV0gaWYgdGhlIGxlZ2VuZCBpdGVtIHNob3VsZCBoYXZlIGEgY2hlY2tib3ggZm9yIHZpc2liaWxpdHlcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ29udGVudF0gYWRkaXRpb25hbCBjb250ZW50IHRvIGFkZCB0byB0aGUgbGVnZW5kXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5hdXRvTG9hZD1mYWxzZV0gaWYgdGhlIGxheWVyIHNob3VsZCBhdXRvIGxvYWQgaWYgbm90IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucy5zdHlsZT11bmRlZmluZWRdIHRoZSBsYXllciBzdHlsZSwgdXNlIG9wZW5sYXllcnMgZGVmYXVsdCBzdHlsZSBpZiBub3QgZGVmaW5lZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5vbkRlbWFuZD1mYWxzZV0gaWYgdGhlIGxheWVyIHNob3VsZCBiZSBsb2FkZWQgYnkgZXh0ZW50IG9uIG1hcCBtb3ZlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMub25EZW1hbmREZWxheT0zMDBdIGRlbGF5IGJlZm9yZSB0aGUgbWFwIG1vdmUgY2FsbGJhY2sgc2hvdWxkIGJlIGNhbGxlZFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucy50cmFuc2Zvcm09e31dIFNSIHRyYW5zZm9ybSwgc2V0IGFzIGZhbHNlIGZvciBubyB0cmFuc2Zvcm1cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnRyYW5zZm9ybS5kYXRhUHJvamVjdGlvbj1FUFNHOjQzMjYgdGhlIGRhdGEgQ1JTXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy50cmFuc2Zvcm0uZmVhdHVyZVByb2plY3Rpb249RVBTRzozODU3IHRoZSBmZWF0dXJlL21hcCBDUlNcclxuICAgICAqIEBwYXJhbSB7bWFwTW92ZU1ha2VHZXRQYXJhbXN9IFtvcHRpb25zLm1hcE1vdmVNYWtlR2V0UGFyYW1zPWZ1bmN0aW9uKGx5ciwgZXh0ZW50LCB6b29tTGV2ZWwpe31dIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhZGRpdGlvbmFsIG1hcCBtb3ZlIHBhcmFtc1xyXG4gICAgICogQHBhcmFtIHtNYXBNb3ZlQ2xzfSBbb3B0aW9ucy5tYXBNb3ZlT2JqPW1hcE1vdmVdIGFsdGVybmF0ZSBtYXAgbW92ZSBvYmplY3QgZm9yIHVzZSB3aXRoIG11bHRpIG1hcCBwYWdlc1xyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcih1cmw/OiBzdHJpbmcsIG9wdGlvbnM6IExheWVyQmFzZVZlY3Rvckdlb0pzb25PcHRpb25zID0ge30pIHtcclxuICAgICAgICB1cmwgPSB0eXBlb2YgdXJsID09ICdzdHJpbmcnID8gdXJsIDogJyc7XHJcbiAgICAgICAgc3VwZXIodXJsLCBvcHRpb25zKTtcclxuXHJcbiAgICAgICAgdGhpcy5fZ2VvSnNvbkZvcm1hdCA9IG5ldyBvbC5mb3JtYXQuR2VvSlNPTigpO1xyXG5cclxuICAgICAgICB0aGlzLl90cmFuc2Zvcm0gPSBvcHRpb25zLnRyYW5zZm9ybSB8fCB7fTtcclxuICAgICAgICB0aGlzLl90cmFuc2Zvcm0uZGF0YVByb2plY3Rpb24gPSB0aGlzLl90cmFuc2Zvcm0uZGF0YVByb2plY3Rpb24gfHwgcHJvai5wcm9qNDMyNjtcclxuICAgICAgICB0aGlzLl90cmFuc2Zvcm0uZmVhdHVyZVByb2plY3Rpb24gPSB0aGlzLl90cmFuc2Zvcm0uZmVhdHVyZVByb2plY3Rpb24gfHwgcHJvajM4NTc7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmF1dG9Mb2FkIHx8IHRoaXMudmlzaWJsZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9sb2FkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogYWRkIGZlYXR1cmUgY29sbGVjdGlvblxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGZlYXR1cmVDb2xsZWN0aW9uIC0gYXMgZ2VvanNvbiBvYmplY3RcclxuICAgICAqL1xyXG4gICAgYWRkRmVhdHVyZXMoZmVhdHVyZUNvbGxlY3Rpb246IGFueSkge1xyXG4gICAgICAgIHRoaXMuc291cmNlLmFkZEZlYXR1cmVzKFxyXG4gICAgICAgICAgICB0aGlzLl9nZW9Kc29uRm9ybWF0LnJlYWRGZWF0dXJlcyhmZWF0dXJlQ29sbGVjdGlvbixcclxuICAgICAgICAgICAgICAgIHtkYXRhUHJvamVjdGlvbjogdGhpcy5fdHJhbnNmb3JtLmRhdGFQcm9qZWN0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiB0aGlzLl90cmFuc2Zvcm0uZmVhdHVyZVByb2plY3Rpb259XHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmlnZ2VyIGxvYWQgZmVhdHVyZXNcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBpZiBhbHJlYWR5IGxvYWRlZFxyXG4gICAgICovXHJcbiAgICBfbG9hZCgpIHtcclxuXHJcbiAgICAgICAgaWYgKHN1cGVyLl9sb2FkKCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAkLmdldCh0aGlzLl91cmwsXHJcbiAgICAgICAgICAgIHRoaXMuX3BhcmFtcyxcclxuICAgICAgICAgICAgKGQpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWRkRmVhdHVyZXMoZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRDYWxsYmFjayh0aGlzKTtcclxuICAgICAgICAgICAgfSwgJ2pzb24nKS5mYWlsKFxyXG4gICAgICAgICAgICBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2FkZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGNhbGxiYWNrIGZ1bmN0aW9uIG9uIG1hcCBtb3ZlXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZCB0aGUganNvbiByZXNwb25zZVxyXG4gICAgICogQG92ZXJyaWRlXHJcbiAgICAgKi9cclxuICAgIG1hcE1vdmVDYWxsYmFjayhkKSB7XHJcbiAgICAgICAgc3VwZXIubWFwTW92ZUNhbGxiYWNrKGQpO1xyXG4gICAgICAgIHRoaXMuX3NvdXJjZS5hZGRGZWF0dXJlcyh0aGlzLl9nZW9Kc29uRm9ybWF0LnJlYWRGZWF0dXJlcyhkLFxyXG4gICAgICAgICAgICB7ZmVhdHVyZVByb2plY3Rpb246IHRoaXMuX3RyYW5zZm9ybS5mZWF0dXJlUHJvamVjdGlvbiwgZGF0YVByb2plY3Rpb246IHRoaXMuX3RyYW5zZm9ybS5kYXRhUHJvamVjdGlvbn0pKTtcclxuICAgIH1cclxufVxyXG5cclxubm0uTGF5ZXJCYXNlVmVjdG9yR2VvSnNvbiA9IExheWVyQmFzZVZlY3Rvckdlb0pzb247XHJcbmV4cG9ydCBkZWZhdWx0IExheWVyQmFzZVZlY3Rvckdlb0pzb247XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/layers/LayerBaseVectorGeoJson.ts\n// module id = 27\n// module chunks = 1","/**\r\n * Created by gavorhes on 12/8/2015.\r\n */\r\n\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar LayerBaseVectorGeoJson_1 = require(\"./LayerBaseVectorGeoJson\");\r\nvar mapPopup_1 = require(\"../olHelpers/mapPopup\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar $ = require(\"jquery\");\r\nvar projections_1 = require(\"../olHelpers/projections\");\r\nvar nm = provide_1.default('layers');\r\nfunction checkStyleNumber(itsIcon, itsLineStyle, itsIconConfig, itsLineConfig) {\r\n \"use strict\";\r\n //make sure one and only one configuration is defined;\r\n var configCount = 0;\r\n if (typeof itsIcon == 'string') {\r\n configCount++;\r\n }\r\n if (typeof itsLineStyle == 'object') {\r\n itsLineStyle.width = typeof itsLineStyle.width == 'number' ? itsLineStyle.width : 5;\r\n itsLineStyle.color = typeof itsLineStyle.color == 'string' ? itsLineStyle.color : 'red';\r\n configCount++;\r\n }\r\n if (typeof itsIconConfig == 'object') {\r\n itsIconConfig.defaultName = itsIconConfig.defaultName || 'Other';\r\n if (typeof itsIconConfig.iconArray == 'undefined') {\r\n itsIconConfig.iconArray = [];\r\n }\r\n configCount++;\r\n }\r\n if (typeof itsLineConfig == 'object') {\r\n itsLineConfig.defaultName = itsLineConfig.defaultName || 'Other';\r\n itsLineConfig.defaultWidth = itsLineConfig.defaultWidth || 5;\r\n itsLineConfig.defaultColor = itsLineConfig.defaultColor || 'red';\r\n if (typeof itsLineConfig.lineArray == 'undefined') {\r\n itsLineConfig.lineArray = [];\r\n }\r\n // set the width if not defined\r\n for (var i = 0; i < itsLineConfig.lineArray.length; i++) {\r\n if (itsLineConfig.lineArray[i].length == 3) {\r\n itsLineConfig.lineArray[i].push(5);\r\n }\r\n }\r\n configCount++;\r\n }\r\n if (configCount > 1) {\r\n throw 'Only one style config can be defined';\r\n }\r\n}\r\n/**\r\n *\r\n * @param {string} [itsIcon=undefined] the ITS device type icon image see http://transportal.cee.wisc.edu/its/inventory/icons/\r\n *\r\n * @param {object} [itsLineStyle=undefined] A single line style\r\n * @param {string} itsLineStyle.color the line color as rgb or hex\r\n * @param {number} [itsLineStyle.width=5] the line width\r\n *\r\n * @param {object} [itsIconConfig=undefined] The icon subtype configuration\r\n * @param {string} itsIconConfig.prop The property used to define icon attribute symbolization\r\n * @param {string} itsIconConfig.defaultName The default name to be used if no other match is found\r\n * @param {string} itsIconConfig.defaultIcon The default icon to be used for no other matches\r\n * @param {object} [itsIconConfig.iconArray=[]] an array, items with format [property, name, img]\r\n *\r\n * @param {object} [itsLineConfig=undefined] The property used to define icon attribute symbolization\r\n * @param {string} itsLineConfig.prop The property used to define icon attribute symbolization\r\n * @param {string} [itsLineConfig.defaultName=Other] The default name to be used if no other match is found\r\n * @param {string} [itsLineConfig.defaultColor=red] The default line color to be used for no other matches\r\n * @param {number} [itsLineConfig.defaultWidth=5] The default line width to be used for no other matches\r\n * @param {object} [itsLineConfig.lineArray=[]] an array, items with format [property, name, color, optional width]\r\n * @returns {*} undefined, style, or style function\r\n */\r\nfunction defineStyle(itsIcon, itsLineStyle, itsIconConfig, itsLineConfig) {\r\n \"use strict\";\r\n checkStyleNumber(itsIcon, itsLineStyle, itsIconConfig, itsLineConfig);\r\n var _iconUrlRoot = 'http://transportal.cee.wisc.edu/its/inventory/icons/';\r\n if (itsIcon) {\r\n return new ol.style.Style({\r\n image: new ol.style.Icon({\r\n src: _iconUrlRoot + itsIcon,\r\n crossOrigin: 'anonymous'\r\n })\r\n });\r\n }\r\n else if (itsLineStyle) {\r\n return new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: itsLineStyle.color,\r\n width: itsLineStyle.width\r\n })\r\n });\r\n }\r\n else if (itsIconConfig) {\r\n return function (feature) {\r\n var symbolProp = feature.getProperties()[itsIconConfig.prop];\r\n var iconUrl = _iconUrlRoot + itsIconConfig.defaultIcon;\r\n for (var i = 0; i < itsIconConfig.iconArray.length; i++) {\r\n var thisProp = itsIconConfig.iconArray[i];\r\n if (symbolProp.trim().toLocaleLowerCase() == thisProp[0].trim().toLocaleLowerCase()) {\r\n iconUrl = _iconUrlRoot + thisProp[2];\r\n break;\r\n }\r\n }\r\n return [new ol.style.Style({\r\n image: new ol.style.Icon({\r\n src: iconUrl,\r\n crossOrigin: 'anonymous'\r\n })\r\n })];\r\n };\r\n }\r\n else if (itsLineConfig) {\r\n return function (feature) {\r\n var symbolProp = feature.getProperties()[itsLineConfig.prop];\r\n var colr = itsLineConfig.defaultColor || 'red';\r\n var width = itsLineConfig.defaultWidth || 5;\r\n for (var i = 0; i < itsLineConfig.lineArray.length; i++) {\r\n var thisProp = itsLineConfig.lineArray[i];\r\n if (symbolProp.trim().toLocaleLowerCase() == thisProp[0].trim().toLocaleLowerCase()) {\r\n colr = thisProp[2];\r\n width = thisProp[3];\r\n break;\r\n }\r\n }\r\n return [new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: colr,\r\n width: width\r\n })\r\n })];\r\n };\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\n/**\r\n *\r\n * @param {string} [itsIcon=undefined] the ITS device type icon image see http://transportal.cee.wisc.edu/its/inventory/icons/\r\n *\r\n * @param {object} [itsLineStyle=undefined] A single line style\r\n * @param {string} itsLineStyle.color the line color as rgb or hex\r\n * @param {number} [itsLineStyle.width=5] the line width\r\n *\r\n * @param {object} [itsIconConfig=undefined] The icon subtype configuration\r\n * @param {string} itsIconConfig.prop The property used to define icon attribute symbolization\r\n * @param {string} itsIconConfig.defaultName The default name to be used if no other match is found\r\n * @param {string} itsIconConfig.defaultIcon The default icon to be used for no other matches\r\n * @param {object} [itsIconConfig.iconArray=[]] an array, items with format [property, name, img]\r\n *\r\n * @param {object} [itsLineConfig=undefined] The property used to define icon attribute symbolization\r\n * @param {string} itsLineConfig.prop The property used to define icon attribute symbolization\r\n * @param {string} [itsLineConfig.defaultName=Other] The default name to be used if no other match is found\r\n * @param {string} [itsLineConfig.defaultColor=red] The default line color to be used for no other matches\r\n * @param {number} [itsLineConfig.defaultWidth=5] The default line width to be used for no other matches\r\n * @param {object} [itsLineConfig.lineArray=[]] an array, items with format [property, name, color, optional width]\r\n * @returns {string} html to be added to the legend\r\n */\r\nfunction defineLegend(itsIcon, itsLineStyle, itsIconConfig, itsLineConfig) {\r\n \"use strict\";\r\n var iconHeight = 17;\r\n checkStyleNumber(itsIcon, itsLineStyle, itsIconConfig, itsLineConfig);\r\n var _iconUrlRoot = 'http://transportal.cee.wisc.edu/its/inventory/icons/';\r\n if (itsIcon) {\r\n return \"<img src=\\\"\" + (_iconUrlRoot + itsIcon) + \"\\\" class=\\\"legend-layer-icon\\\" height=\\\"\" + iconHeight + \"\\\">\";\r\n }\r\n else if (itsLineStyle) {\r\n return \"<hr style=\\\"height: \" + itsLineStyle.width + \"px; background-color: \" + itsLineStyle.color + \"\\\">\";\r\n }\r\n else if (itsIconConfig) {\r\n var outHtml = '';\r\n outHtml += '<ul>';\r\n for (var _i = 0, _a = itsIconConfig.iconArray; _i < _a.length; _i++) {\r\n var a = _a[_i];\r\n outHtml += \"<li><span class=\\\"legend-layer-subitem\\\">\" + a[1] + \"</span><img src=\\\"\" + (_iconUrlRoot + a[2]) + \"\\\" class=\\\"legend-layer-icon\\\" height=\\\"\" + iconHeight + \"\\\">\";\r\n }\r\n outHtml += \"<li><span class=\\\"legend-layer-subitem\\\">\" + itsIconConfig.defaultName + \"</span>\" +\r\n (\"<img src=\\\"\" + (_iconUrlRoot + itsIconConfig.defaultIcon) + \"\\\" class=\\\"legend-layer-icon\\\" height=\\\"\" + iconHeight + \"\\\"></li>\");\r\n outHtml += '</ul>';\r\n return outHtml;\r\n }\r\n else if (itsLineConfig) {\r\n var outHtml = '';\r\n outHtml += '<ul>';\r\n for (var _b = 0, _c = itsLineConfig.lineArray; _b < _c.length; _b++) {\r\n var ls = _c[_b];\r\n outHtml += \"<li><span class=\\\"legend-layer-subitem\\\">\" + ls[1] + \"</span>\" +\r\n (\"<hr style=\\\"height: \" + ls[3] + \"px; background-color: \" + ls[2] + \"\\\">\");\r\n }\r\n outHtml += \"<li><span class=\\\"legend-layer-subitem\\\">\" + itsLineConfig.defaultName + \"</span>\" +\r\n (\"<hr style=\\\"height: \" + itsLineConfig.defaultWidth + \"px; background-color: \" + itsLineConfig.defaultColor + \"\\\"></li>\");\r\n outHtml += '</ul>';\r\n return outHtml;\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\n/**\r\n * Its Layer class\r\n * @augments LayerBaseVectorGeoJson\r\n */\r\nvar LayerItsInventory = (function (_super) {\r\n __extends(LayerItsInventory, _super);\r\n /**\r\n * ITS device layer, types available at http://transportal.cee.wisc.edu/its/inventory/\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 {boolean} [options.autoLoad=false] if the layer should auto load if not visible\r\n * @param {object|*} [options.style=undefined] the layer style, use openlayers default style if not defined\r\n * @param {boolean} [options.onDemand=false] if the layer should be loaded by extent on map move\r\n * @param {number} [options.onDemandDelay=300] delay before the map move callback should be called\r\n * @param {MapMoveCls} [options.mapMoveObj=mapMove] alternate map move object for use with multi map pages\r\n *\r\n * @param {string} options.itsType the ITS device type, use the url flag at http://transportal.cee.wisc.edu/its/inventory/\r\n * @param {boolean} [options.addPopup=true] if the popup should be added automatically\r\n *\r\n * @param {string} [options.itsIcon=undefined] the ITS device type icon image see http://transportal.cee.wisc.edu/its/inventory/icons/\r\n *\r\n * @param {object} [options.itsLineStyle=undefined] A single line style\r\n * @param {string} options.itsLineStyle.color the line color as rgb or hex\r\n * @param {number} [options.itsLineStyle.width=5] the line width\r\n *\r\n * @param {object} [options.itsIconConfig=undefined] The icon subtype configuration\r\n * @param {string} options.itsIconConfig.prop The property used to define icon attribute symbolization\r\n * @param {string} options.itsIconConfig.defaultName The default name to be used if no other match is found\r\n * @param {string} options.itsIconConfig.defaultIcon The default icon to be used for no other matches\r\n * @param {object} [options.itsIconConfig.iconArray=[]] an array, items with format [property, name, img]\r\n *\r\n * @param {object} [options.itsLineConfig=undefined] The property used to define icon attribute symbolization\r\n * @param {string} options.itsLineConfig.prop The property used to define icon attribute symbolization\r\n * @param {string} [options.itsLineConfig.defaultName=Other] The default name to be used if no other match is found\r\n * @param {string} [options.itsLineConfig.defaultColor=red] The default line color to be used for no other matches\r\n * @param {number} [options.itsLineConfig.defaultWidth] The default line width to be used for no other matches\r\n * @param {object} [options.itsLineConfig.lineArray=[]] an array, items with format [property, name, color, optional width = 5]\r\n */\r\n function LayerItsInventory(options) {\r\n var _this = this;\r\n if (typeof options.itsType !== 'string') {\r\n throw 'its type must be defined';\r\n }\r\n options.transform = { dataProjection: projections_1.proj4326, featureProjection: projections_1.proj3857 };\r\n var addToLegend = '';\r\n // define a style with the helper function if it is not explicitly defined\r\n if (typeof options.style == 'undefined') {\r\n options.style = defineStyle(options.itsIcon, options.itsLineStyle, options.itsIconConfig, options.itsLineConfig);\r\n addToLegend = defineLegend(options.itsIcon, options.itsLineStyle, options.itsIconConfig, options.itsLineConfig);\r\n }\r\n options.params = typeof options.params == 'object' ? options.params : {};\r\n $.extend(options.params, { format: 'JSON', resource: options.itsType });\r\n _this = _super.call(this, 'http://transportal.cee.wisc.edu/its/inventory/', options) || this;\r\n //add any additional content to the legend\r\n _this.addLegendContent(addToLegend);\r\n options.addPopup = typeof options.addPopup == 'boolean' ? options.addPopup : true;\r\n if (options.addPopup) {\r\n mapPopup_1.default.addVectorPopup(_this, function (props) {\r\n return \"<iframe src=\\\"http://transportal.cee.wisc.edu/its/inventory/?feature=\" + props['featureGuid'] + \"\\\" \" +\r\n \"height=\\\"250\\\" width=\\\"350\\\"></iframe>\";\r\n });\r\n }\r\n return _this;\r\n }\r\n /**\r\n * callback to generate the parameters passed in the get request\r\n * @callback makeGetParams\r\n * @param {object} extent - extent object\r\n * @param {number} extent.minX - minX\r\n * @param {number} extent.minY - minY\r\n * @param {number} extent.maxX - maxX\r\n * @param {number} extent.maxY - maxY\r\n * @param {number} zoomLevel - zoom level\r\n */\r\n LayerItsInventory.prototype.mapMoveMakeGetParams = function (extent, zoomLevel) {\r\n _super.prototype.mapMoveMakeGetParams.call(this, extent, zoomLevel);\r\n var lowerLeft = new ol.geom.Point([extent.minX, extent.minY]);\r\n lowerLeft.transform(this.mapProj, this._projection4326);\r\n var lowerLeftCoordinates = lowerLeft.getCoordinates();\r\n var upperRight = new ol.geom.Point([extent.maxX, extent.maxY]);\r\n upperRight.transform(this.mapProj, this._projection4326);\r\n var upperRightCoordinates = upperRight.getCoordinates();\r\n $.extend(this.mapMoveParams, {\r\n L: lowerLeftCoordinates[0],\r\n R: upperRightCoordinates[0],\r\n B: lowerLeftCoordinates[1],\r\n T: upperRightCoordinates[1]\r\n });\r\n };\r\n return LayerItsInventory;\r\n}(LayerBaseVectorGeoJson_1.default));\r\nnm.LayerItsInventory = LayerItsInventory;\r\nexports.default = LayerItsInventory;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJJdHNJbnZlbnRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJMYXllckl0c0ludmVudG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7Ozs7Ozs7Ozs7OztBQUVILG1FQUE4RDtBQUM5RCxrREFBNkM7QUFDN0MsMkNBQXNDO0FBQ3RDLDhCQUFpQztBQUNqQywwQkFBNkI7QUFDN0Isd0RBQTJEO0FBRTNELElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFHM0IsMEJBQTBCLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGFBQWE7SUFDekUsWUFBWSxDQUFDO0lBRWIsc0RBQXNEO0lBQ3RELElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztJQUNwQixFQUFFLENBQUMsQ0FBQyxPQUFPLE9BQU8sSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzdCLFdBQVcsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxFQUFFLENBQUMsQ0FBQyxPQUFPLFlBQVksSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLFlBQVksQ0FBQyxLQUFLLEdBQUcsT0FBTyxZQUFZLENBQUMsS0FBSyxJQUFJLFFBQVEsR0FBRyxZQUFZLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNwRixZQUFZLENBQUMsS0FBSyxHQUFHLE9BQU8sWUFBWSxDQUFDLEtBQUssSUFBSSxRQUFRLEdBQUcsWUFBWSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDeEYsV0FBVyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELEVBQUUsQ0FBQyxDQUFDLE9BQU8sYUFBYSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbkMsYUFBYSxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQztRQUVqRSxFQUFFLENBQUMsQ0FBQyxPQUFPLGFBQWEsQ0FBQyxTQUFTLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNoRCxhQUFhLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNqQyxDQUFDO1FBRUQsV0FBVyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELEVBQUUsQ0FBQyxDQUFDLE9BQU8sYUFBYSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbkMsYUFBYSxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQztRQUNqRSxhQUFhLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO1FBQzdELGFBQWEsQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUM7UUFHakUsRUFBRSxDQUFDLENBQUMsT0FBTyxhQUFhLENBQUMsU0FBUyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDaEQsYUFBYSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDakMsQ0FBQztRQUVELCtCQUErQjtRQUMvQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDdEQsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDekMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNMLENBQUM7UUFFRCxXQUFXLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsRUFBRSxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsTUFBTSxzQ0FBc0MsQ0FBQztJQUNqRCxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxxQkFBcUIsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYTtJQUNwRSxZQUFZLENBQUM7SUFDYixnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUV0RSxJQUFJLFlBQVksR0FBRyxzREFBc0QsQ0FBQztJQUUxRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ1YsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDdEIsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ3BCO2dCQUNJLEdBQUcsRUFBRSxZQUFZLEdBQUcsT0FBTztnQkFDM0IsV0FBVyxFQUFFLFdBQVc7YUFDM0IsQ0FDSjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUN0QixNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztnQkFDeEIsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLO2dCQUN6QixLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7YUFDNUIsQ0FBQztTQUNMLENBQUMsQ0FBQztJQUNQLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUN2QixNQUFNLENBQUMsVUFBVSxPQUFtQjtZQUNoQyxJQUFJLFVBQVUsR0FBRyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdELElBQUksT0FBTyxHQUFHLFlBQVksR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDO1lBRXZELEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxRQUFRLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFMUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLGlCQUFpQixFQUFFLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNsRixPQUFPLEdBQUcsWUFBWSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDckMsS0FBSyxDQUFDO2dCQUNWLENBQUM7WUFDTCxDQUFDO1lBRUQsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztvQkFDdkIsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ3BCO3dCQUNJLEdBQUcsRUFBRSxPQUFPO3dCQUNaLFdBQVcsRUFBRSxXQUFXO3FCQUMzQixDQUNKO2lCQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ1IsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxVQUFVLE9BQW1CO1lBQ2hDLElBQUksVUFBVSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0QsSUFBSSxJQUFJLEdBQUcsYUFBYSxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUM7WUFDL0MsSUFBSSxLQUFLLEdBQUcsYUFBYSxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUM7WUFFNUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUN0RCxJQUFJLFFBQVEsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUUxQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ2xGLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ25CLEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3BCLEtBQUssQ0FBQztnQkFDVixDQUFDO1lBQ0wsQ0FBQztZQUVELE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7b0JBQ3ZCLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO3dCQUN4QixLQUFLLEVBQUUsSUFBSTt3QkFDWCxLQUFLLEVBQUUsS0FBSztxQkFDZixDQUFDO2lCQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1IsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUNyQixDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxzQkFBc0IsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYTtJQUNyRSxZQUFZLENBQUM7SUFFYixJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFFcEIsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFFdEUsSUFBSSxZQUFZLEdBQUcsc0RBQXNELENBQUM7SUFFMUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNWLE1BQU0sQ0FBQyxpQkFBYSxZQUFZLEdBQUcsT0FBTyxpREFBdUMsVUFBVSxRQUFJLENBQUM7SUFDcEcsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sQ0FBQyx5QkFBc0IsWUFBWSxDQUFDLEtBQUssOEJBQXlCLFlBQVksQ0FBQyxLQUFLLFFBQUksQ0FBQztJQUNuRyxDQUFDO0lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDdkIsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sSUFBSSxNQUFNLENBQUM7UUFFbEIsR0FBRyxDQUFDLENBQVUsVUFBdUIsRUFBdkIsS0FBQSxhQUFhLENBQUMsU0FBUyxFQUF2QixjQUF1QixFQUF2QixJQUF1QjtZQUFoQyxJQUFJLENBQUMsU0FBQTtZQUNOLE9BQU8sSUFBSSw4Q0FBMEMsQ0FBQyxDQUFDLENBQUMsQ0FBQywyQkFBb0IsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsaURBQXVDLFVBQVUsUUFBSSxDQUFDO1NBQ3pKO1FBQ0QsT0FBTyxJQUFJLDhDQUEwQyxhQUFhLENBQUMsV0FBVyxZQUFTO2FBQ25GLGlCQUFhLFlBQVksR0FBRyxhQUFhLENBQUMsV0FBVyxpREFBdUMsVUFBVSxhQUFTLENBQUEsQ0FBQztRQUNwSCxPQUFPLElBQUksT0FBTyxDQUFDO1FBRW5CLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNqQixPQUFPLElBQUksTUFBTSxDQUFDO1FBQ2xCLEdBQUcsQ0FBQyxDQUFXLFVBQXVCLEVBQXZCLEtBQUEsYUFBYSxDQUFDLFNBQVMsRUFBdkIsY0FBdUIsRUFBdkIsSUFBdUI7WUFBakMsSUFBSSxFQUFFLFNBQUE7WUFDUCxPQUFPLElBQUksOENBQTBDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBUztpQkFDL0QseUJBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUMsOEJBQXlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBSSxDQUFBLENBQUM7U0FDckU7UUFDRCxPQUFPLElBQUksOENBQTBDLGFBQWEsQ0FBQyxXQUFXLFlBQVM7YUFDbkYseUJBQXNCLGFBQWEsQ0FBQyxZQUFZLDhCQUF5QixhQUFhLENBQUMsWUFBWSxhQUFTLENBQUEsQ0FBQztRQUNqSCxPQUFPLElBQUksT0FBTyxDQUFDO1FBRW5CLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUNkLENBQUM7QUFDTCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0g7SUFBZ0MscUNBQXNCO0lBRWxEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BMkNHO0lBQ0gsMkJBQVksT0FBTztRQUFuQixpQkFtQ0M7UUFsQ0csRUFBRSxDQUFDLENBQUMsT0FBTyxPQUFPLENBQUMsT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSwwQkFBMEIsQ0FBQztRQUNyQyxDQUFDO1FBRUQsT0FBTyxDQUFDLFNBQVMsR0FBRyxFQUFDLGNBQWMsRUFBRSxzQkFBUSxFQUFFLGlCQUFpQixFQUFFLHNCQUFRLEVBQUMsQ0FBQztRQUU1RSxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFFckIsMEVBQTBFO1FBQzFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sT0FBTyxDQUFDLEtBQUssSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUN2QixPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUN0RixDQUFDO1lBQ0YsV0FBVyxHQUFHLFlBQVksQ0FDdEIsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FDdEYsQ0FBQztRQUNOLENBQUM7UUFFRCxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sT0FBTyxDQUFDLE1BQU0sSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDekUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQUM7UUFFdEUsUUFBQSxrQkFBTSxnREFBZ0QsRUFBRSxPQUFPLENBQUMsU0FBQztRQUVqRSwwQ0FBMEM7UUFDMUMsS0FBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRW5DLE9BQU8sQ0FBQyxRQUFRLEdBQUcsT0FBTyxPQUFPLENBQUMsUUFBUSxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUVsRixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNuQixrQkFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFJLEVBQUUsVUFBVSxLQUFLO2dCQUN6QyxNQUFNLENBQUMsMEVBQXVFLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBSTtvQkFDbEcsd0NBQW9DLENBQUM7WUFDN0MsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDOztJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxnREFBb0IsR0FBcEIsVUFBcUIsTUFBTSxFQUFFLFNBQVM7UUFDbEMsaUJBQU0sb0JBQW9CLFlBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLElBQUksU0FBUyxHQUFHLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlELFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEQsSUFBSSxvQkFBb0IsR0FBRyxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEQsSUFBSSxVQUFVLEdBQUcsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0QsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN6RCxJQUFJLHFCQUFxQixHQUFHLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV4RCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQ3ZCO1lBQ0ksQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQztZQUMxQixDQUFDLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1lBQzNCLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7WUFDMUIsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQztTQUM5QixDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0wsd0JBQUM7QUFBRCxDQUFDLEFBOUdELENBQWdDLGdDQUFzQixHQThHckQ7QUFFRCxFQUFFLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7QUFDekMsa0JBQWUsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMi84LzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IExheWVyQmFzZVZlY3Rvckdlb0pzb24gZnJvbSAnLi9MYXllckJhc2VWZWN0b3JHZW9Kc29uJztcclxuaW1wb3J0IG1hcFBvcHVwIGZyb20gJy4uL29sSGVscGVycy9tYXBQb3B1cCc7XHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5pbXBvcnQge3Byb2o0MzI2LCBwcm9qMzg1N30gZnJvbSAnLi4vb2xIZWxwZXJzL3Byb2plY3Rpb25zJ1xyXG5cclxubGV0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5cclxuZnVuY3Rpb24gY2hlY2tTdHlsZU51bWJlcihpdHNJY29uLCBpdHNMaW5lU3R5bGUsIGl0c0ljb25Db25maWcsIGl0c0xpbmVDb25maWcpIHtcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG5cclxuICAgIC8vbWFrZSBzdXJlIG9uZSBhbmQgb25seSBvbmUgY29uZmlndXJhdGlvbiBpcyBkZWZpbmVkO1xyXG4gICAgbGV0IGNvbmZpZ0NvdW50ID0gMDtcclxuICAgIGlmICh0eXBlb2YgaXRzSWNvbiA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgIGNvbmZpZ0NvdW50Kys7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZiBpdHNMaW5lU3R5bGUgPT0gJ29iamVjdCcpIHtcclxuICAgICAgICBpdHNMaW5lU3R5bGUud2lkdGggPSB0eXBlb2YgaXRzTGluZVN0eWxlLndpZHRoID09ICdudW1iZXInID8gaXRzTGluZVN0eWxlLndpZHRoIDogNTtcclxuICAgICAgICBpdHNMaW5lU3R5bGUuY29sb3IgPSB0eXBlb2YgaXRzTGluZVN0eWxlLmNvbG9yID09ICdzdHJpbmcnID8gaXRzTGluZVN0eWxlLmNvbG9yIDogJ3JlZCc7XHJcbiAgICAgICAgY29uZmlnQ291bnQrKztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIGl0c0ljb25Db25maWcgPT0gJ29iamVjdCcpIHtcclxuICAgICAgICBpdHNJY29uQ29uZmlnLmRlZmF1bHROYW1lID0gaXRzSWNvbkNvbmZpZy5kZWZhdWx0TmFtZSB8fCAnT3RoZXInO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIGl0c0ljb25Db25maWcuaWNvbkFycmF5ID09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIGl0c0ljb25Db25maWcuaWNvbkFycmF5ID0gW107XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25maWdDb3VudCsrO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlb2YgaXRzTGluZUNvbmZpZyA9PSAnb2JqZWN0Jykge1xyXG4gICAgICAgIGl0c0xpbmVDb25maWcuZGVmYXVsdE5hbWUgPSBpdHNMaW5lQ29uZmlnLmRlZmF1bHROYW1lIHx8ICdPdGhlcic7XHJcbiAgICAgICAgaXRzTGluZUNvbmZpZy5kZWZhdWx0V2lkdGggPSBpdHNMaW5lQ29uZmlnLmRlZmF1bHRXaWR0aCB8fCA1O1xyXG4gICAgICAgIGl0c0xpbmVDb25maWcuZGVmYXVsdENvbG9yID0gaXRzTGluZUNvbmZpZy5kZWZhdWx0Q29sb3IgfHwgJ3JlZCc7XHJcblxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIGl0c0xpbmVDb25maWcubGluZUFycmF5ID09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIGl0c0xpbmVDb25maWcubGluZUFycmF5ID0gW107XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBzZXQgdGhlIHdpZHRoIGlmIG5vdCBkZWZpbmVkXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdHNMaW5lQ29uZmlnLmxpbmVBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoaXRzTGluZUNvbmZpZy5saW5lQXJyYXlbaV0ubGVuZ3RoID09IDMpIHtcclxuICAgICAgICAgICAgICAgIGl0c0xpbmVDb25maWcubGluZUFycmF5W2ldLnB1c2goNSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbmZpZ0NvdW50Kys7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZ0NvdW50ID4gMSkge1xyXG4gICAgICAgIHRocm93ICdPbmx5IG9uZSBzdHlsZSBjb25maWcgY2FuIGJlIGRlZmluZWQnO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IFtpdHNJY29uPXVuZGVmaW5lZF0gdGhlIElUUyBkZXZpY2UgdHlwZSBpY29uIGltYWdlIHNlZSBodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2l0cy9pbnZlbnRvcnkvaWNvbnMvXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBbaXRzTGluZVN0eWxlPXVuZGVmaW5lZF0gQSBzaW5nbGUgbGluZSBzdHlsZVxyXG4gKiBAcGFyYW0ge3N0cmluZ30gaXRzTGluZVN0eWxlLmNvbG9yIHRoZSBsaW5lIGNvbG9yIGFzIHJnYiBvciBoZXhcclxuICogQHBhcmFtIHtudW1iZXJ9IFtpdHNMaW5lU3R5bGUud2lkdGg9NV0gdGhlIGxpbmUgd2lkdGhcclxuICpcclxuICogQHBhcmFtIHtvYmplY3R9IFtpdHNJY29uQ29uZmlnPXVuZGVmaW5lZF0gVGhlIGljb24gc3VidHlwZSBjb25maWd1cmF0aW9uXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBpdHNJY29uQ29uZmlnLnByb3AgVGhlIHByb3BlcnR5IHVzZWQgdG8gZGVmaW5lIGljb24gYXR0cmlidXRlIHN5bWJvbGl6YXRpb25cclxuICogQHBhcmFtIHtzdHJpbmd9IGl0c0ljb25Db25maWcuZGVmYXVsdE5hbWUgVGhlIGRlZmF1bHQgbmFtZSB0byBiZSB1c2VkIGlmIG5vIG90aGVyIG1hdGNoIGlzIGZvdW5kXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBpdHNJY29uQ29uZmlnLmRlZmF1bHRJY29uIFRoZSBkZWZhdWx0IGljb24gdG8gYmUgdXNlZCBmb3Igbm8gb3RoZXIgbWF0Y2hlc1xyXG4gKiBAcGFyYW0ge29iamVjdH0gW2l0c0ljb25Db25maWcuaWNvbkFycmF5PVtdXSBhbiBhcnJheSwgaXRlbXMgd2l0aCBmb3JtYXQgW3Byb3BlcnR5LCBuYW1lLCBpbWddXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBbaXRzTGluZUNvbmZpZz11bmRlZmluZWRdIFRoZSBwcm9wZXJ0eSB1c2VkIHRvIGRlZmluZSBpY29uIGF0dHJpYnV0ZSBzeW1ib2xpemF0aW9uXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBpdHNMaW5lQ29uZmlnLnByb3AgVGhlIHByb3BlcnR5IHVzZWQgdG8gZGVmaW5lIGljb24gYXR0cmlidXRlIHN5bWJvbGl6YXRpb25cclxuICogQHBhcmFtIHtzdHJpbmd9IFtpdHNMaW5lQ29uZmlnLmRlZmF1bHROYW1lPU90aGVyXSBUaGUgZGVmYXVsdCBuYW1lIHRvIGJlIHVzZWQgaWYgbm8gb3RoZXIgbWF0Y2ggaXMgZm91bmRcclxuICogQHBhcmFtIHtzdHJpbmd9IFtpdHNMaW5lQ29uZmlnLmRlZmF1bHRDb2xvcj1yZWRdIFRoZSBkZWZhdWx0IGxpbmUgY29sb3IgdG8gYmUgdXNlZCBmb3Igbm8gb3RoZXIgbWF0Y2hlc1xyXG4gKiBAcGFyYW0ge251bWJlcn0gW2l0c0xpbmVDb25maWcuZGVmYXVsdFdpZHRoPTVdIFRoZSBkZWZhdWx0IGxpbmUgd2lkdGggdG8gYmUgdXNlZCBmb3Igbm8gb3RoZXIgbWF0Y2hlc1xyXG4gKiBAcGFyYW0ge29iamVjdH0gW2l0c0xpbmVDb25maWcubGluZUFycmF5PVtdXSBhbiBhcnJheSwgaXRlbXMgd2l0aCBmb3JtYXQgW3Byb3BlcnR5LCBuYW1lLCBjb2xvciwgb3B0aW9uYWwgd2lkdGhdXHJcbiAqIEByZXR1cm5zIHsqfSB1bmRlZmluZWQsIHN0eWxlLCBvciBzdHlsZSBmdW5jdGlvblxyXG4gKi9cclxuZnVuY3Rpb24gZGVmaW5lU3R5bGUoaXRzSWNvbiwgaXRzTGluZVN0eWxlLCBpdHNJY29uQ29uZmlnLCBpdHNMaW5lQ29uZmlnKSA6IG9sLnN0eWxlLlN0eWxlfEFycmF5PG9sLnN0eWxlLlN0eWxlPnxvbC5TdHlsZUZ1bmN0aW9ue1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcbiAgICBjaGVja1N0eWxlTnVtYmVyKGl0c0ljb24sIGl0c0xpbmVTdHlsZSwgaXRzSWNvbkNvbmZpZywgaXRzTGluZUNvbmZpZyk7XHJcblxyXG4gICAgbGV0IF9pY29uVXJsUm9vdCA9ICdodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2l0cy9pbnZlbnRvcnkvaWNvbnMvJztcclxuXHJcbiAgICBpZiAoaXRzSWNvbikge1xyXG4gICAgICAgIHJldHVybiBuZXcgb2wuc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICBpbWFnZTogbmV3IG9sLnN0eWxlLkljb24oXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3JjOiBfaWNvblVybFJvb3QgKyBpdHNJY29uLFxyXG4gICAgICAgICAgICAgICAgICAgIGNyb3NzT3JpZ2luOiAnYW5vbnltb3VzJ1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGl0c0xpbmVTdHlsZSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgb2wuc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICBzdHJva2U6IG5ldyBvbC5zdHlsZS5TdHJva2Uoe1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IGl0c0xpbmVTdHlsZS5jb2xvcixcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBpdHNMaW5lU3R5bGUud2lkdGhcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoaXRzSWNvbkNvbmZpZykge1xyXG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoZmVhdHVyZTogb2wuRmVhdHVyZSkge1xyXG4gICAgICAgICAgICBsZXQgc3ltYm9sUHJvcCA9IGZlYXR1cmUuZ2V0UHJvcGVydGllcygpW2l0c0ljb25Db25maWcucHJvcF07XHJcbiAgICAgICAgICAgIGxldCBpY29uVXJsID0gX2ljb25VcmxSb290ICsgaXRzSWNvbkNvbmZpZy5kZWZhdWx0SWNvbjtcclxuXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRzSWNvbkNvbmZpZy5pY29uQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCB0aGlzUHJvcCA9IGl0c0ljb25Db25maWcuaWNvbkFycmF5W2ldO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChzeW1ib2xQcm9wLnRyaW0oKS50b0xvY2FsZUxvd2VyQ2FzZSgpID09IHRoaXNQcm9wWzBdLnRyaW0oKS50b0xvY2FsZUxvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWNvblVybCA9IF9pY29uVXJsUm9vdCArIHRoaXNQcm9wWzJdO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gW25ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICBpbWFnZTogbmV3IG9sLnN0eWxlLkljb24oXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzcmM6IGljb25VcmwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyb3NzT3JpZ2luOiAnYW5vbnltb3VzJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgfSldO1xyXG4gICAgICAgIH07XHJcbiAgICB9IGVsc2UgaWYgKGl0c0xpbmVDb25maWcpIHtcclxuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGZlYXR1cmU6IG9sLkZlYXR1cmUpIHtcclxuICAgICAgICAgICAgbGV0IHN5bWJvbFByb3AgPSBmZWF0dXJlLmdldFByb3BlcnRpZXMoKVtpdHNMaW5lQ29uZmlnLnByb3BdO1xyXG4gICAgICAgICAgICBsZXQgY29sciA9IGl0c0xpbmVDb25maWcuZGVmYXVsdENvbG9yIHx8ICdyZWQnO1xyXG4gICAgICAgICAgICBsZXQgd2lkdGggPSBpdHNMaW5lQ29uZmlnLmRlZmF1bHRXaWR0aCB8fCA1O1xyXG5cclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdHNMaW5lQ29uZmlnLmxpbmVBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHRoaXNQcm9wID0gaXRzTGluZUNvbmZpZy5saW5lQXJyYXlbaV07XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHN5bWJvbFByb3AudHJpbSgpLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT0gdGhpc1Byb3BbMF0udHJpbSgpLnRvTG9jYWxlTG93ZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xyID0gdGhpc1Byb3BbMl07XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGggPSB0aGlzUHJvcFszXTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIFtuZXcgb2wuc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgc3Ryb2tlOiBuZXcgb2wuc3R5bGUuU3Ryb2tlKHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogY29scixcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGhcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH0pXTtcclxuICAgICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IFtpdHNJY29uPXVuZGVmaW5lZF0gdGhlIElUUyBkZXZpY2UgdHlwZSBpY29uIGltYWdlIHNlZSBodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2l0cy9pbnZlbnRvcnkvaWNvbnMvXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBbaXRzTGluZVN0eWxlPXVuZGVmaW5lZF0gQSBzaW5nbGUgbGluZSBzdHlsZVxyXG4gKiBAcGFyYW0ge3N0cmluZ30gaXRzTGluZVN0eWxlLmNvbG9yIHRoZSBsaW5lIGNvbG9yIGFzIHJnYiBvciBoZXhcclxuICogQHBhcmFtIHtudW1iZXJ9IFtpdHNMaW5lU3R5bGUud2lkdGg9NV0gdGhlIGxpbmUgd2lkdGhcclxuICpcclxuICogQHBhcmFtIHtvYmplY3R9IFtpdHNJY29uQ29uZmlnPXVuZGVmaW5lZF0gVGhlIGljb24gc3VidHlwZSBjb25maWd1cmF0aW9uXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBpdHNJY29uQ29uZmlnLnByb3AgVGhlIHByb3BlcnR5IHVzZWQgdG8gZGVmaW5lIGljb24gYXR0cmlidXRlIHN5bWJvbGl6YXRpb25cclxuICogQHBhcmFtIHtzdHJpbmd9IGl0c0ljb25Db25maWcuZGVmYXVsdE5hbWUgVGhlIGRlZmF1bHQgbmFtZSB0byBiZSB1c2VkIGlmIG5vIG90aGVyIG1hdGNoIGlzIGZvdW5kXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBpdHNJY29uQ29uZmlnLmRlZmF1bHRJY29uIFRoZSBkZWZhdWx0IGljb24gdG8gYmUgdXNlZCBmb3Igbm8gb3RoZXIgbWF0Y2hlc1xyXG4gKiBAcGFyYW0ge29iamVjdH0gW2l0c0ljb25Db25maWcuaWNvbkFycmF5PVtdXSBhbiBhcnJheSwgaXRlbXMgd2l0aCBmb3JtYXQgW3Byb3BlcnR5LCBuYW1lLCBpbWddXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBbaXRzTGluZUNvbmZpZz11bmRlZmluZWRdIFRoZSBwcm9wZXJ0eSB1c2VkIHRvIGRlZmluZSBpY29uIGF0dHJpYnV0ZSBzeW1ib2xpemF0aW9uXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBpdHNMaW5lQ29uZmlnLnByb3AgVGhlIHByb3BlcnR5IHVzZWQgdG8gZGVmaW5lIGljb24gYXR0cmlidXRlIHN5bWJvbGl6YXRpb25cclxuICogQHBhcmFtIHtzdHJpbmd9IFtpdHNMaW5lQ29uZmlnLmRlZmF1bHROYW1lPU90aGVyXSBUaGUgZGVmYXVsdCBuYW1lIHRvIGJlIHVzZWQgaWYgbm8gb3RoZXIgbWF0Y2ggaXMgZm91bmRcclxuICogQHBhcmFtIHtzdHJpbmd9IFtpdHNMaW5lQ29uZmlnLmRlZmF1bHRDb2xvcj1yZWRdIFRoZSBkZWZhdWx0IGxpbmUgY29sb3IgdG8gYmUgdXNlZCBmb3Igbm8gb3RoZXIgbWF0Y2hlc1xyXG4gKiBAcGFyYW0ge251bWJlcn0gW2l0c0xpbmVDb25maWcuZGVmYXVsdFdpZHRoPTVdIFRoZSBkZWZhdWx0IGxpbmUgd2lkdGggdG8gYmUgdXNlZCBmb3Igbm8gb3RoZXIgbWF0Y2hlc1xyXG4gKiBAcGFyYW0ge29iamVjdH0gW2l0c0xpbmVDb25maWcubGluZUFycmF5PVtdXSBhbiBhcnJheSwgaXRlbXMgd2l0aCBmb3JtYXQgW3Byb3BlcnR5LCBuYW1lLCBjb2xvciwgb3B0aW9uYWwgd2lkdGhdXHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IGh0bWwgdG8gYmUgYWRkZWQgdG8gdGhlIGxlZ2VuZFxyXG4gKi9cclxuZnVuY3Rpb24gZGVmaW5lTGVnZW5kKGl0c0ljb24sIGl0c0xpbmVTdHlsZSwgaXRzSWNvbkNvbmZpZywgaXRzTGluZUNvbmZpZykge1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG4gICAgbGV0IGljb25IZWlnaHQgPSAxNztcclxuXHJcbiAgICBjaGVja1N0eWxlTnVtYmVyKGl0c0ljb24sIGl0c0xpbmVTdHlsZSwgaXRzSWNvbkNvbmZpZywgaXRzTGluZUNvbmZpZyk7XHJcblxyXG4gICAgbGV0IF9pY29uVXJsUm9vdCA9ICdodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2l0cy9pbnZlbnRvcnkvaWNvbnMvJztcclxuXHJcbiAgICBpZiAoaXRzSWNvbikge1xyXG4gICAgICAgIHJldHVybiBgPGltZyBzcmM9XCIke19pY29uVXJsUm9vdCArIGl0c0ljb259XCIgY2xhc3M9XCJsZWdlbmQtbGF5ZXItaWNvblwiIGhlaWdodD1cIiR7aWNvbkhlaWdodH1cIj5gO1xyXG4gICAgfSBlbHNlIGlmIChpdHNMaW5lU3R5bGUpIHtcclxuICAgICAgICByZXR1cm4gYDxociBzdHlsZT1cImhlaWdodDogJHtpdHNMaW5lU3R5bGUud2lkdGh9cHg7IGJhY2tncm91bmQtY29sb3I6ICR7aXRzTGluZVN0eWxlLmNvbG9yfVwiPmA7XHJcbiAgICB9IGVsc2UgaWYgKGl0c0ljb25Db25maWcpIHtcclxuICAgICAgICBsZXQgb3V0SHRtbCA9ICcnO1xyXG4gICAgICAgIG91dEh0bWwgKz0gJzx1bD4nO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBhIG9mIGl0c0ljb25Db25maWcuaWNvbkFycmF5KSB7XHJcbiAgICAgICAgICAgIG91dEh0bWwgKz0gYDxsaT48c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHthWzFdfTwvc3Bhbj48aW1nIHNyYz1cIiR7X2ljb25VcmxSb290ICsgYVsyXX1cIiBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgaGVpZ2h0PVwiJHtpY29uSGVpZ2h0fVwiPmA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG91dEh0bWwgKz0gYDxsaT48c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtpdHNJY29uQ29uZmlnLmRlZmF1bHROYW1lfTwvc3Bhbj5gICtcclxuICAgICAgICAgICAgYDxpbWcgc3JjPVwiJHtfaWNvblVybFJvb3QgKyBpdHNJY29uQ29uZmlnLmRlZmF1bHRJY29ufVwiIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBoZWlnaHQ9XCIke2ljb25IZWlnaHR9XCI+PC9saT5gO1xyXG4gICAgICAgIG91dEh0bWwgKz0gJzwvdWw+JztcclxuXHJcbiAgICAgICAgcmV0dXJuIG91dEh0bWw7XHJcbiAgICB9IGVsc2UgaWYgKGl0c0xpbmVDb25maWcpIHtcclxuICAgICAgICBsZXQgb3V0SHRtbCA9ICcnO1xyXG4gICAgICAgIG91dEh0bWwgKz0gJzx1bD4nO1xyXG4gICAgICAgIGZvciAobGV0IGxzIG9mIGl0c0xpbmVDb25maWcubGluZUFycmF5KSB7XHJcbiAgICAgICAgICAgIG91dEh0bWwgKz0gYDxsaT48c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtsc1sxXX08L3NwYW4+YCArXHJcbiAgICAgICAgICAgICAgICBgPGhyIHN0eWxlPVwiaGVpZ2h0OiAke2xzWzNdfXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAke2xzWzJdfVwiPmA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG91dEh0bWwgKz0gYDxsaT48c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtpdHNMaW5lQ29uZmlnLmRlZmF1bHROYW1lfTwvc3Bhbj5gICtcclxuICAgICAgICAgICAgYDxociBzdHlsZT1cImhlaWdodDogJHtpdHNMaW5lQ29uZmlnLmRlZmF1bHRXaWR0aH1weDsgYmFja2dyb3VuZC1jb2xvcjogJHtpdHNMaW5lQ29uZmlnLmRlZmF1bHRDb2xvcn1cIj48L2xpPmA7XHJcbiAgICAgICAgb3V0SHRtbCArPSAnPC91bD4nO1xyXG5cclxuICAgICAgICByZXR1cm4gb3V0SHRtbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogSXRzIExheWVyIGNsYXNzXHJcbiAqIEBhdWdtZW50cyBMYXllckJhc2VWZWN0b3JHZW9Kc29uXHJcbiAqL1xyXG5jbGFzcyBMYXllckl0c0ludmVudG9yeSBleHRlbmRzIExheWVyQmFzZVZlY3Rvckdlb0pzb24ge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSVRTIGRldmljZSBsYXllciwgdHlwZXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly90cmFuc3BvcnRhbC5jZWUud2lzYy5lZHUvaXRzL2ludmVudG9yeS9cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIC0gY29uZmlnXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuaWRdIC0gbGF5ZXIgaWRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5uYW1lPVVubmFtZWQgTGF5ZXJdIC0gbGF5ZXIgbmFtZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm9wYWNpdHk9MV0gLSBvcGFjaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnZpc2libGU9dHJ1ZV0gLSBkZWZhdWx0IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5ab29tPXVuZGVmaW5lZF0gLSBtaW4gem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIC0gbWF4IHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnBhcmFtcz17fV0gdGhlIGdldCBwYXJhbWV0ZXJzIHRvIGluY2x1ZGUgdG8gcmV0cmlldmUgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuekluZGV4PTBdIHRoZSB6IGluZGV4IGZvciB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtvcHRpb25zLmxvYWRDYWxsYmFja10gZnVuY3Rpb24gdG8gY2FsbCBvbiBsb2FkLCBjb250ZXh0IHRoaXMgaXMgdGhlIGxheWVyIG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb2xsYXBzZT1mYWxzZV0gaWYgdGhlIGxlZ2VuZCBpdGVtIHNob3VsZCBiZSBpbml0aWFsbHkgY29sbGFwc2VkXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENoZWNrYm94PXRydWVdIGlmIHRoZSBsZWdlbmQgaXRlbSBzaG91bGQgaGF2ZSBhIGNoZWNrYm94IGZvciB2aXNpYmlsaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENvbnRlbnRdIGFkZGl0aW9uYWwgY29udGVudCB0byBhZGQgdG8gdGhlIGxlZ2VuZFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuYXV0b0xvYWQ9ZmFsc2VdIGlmIHRoZSBsYXllciBzaG91bGQgYXV0byBsb2FkIGlmIG5vdCB2aXNpYmxlXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdHwqfSBbb3B0aW9ucy5zdHlsZT11bmRlZmluZWRdIHRoZSBsYXllciBzdHlsZSwgdXNlIG9wZW5sYXllcnMgZGVmYXVsdCBzdHlsZSBpZiBub3QgZGVmaW5lZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5vbkRlbWFuZD1mYWxzZV0gaWYgdGhlIGxheWVyIHNob3VsZCBiZSBsb2FkZWQgYnkgZXh0ZW50IG9uIG1hcCBtb3ZlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMub25EZW1hbmREZWxheT0zMDBdIGRlbGF5IGJlZm9yZSB0aGUgbWFwIG1vdmUgY2FsbGJhY2sgc2hvdWxkIGJlIGNhbGxlZFxyXG4gICAgICogQHBhcmFtIHtNYXBNb3ZlQ2xzfSBbb3B0aW9ucy5tYXBNb3ZlT2JqPW1hcE1vdmVdIGFsdGVybmF0ZSBtYXAgbW92ZSBvYmplY3QgZm9yIHVzZSB3aXRoIG11bHRpIG1hcCBwYWdlc1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLml0c1R5cGUgdGhlIElUUyBkZXZpY2UgdHlwZSwgdXNlIHRoZSB1cmwgZmxhZyBhdCBodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2l0cy9pbnZlbnRvcnkvXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmFkZFBvcHVwPXRydWVdIGlmIHRoZSBwb3B1cCBzaG91bGQgYmUgYWRkZWQgYXV0b21hdGljYWxseVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5pdHNJY29uPXVuZGVmaW5lZF0gdGhlIElUUyBkZXZpY2UgdHlwZSBpY29uIGltYWdlIHNlZSBodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2l0cy9pbnZlbnRvcnkvaWNvbnMvXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLml0c0xpbmVTdHlsZT11bmRlZmluZWRdIEEgc2luZ2xlIGxpbmUgc3R5bGVcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLml0c0xpbmVTdHlsZS5jb2xvciB0aGUgbGluZSBjb2xvciBhcyByZ2Igb3IgaGV4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuaXRzTGluZVN0eWxlLndpZHRoPTVdIHRoZSBsaW5lIHdpZHRoXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLml0c0ljb25Db25maWc9dW5kZWZpbmVkXSBUaGUgaWNvbiBzdWJ0eXBlIGNvbmZpZ3VyYXRpb25cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLml0c0ljb25Db25maWcucHJvcCBUaGUgcHJvcGVydHkgdXNlZCB0byBkZWZpbmUgaWNvbiBhdHRyaWJ1dGUgc3ltYm9saXphdGlvblxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuaXRzSWNvbkNvbmZpZy5kZWZhdWx0TmFtZSBUaGUgZGVmYXVsdCBuYW1lIHRvIGJlIHVzZWQgaWYgbm8gb3RoZXIgbWF0Y2ggaXMgZm91bmRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLml0c0ljb25Db25maWcuZGVmYXVsdEljb24gVGhlIGRlZmF1bHQgaWNvbiB0byBiZSB1c2VkIGZvciBubyBvdGhlciBtYXRjaGVzXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMuaXRzSWNvbkNvbmZpZy5pY29uQXJyYXk9W11dIGFuIGFycmF5LCBpdGVtcyB3aXRoIGZvcm1hdCBbcHJvcGVydHksIG5hbWUsIGltZ11cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMuaXRzTGluZUNvbmZpZz11bmRlZmluZWRdIFRoZSBwcm9wZXJ0eSB1c2VkIHRvIGRlZmluZSBpY29uIGF0dHJpYnV0ZSBzeW1ib2xpemF0aW9uXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5pdHNMaW5lQ29uZmlnLnByb3AgVGhlIHByb3BlcnR5IHVzZWQgdG8gZGVmaW5lIGljb24gYXR0cmlidXRlIHN5bWJvbGl6YXRpb25cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5pdHNMaW5lQ29uZmlnLmRlZmF1bHROYW1lPU90aGVyXSBUaGUgZGVmYXVsdCBuYW1lIHRvIGJlIHVzZWQgaWYgbm8gb3RoZXIgbWF0Y2ggaXMgZm91bmRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5pdHNMaW5lQ29uZmlnLmRlZmF1bHRDb2xvcj1yZWRdIFRoZSBkZWZhdWx0IGxpbmUgY29sb3IgdG8gYmUgdXNlZCBmb3Igbm8gb3RoZXIgbWF0Y2hlc1xyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLml0c0xpbmVDb25maWcuZGVmYXVsdFdpZHRoXSBUaGUgZGVmYXVsdCBsaW5lIHdpZHRoIHRvIGJlIHVzZWQgZm9yIG5vIG90aGVyIG1hdGNoZXNcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucy5pdHNMaW5lQ29uZmlnLmxpbmVBcnJheT1bXV0gYW4gYXJyYXksIGl0ZW1zIHdpdGggZm9ybWF0IFtwcm9wZXJ0eSwgbmFtZSwgY29sb3IsIG9wdGlvbmFsIHdpZHRoID0gNV1cclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5pdHNUeXBlICE9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB0aHJvdyAnaXRzIHR5cGUgbXVzdCBiZSBkZWZpbmVkJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG9wdGlvbnMudHJhbnNmb3JtID0ge2RhdGFQcm9qZWN0aW9uOiBwcm9qNDMyNiwgZmVhdHVyZVByb2plY3Rpb246IHByb2ozODU3fTtcclxuXHJcbiAgICAgICAgbGV0IGFkZFRvTGVnZW5kID0gJyc7XHJcblxyXG4gICAgICAgIC8vIGRlZmluZSBhIHN0eWxlIHdpdGggdGhlIGhlbHBlciBmdW5jdGlvbiBpZiBpdCBpcyBub3QgZXhwbGljaXRseSBkZWZpbmVkXHJcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnN0eWxlID09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIG9wdGlvbnMuc3R5bGUgPSBkZWZpbmVTdHlsZShcclxuICAgICAgICAgICAgICAgIG9wdGlvbnMuaXRzSWNvbiwgb3B0aW9ucy5pdHNMaW5lU3R5bGUsIG9wdGlvbnMuaXRzSWNvbkNvbmZpZywgb3B0aW9ucy5pdHNMaW5lQ29uZmlnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGFkZFRvTGVnZW5kID0gZGVmaW5lTGVnZW5kKFxyXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5pdHNJY29uLCBvcHRpb25zLml0c0xpbmVTdHlsZSwgb3B0aW9ucy5pdHNJY29uQ29uZmlnLCBvcHRpb25zLml0c0xpbmVDb25maWdcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG9wdGlvbnMucGFyYW1zID0gdHlwZW9mIG9wdGlvbnMucGFyYW1zID09ICdvYmplY3QnID8gb3B0aW9ucy5wYXJhbXMgOiB7fTtcclxuICAgICAgICAkLmV4dGVuZChvcHRpb25zLnBhcmFtcywge2Zvcm1hdDogJ0pTT04nLCByZXNvdXJjZTogb3B0aW9ucy5pdHNUeXBlfSk7XHJcblxyXG4gICAgICAgIHN1cGVyKCdodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2l0cy9pbnZlbnRvcnkvJywgb3B0aW9ucyk7XHJcblxyXG4gICAgICAgIC8vYWRkIGFueSBhZGRpdGlvbmFsIGNvbnRlbnQgdG8gdGhlIGxlZ2VuZFxyXG4gICAgICAgIHRoaXMuYWRkTGVnZW5kQ29udGVudChhZGRUb0xlZ2VuZCk7XHJcblxyXG4gICAgICAgIG9wdGlvbnMuYWRkUG9wdXAgPSB0eXBlb2Ygb3B0aW9ucy5hZGRQb3B1cCA9PSAnYm9vbGVhbicgPyBvcHRpb25zLmFkZFBvcHVwIDogdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuYWRkUG9wdXApIHtcclxuICAgICAgICAgICAgbWFwUG9wdXAuYWRkVmVjdG9yUG9wdXAodGhpcywgZnVuY3Rpb24gKHByb3BzKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYDxpZnJhbWUgc3JjPVwiaHR0cDovL3RyYW5zcG9ydGFsLmNlZS53aXNjLmVkdS9pdHMvaW52ZW50b3J5Lz9mZWF0dXJlPSR7cHJvcHNbJ2ZlYXR1cmVHdWlkJ119XCIgYCArXHJcbiAgICAgICAgICAgICAgICAgICAgYGhlaWdodD1cIjI1MFwiIHdpZHRoPVwiMzUwXCI+PC9pZnJhbWU+YDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogY2FsbGJhY2sgdG8gZ2VuZXJhdGUgdGhlIHBhcmFtZXRlcnMgcGFzc2VkIGluIHRoZSBnZXQgcmVxdWVzdFxyXG4gICAgICogQGNhbGxiYWNrIG1ha2VHZXRQYXJhbXNcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBleHRlbnQgLSBleHRlbnQgb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZXh0ZW50Lm1pblggLSBtaW5YXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZXh0ZW50Lm1pblkgLSBtaW5ZXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZXh0ZW50Lm1heFggLSBtYXhYXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZXh0ZW50Lm1heFkgLSBtYXhZXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gem9vbUxldmVsIC0gem9vbSBsZXZlbFxyXG4gICAgICovXHJcbiAgICBtYXBNb3ZlTWFrZUdldFBhcmFtcyhleHRlbnQsIHpvb21MZXZlbCkge1xyXG4gICAgICAgIHN1cGVyLm1hcE1vdmVNYWtlR2V0UGFyYW1zKGV4dGVudCwgem9vbUxldmVsKTtcclxuICAgICAgICBsZXQgbG93ZXJMZWZ0ID0gbmV3IG9sLmdlb20uUG9pbnQoW2V4dGVudC5taW5YLCBleHRlbnQubWluWV0pO1xyXG4gICAgICAgIGxvd2VyTGVmdC50cmFuc2Zvcm0odGhpcy5tYXBQcm9qLCB0aGlzLl9wcm9qZWN0aW9uNDMyNik7XHJcbiAgICAgICAgbGV0IGxvd2VyTGVmdENvb3JkaW5hdGVzID0gbG93ZXJMZWZ0LmdldENvb3JkaW5hdGVzKCk7XHJcbiAgICAgICAgbGV0IHVwcGVyUmlnaHQgPSBuZXcgb2wuZ2VvbS5Qb2ludChbZXh0ZW50Lm1heFgsIGV4dGVudC5tYXhZXSk7XHJcbiAgICAgICAgdXBwZXJSaWdodC50cmFuc2Zvcm0odGhpcy5tYXBQcm9qLCB0aGlzLl9wcm9qZWN0aW9uNDMyNik7XHJcbiAgICAgICAgbGV0IHVwcGVyUmlnaHRDb29yZGluYXRlcyA9IHVwcGVyUmlnaHQuZ2V0Q29vcmRpbmF0ZXMoKTtcclxuXHJcbiAgICAgICAgJC5leHRlbmQodGhpcy5tYXBNb3ZlUGFyYW1zLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBMOiBsb3dlckxlZnRDb29yZGluYXRlc1swXSxcclxuICAgICAgICAgICAgICAgIFI6IHVwcGVyUmlnaHRDb29yZGluYXRlc1swXSxcclxuICAgICAgICAgICAgICAgIEI6IGxvd2VyTGVmdENvb3JkaW5hdGVzWzFdLFxyXG4gICAgICAgICAgICAgICAgVDogdXBwZXJSaWdodENvb3JkaW5hdGVzWzFdXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5ubS5MYXllckl0c0ludmVudG9yeSA9IExheWVySXRzSW52ZW50b3J5O1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckl0c0ludmVudG9yeTtcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/layers/LayerItsInventory.ts\n// module id = 29\n// module chunks = 1","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\nvar provide_1 = require(\"./provide\");\r\nvar chk = require(\"./checkDefined\");\r\nvar nm = provide_1.default('util.colors');\r\n/**\r\n * helper function to convert to hex\r\n * @param {number|string} x - the number to convert to hex\r\n * @returns {string} number as hex\r\n * @private\r\n */\r\nfunction _hex(x) {\r\n var hexDigits = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n return isNaN(x) ? \"00\" : hexDigits[(x - x % 16) / 16] + hexDigits[x % 16];\r\n}\r\n/**\r\n * converts an RGB string to hex\r\n * @param {string} rgb - rgb color\r\n * @returns {string} rbg as hex\r\n */\r\nfunction rgb2hex(rgb) {\r\n var rgb1 = rgb.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/);\r\n return (\"#\" + _hex(rgb1[1]) + _hex(rgb1[2]) + _hex(rgb1[3])).toUpperCase();\r\n}\r\nexports.rgb2hex = rgb2hex;\r\nnm.rgb2hex = rgb2hex;\r\n/**\r\n * Convert hex string to RGB or RGBA string\r\n * @param {string} hexString - hex color string\r\n * @param {number} [alphaVal=undefined] Alpha value\r\n * @returns {string} - rgb or rgba color\r\n */\r\nfunction hexAlphaToRgbOrRgba(hexString, alphaVal) {\r\n hexString = ((hexString.charAt(0) == \"#\") ? hexString.substring(1, 7) : hexString);\r\n var r = parseInt(hexString.substring(0, 2), 16).toString() || '0';\r\n var g = parseInt(hexString.substring(2, 4), 16).toString() || '0';\r\n var b = parseInt(hexString.substring(4, 6), 16).toString() || '0';\r\n if (alphaVal) {\r\n return \"rgba(\" + r + \",\" + g + \",\" + b + \",\" + alphaVal + \")\";\r\n }\r\n else {\r\n return \"rgba(\" + r + \",\" + g + \",\" + b + \")\";\r\n }\r\n}\r\nexports.hexAlphaToRgbOrRgba = hexAlphaToRgbOrRgba;\r\nnm.hexAlphaToRgbOrRgba = hexAlphaToRgbOrRgba;\r\n/**\r\n * adds alpha value to rgb string 'rgb(r, b, g)', returns 'rgba(r, g, b, a)'\r\n * @param {string} rgb - rgb color\r\n * @param {number} alpha - alpha value 0 to 1\r\n * @returns {string} rgba color\r\n */\r\nfunction rgbToRgba(rgb, alpha) {\r\n var pieces = rgb.split(',');\r\n pieces[0] = pieces[0].replace('rgb', 'rgba');\r\n pieces[2] = pieces[2].replace(')', '');\r\n pieces.push(' ' + alpha.toFixed(1) + ')');\r\n return pieces.join(',');\r\n}\r\nexports.rgbToRgba = rgbToRgba;\r\nnm.rgbToRgba = rgbToRgba;\r\n/**\r\n * @typedef {function} colorLookupByNumber\r\n * @param {number} num - the number to use to retrieve the color\r\n * @returns {string} rgb color\r\n */\r\n/**\r\n * Make a blue green red gradient\r\n * @param {number} minVal - minimum value\r\n * @param {number} maxVal - maximum value\r\n * @param {boolean} flipColors - if the colors should be flipped\r\n * @returns {colorLookupByNumber} color lookup function\r\n */\r\nfunction makeBlueGreenRedGradient(minVal, maxVal, flipColors) {\r\n if (typeof flipColors != \"boolean\") {\r\n flipColors = false;\r\n }\r\n return function (theVal) {\r\n var r, g, b;\r\n var ratio;\r\n if (chk.undefinedOrNull(theVal)) {\r\n return 'rgb(100,100,100)';\r\n }\r\n var percent = (theVal - minVal) / (maxVal - minVal);\r\n if (flipColors == true) {\r\n percent = 1 - percent;\r\n }\r\n if (percent >= 1) {\r\n r = 255;\r\n g = 0;\r\n b = 0;\r\n }\r\n else if (percent <= 0) {\r\n r = 0;\r\n g = 0;\r\n b = 255;\r\n }\r\n else if (percent < .25) {\r\n // green up, blue constant\r\n r = 0;\r\n g = Math.floor(255 * percent / 0.25);\r\n b = 255;\r\n }\r\n else if (percent < 0.50) {\r\n //blue down, green constant\r\n ratio = (percent - 0.25) / 0.25;\r\n r = 0;\r\n g = 255;\r\n b = 255 - Math.floor(255 * ratio);\r\n }\r\n else if (percent < 0.75) {\r\n // red up, green constant\r\n ratio = (percent - 0.5) / 0.25;\r\n r = Math.floor(255 * ratio);\r\n g = 255;\r\n b = 0;\r\n }\r\n else {\r\n // green down, red constant\r\n ratio = (percent - 0.75) / 0.25;\r\n r = 255;\r\n g = 255 - Math.floor(255 * ratio);\r\n b = 0;\r\n }\r\n r = r.toFixed();\r\n g = g.toFixed();\r\n b = b.toFixed();\r\n return 'rgb(' + r + ',' + g + ',' + b + ')';\r\n };\r\n}\r\nexports.makeBlueGreenRedGradient = makeBlueGreenRedGradient;\r\nnm.makeBlueGreenRedGradient = makeBlueGreenRedGradient;\r\n/**\r\n * Create a function that will return colors based on a gradient\r\n * @param {number} median - median value\r\n * @param {number} stdDev - standard deviation\r\n * @param {boolean} flipColors - if the colors should be flipped\r\n * @returns {colorLookupByNumber} color lookup function\r\n */\r\nfunction makeBlueGreenRedGradientZScore(median, stdDev, flipColors) {\r\n var grd = makeBlueGreenRedGradient(-2.5, 2.5, flipColors);\r\n return function (theVal) {\r\n var zScore;\r\n if (theVal == null) {\r\n zScore = null;\r\n }\r\n else {\r\n zScore = (theVal - median) / stdDev;\r\n }\r\n return grd(zScore);\r\n };\r\n}\r\nexports.makeBlueGreenRedGradientZScore = makeBlueGreenRedGradientZScore;\r\nnm.makeBlueGreenRedGradientZScore = makeBlueGreenRedGradientZScore;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29sb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7O0dBRUc7QUFDSCxxQ0FBZ0M7QUFDaEMsb0NBQXNDO0FBQ3RDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7QUFHaEM7Ozs7O0dBS0c7QUFDSCxjQUFjLENBQUM7SUFDWCxJQUFJLFNBQVMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRWpHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUM5RSxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILGlCQUF3QixHQUFHO0lBQ3ZCLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUV6RCxNQUFNLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUMvRSxDQUFDO0FBSkQsMEJBSUM7QUFFRCxFQUFFLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztBQUdyQjs7Ozs7R0FLRztBQUNILDZC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TSxDQUFDO1FBQ3hDLENBQUM7UUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQztBQUNOLENBQUM7QUFmRCx3RUFlQztBQUVELEVBQUUsQ0FBQyw4QkFBOEIsR0FBRyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDExLzMvMjAxNS5cclxuICovXHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4vcHJvdmlkZSc7XHJcbmltcG9ydCAqIGFzIGNoayBmcm9tICcuL2NoZWNrRGVmaW5lZCc7XHJcbmxldCBubSA9IHByb3ZpZGUoJ3V0aWwuY29sb3JzJyk7XHJcblxyXG5cclxuLyoqXHJcbiAqIGhlbHBlciBmdW5jdGlvbiB0byBjb252ZXJ0IHRvIGhleFxyXG4gKiBAcGFyYW0ge251bWJlcnxzdHJpbmd9IHggLSB0aGUgbnVtYmVyIHRvIGNvbnZlcnQgdG8gaGV4XHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IG51bWJlciBhcyBoZXhcclxuICogQHByaXZhdGVcclxuICovXHJcbmZ1bmN0aW9uIF9oZXgoeCkge1xyXG4gICAgbGV0IGhleERpZ2l0cyA9IFtcIjBcIiwgXCIxXCIsIFwiMlwiLCBcIjNcIiwgXCI0XCIsIFwiNVwiLCBcIjZcIiwgXCI3XCIsIFwiOFwiLCBcIjlcIiwgXCJhXCIsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwiZVwiLCBcImZcIl07XHJcblxyXG4gICAgcmV0dXJuIGlzTmFOKHgpID8gXCIwMFwiIDogaGV4RGlnaXRzWyh4IC0geCAlIDE2KSAvIDE2XSArIGhleERpZ2l0c1t4ICUgMTZdO1xyXG59XHJcblxyXG4vKipcclxuICogY29udmVydHMgYW4gUkdCIHN0cmluZyB0byBoZXhcclxuICogQHBhcmFtIHtzdHJpbmd9IHJnYiAtIHJnYiBjb2xvclxyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSByYmcgYXMgaGV4XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmdiMmhleChyZ2IpIHtcclxuICAgIGxldCByZ2IxID0gcmdiLm1hdGNoKC9ecmdiXFwoKFxcZCspLFxccyooXFxkKyksXFxzKihcXGQrKVxcKSQvKTtcclxuXHJcbiAgICByZXR1cm4gKFwiI1wiICsgX2hleChyZ2IxWzFdKSArIF9oZXgocmdiMVsyXSkgKyBfaGV4KHJnYjFbM10pKS50b1VwcGVyQ2FzZSgpO1xyXG59XHJcblxyXG5ubS5yZ2IyaGV4ID0gcmdiMmhleDtcclxuXHJcblxyXG4vKipcclxuICogQ29udmVydCBoZXggc3RyaW5nIHRvIFJHQiBvciBSR0JBIHN0cmluZ1xyXG4gKiBAcGFyYW0ge3N0cmluZ30gaGV4U3RyaW5nIC0gaGV4IGNvbG9yIHN0cmluZ1xyXG4gKiBAcGFyYW0ge251bWJlcn0gW2FscGhhVmFsPXVuZGVmaW5lZF0gQWxwaGEgdmFsdWVcclxuICogQHJldHVybnMge3N0cmluZ30gLSByZ2Igb3IgcmdiYSBjb2xvclxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGhleEFscGhhVG9SZ2JPclJnYmEoaGV4U3RyaW5nLCBhbHBoYVZhbCkge1xyXG4gICAgaGV4U3RyaW5nID0gKChoZXhTdHJpbmcuY2hhckF0KDApID09IFwiI1wiKSA/IGhleFN0cmluZy5zdWJzdHJpbmcoMSwgNykgOiBoZXhTdHJpbmcpO1xyXG4gICAgbGV0IHIgPSBwYXJzZUludChoZXhTdHJpbmcuc3Vic3RyaW5nKDAsIDIpLCAxNikudG9TdHJpbmcoKSB8fCAnMCc7XHJcbiAgICBsZXQgZyA9IHBhcnNlSW50KGhleFN0cmluZy5zdWJzdHJpbmcoMiwgNCksIDE2KS50b1N0cmluZygpIHx8ICcwJztcclxuICAgIGxldCBiID0gcGFyc2VJbnQoaGV4U3RyaW5nLnN1YnN0cmluZyg0LCA2KSwgMTYpLnRvU3RyaW5nKCkgfHwgJzAnO1xyXG4gICAgaWYgKGFscGhhVmFsKSB7XHJcbiAgICAgICAgcmV0dXJuIGByZ2JhKCR7cn0sJHtnfSwke2J9LCR7YWxwaGFWYWx9KWA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBgcmdiYSgke3J9LCR7Z30sJHtifSlgO1xyXG4gICAgfVxyXG59XHJcblxyXG5ubS5oZXhBbHBoYVRvUmdiT3JSZ2JhID0gaGV4QWxwaGFUb1JnYk9yUmdiYTtcclxuXHJcblxyXG4vKipcclxuICogYWRkcyBhbHBoYSB2YWx1ZSB0byByZ2Igc3RyaW5nICdyZ2IociwgYiwgZyknLCByZXR1cm5zICdyZ2JhKHIsIGcsIGIsIGEpJ1xyXG4gKiBAcGFyYW0ge3N0cmluZ30gcmdiIC0gcmdiIGNvbG9yXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBhbHBoYSAtIGFscGhhIHZhbHVlIDAgdG8gMVxyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSByZ2JhIGNvbG9yXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmdiVG9SZ2JhKHJnYiwgYWxwaGEpIHtcclxuICAgIGxldCBwaWVjZXMgPSByZ2Iuc3BsaXQoJywnKTtcclxuICAgIHBpZWNlc1swXSA9IHBpZWNlc1swXS5yZXBsYWNlKCdyZ2InLCAncmdiYScpO1xyXG4gICAgcGllY2VzWzJdID0gcGllY2VzWzJdLnJlcGxhY2UoJyknLCAnJyk7XHJcbiAgICBwaWVjZXMucHVzaCgnICcgKyBhbHBoYS50b0ZpeGVkKDEpICsgJyknKTtcclxuXHJcbiAgICByZXR1cm4gcGllY2VzLmpvaW4oJywnKTtcclxufVxyXG5cclxubm0ucmdiVG9SZ2JhID0gcmdiVG9SZ2JhO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBAdHlwZWRlZiB7ZnVuY3Rpb259IGNvbG9yTG9va3VwQnlOdW1iZXJcclxuICogQHBhcmFtIHtudW1iZXJ9IG51bSAtIHRoZSBudW1iZXIgdG8gdXNlIHRvIHJldHJpZXZlIHRoZSBjb2xvclxyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSByZ2IgY29sb3JcclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIE1ha2UgYSBibHVlIGdyZWVuIHJlZCBncmFkaWVudFxyXG4gKiBAcGFyYW0ge251bWJlcn0gbWluVmFsIC0gbWluaW11bSB2YWx1ZVxyXG4gKiBAcGFyYW0ge251bWJlcn0gbWF4VmFsIC0gbWF4aW11bSB2YWx1ZVxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGZsaXBDb2xvcnMgLSBpZiB0aGUgY29sb3JzIHNob3VsZCBiZSBmbGlwcGVkXHJcbiAqIEByZXR1cm5zIHtjb2xvckxvb2t1cEJ5TnVtYmVyfSBjb2xvciBsb29rdXAgZnVuY3Rpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBtYWtlQmx1ZUdyZWVuUmVkR3JhZGllbnQobWluVmFsLCBtYXhWYWwsIGZsaXBDb2xvcnMpIHtcclxuXHJcbiAgICBpZiAodHlwZW9mIGZsaXBDb2xvcnMgIT0gXCJib29sZWFuXCIpIHtcclxuICAgICAgICBmbGlwQ29sb3JzID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0aGVWYWwpIHtcclxuICAgICAgICBsZXQgciwgZywgYjtcclxuICAgICAgICBsZXQgcmF0aW87XHJcblxyXG4gICAgICAgIGlmIChjaGsudW5kZWZpbmVkT3JOdWxsKHRoZVZhbCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuICdyZ2IoMTAwLDEwMCwxMDApJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBwZXJjZW50ID0gKHRoZVZhbCAtIG1pblZhbCkgLyAobWF4VmFsIC0gbWluVmFsKTtcclxuXHJcbiAgICAgICAgaWYgKGZsaXBDb2xvcnMgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBwZXJjZW50ID0gMSAtIHBlcmNlbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocGVyY2VudCA+PSAxKSB7XHJcbiAgICAgICAgICAgIHIgPSAyNTU7XHJcbiAgICAgICAgICAgIGcgPSAwO1xyXG4gICAgICAgICAgICBiID0gMDtcclxuICAgICAgICB9IGVsc2UgaWYgKHBlcmNlbnQgPD0gMCkge1xyXG4gICAgICAgICAgICByID0gMDtcclxuICAgICAgICAgICAgZyA9IDA7XHJcbiAgICAgICAgICAgIGIgPSAyNTU7XHJcbiAgICAgICAgfSBlbHNlIGlmIChwZXJjZW50IDwgLjI1KSB7XHJcbiAgICAgICAgICAgIC8vIGdyZWVuIHVwLCBibHVlIGNvbnN0YW50XHJcbiAgICAgICAgICAgIHIgPSAwO1xyXG4gICAgICAgICAgICBnID0gTWF0aC5mbG9vcigyNTUgKiBwZXJjZW50IC8gMC4yNSk7XHJcbiAgICAgICAgICAgIGIgPSAyNTU7XHJcbiAgICAgICAgfSBlbHNlIGlmIChwZXJjZW50IDwgMC41MCkge1xyXG4gICAgICAgICAgICAvL2JsdWUgZG93biwgZ3JlZW4gY29uc3RhbnRcclxuICAgICAgICAgICAgcmF0aW8gPSAocGVyY2VudCAtIDAuMjUpIC8gMC4yNTtcclxuICAgICAgICAgICAgciA9IDA7XHJcbiAgICAgICAgICAgIGcgPSAyNTU7XHJcbiAgICAgICAgICAgIGIgPSAyNTUgLSBNYXRoLmZsb29yKDI1NSAqIHJhdGlvKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHBlcmNlbnQgPCAwLjc1KSB7XHJcbiAgICAgICAgICAgIC8vIHJlZCB1cCwgZ3JlZW4gY29uc3RhbnRcclxuICAgICAgICAgICAgcmF0aW8gPSAocGVyY2VudCAtIDAuNSkgLyAwLjI1O1xyXG4gICAgICAgICAgICByID0gTWF0aC5mbG9vcigyNTUgKiByYXRpbyk7XHJcbiAgICAgICAgICAgIGcgPSAyNTU7XHJcbiAgICAgICAgICAgIGIgPSAwO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIGdyZWVuIGRvd24sIHJlZCBjb25zdGFudFxyXG4gICAgICAgICAgICByYXRpbyA9IChwZXJjZW50IC0gMC43NSkgLyAwLjI1O1xyXG4gICAgICAgICAgICByID0gMjU1O1xyXG4gICAgICAgICAgICBnID0gMjU1IC0gTWF0aC5mbG9vcigyNTUgKiByYXRpbyk7XHJcbiAgICAgICAgICAgIGIgPSAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgciA9IHIudG9GaXhlZCgpO1xyXG4gICAgICAgIGcgPSBnLnRvRml4ZWQoKTtcclxuICAgICAgICBiID0gYi50b0ZpeGVkKCk7XHJcblxyXG4gICAgICAgIHJldHVybiAncmdiKCcgKyByICsgJywnICsgZyArICcsJyArIGIgKyAnKSc7XHJcbiAgICB9O1xyXG59XHJcblxyXG5ubS5tYWtlQmx1ZUdyZWVuUmVkR3JhZGllbnQgPSBtYWtlQmx1ZUdyZWVuUmVkR3JhZGllbnQ7XHJcblxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZSBhIGZ1bmN0aW9uIHRoYXQgd2lsbCByZXR1cm4gY29sb3JzIGJhc2VkIG9uIGEgZ3JhZGllbnRcclxuICogQHBhcmFtIHtudW1iZXJ9IG1lZGlhbiAtIG1lZGlhbiB2YWx1ZVxyXG4gKiBAcGFyYW0ge251bWJlcn0gc3RkRGV2IC0gc3RhbmRhcmQgZGV2aWF0aW9uXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gZmxpcENvbG9ycyAtIGlmIHRoZSBjb2xvcnMgc2hvdWxkIGJlIGZsaXBwZWRcclxuICogQHJldHVybnMge2NvbG9yTG9va3VwQnlOdW1iZXJ9IGNvbG9yIGxvb2t1cCBmdW5jdGlvblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VCbHVlR3JlZW5SZWRHcmFkaWVudFpTY29yZShtZWRpYW4sIHN0ZERldiwgZmxpcENvbG9ycykge1xyXG5cclxuICAgIGxldCBncmQgPSBtYWtlQmx1ZUdyZWVuUmVkR3JhZGllbnQoLTIuNSwgMi41LCBmbGlwQ29sb3JzKTtcclxuXHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRoZVZhbCkge1xyXG5cclxuICAgICAgICBsZXQgelNjb3JlO1xyXG4gICAgICAgIGlmICh0aGVWYWwgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB6U2NvcmUgPSBudWxsO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHpTY29yZSA9ICh0aGVWYWwgLSBtZWRpYW4pIC8gc3RkRGV2O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGdyZCh6U2NvcmUpO1xyXG4gICAgfTtcclxufVxyXG5cclxubm0ubWFrZUJsdWVHcmVlblJlZEdyYWRpZW50WlNjb3JlID0gbWFrZUJsdWVHcmVlblJlZEdyYWRpZW50WlNjb3JlO1xyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/util/colors.ts\n// module id = 32\n// module chunks = 1","/**\r\n * Created by gavorhes on 12/18/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ItsLayerCollection_1 = require(\"../../src/collections/ItsLayerCollection\");\r\nvar LayerLegend_1 = require(\"../../src/collections/LayerLegend\");\r\nvar quickMap_1 = require(\"../../src/olHelpers/quickMap\");\r\nvar map = quickMap_1.default();\r\nwindow['map'] = map;\r\nvar itsLayerCollection = new ItsLayerCollection_1.default(map);\r\nvar layerArray = [\r\n {\r\n groupName: 'ITS Inventory Layers',\r\n collapse: false,\r\n addCheck: true,\r\n items: itsLayerCollection.layers\r\n }\r\n];\r\nvar legend = new LayerLegend_1.default(layerArray, 'legend-container', {});\r\nconsole.log('it works');\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRzTWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaXRzTWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFHSCwrRUFBMEU7QUFDMUUsaUVBQTREO0FBQzVELHlEQUFvRDtBQUVwRCxJQUFJLEdBQUcsR0FBRyxrQkFBUSxFQUFFLENBQUM7QUFFckIsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUVwQixJQUFJLGtCQUFrQixHQUFHLElBQUksNEJBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFckQsSUFBSSxVQUFVLEdBQUc7SUFDYjtRQUNJLFNBQVMsRUFBRSxzQkFBc0I7UUFDakMsUUFBUSxFQUFFLEtBQUs7UUFDZixRQUFRLEVBQUUsSUFBSTtRQUNkLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxNQUFNO0tBQ25DO0NBQ0osQ0FBQztBQUVGLElBQUksTUFBTSxHQUFHLElBQUkscUJBQVcsQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFakUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzE4LzIwMTUuXHJcbiAqL1xyXG5cclxuXHJcbmltcG9ydCBJdHNMYXllckNvbGxlY3Rpb24gZnJvbSAnLi4vLi4vc3JjL2NvbGxlY3Rpb25zL0l0c0xheWVyQ29sbGVjdGlvbic7XHJcbmltcG9ydCBMYXllckxlZ2VuZCBmcm9tICcuLi8uLi9zcmMvY29sbGVjdGlvbnMvTGF5ZXJMZWdlbmQnO1xyXG5pbXBvcnQgcXVpY2tNYXAgZnJvbSAnLi4vLi4vc3JjL29sSGVscGVycy9xdWlja01hcCc7XHJcblxyXG5sZXQgbWFwID0gcXVpY2tNYXAoKTtcclxuXHJcbndpbmRvd1snbWFwJ10gPSBtYXA7XHJcblxyXG5sZXQgaXRzTGF5ZXJDb2xsZWN0aW9uID0gbmV3IEl0c0xheWVyQ29sbGVjdGlvbihtYXApO1xyXG5cclxubGV0IGxheWVyQXJyYXkgPSBbXHJcbiAgICB7XHJcbiAgICAgICAgZ3JvdXBOYW1lOiAnSVRTIEludmVudG9yeSBMYXllcnMnLFxyXG4gICAgICAgIGNvbGxhcHNlOiBmYWxzZSxcclxuICAgICAgICBhZGRDaGVjazogdHJ1ZSxcclxuICAgICAgICBpdGVtczogaXRzTGF5ZXJDb2xsZWN0aW9uLmxheWVyc1xyXG4gICAgfVxyXG5dO1xyXG5cclxubGV0IGxlZ2VuZCA9IG5ldyBMYXllckxlZ2VuZChsYXllckFycmF5LCAnbGVnZW5kLWNvbnRhaW5lcicsIHt9KTtcclxuXHJcbmNvbnNvbGUubG9nKCdpdCB3b3JrcycpO1xyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./test/demo/itsMap.ts\n// module id = 36\n// module chunks = 1"],"sourceRoot":""} \ No newline at end of file diff --git a/test/serve/js/my_little_test.js b/test/serve/js/my_little_test.js index 35f22dc..46fd93a 100644 --- a/test/serve/js/my_little_test.js +++ b/test/serve/js/my_little_test.js @@ -63,7 +63,7 @@ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 38); +/******/ return __webpack_require__(__webpack_require__.s = 37); /******/ }) /************************************************************************/ /******/ ({ @@ -101,7 +101,7 @@ function provide(namespace) { provide('util'); window['gv'].util.provide = provide; exports.default = provide; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3ZpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUdIOzs7O0dBSUc7QUFDSCxpQkFBaUIsU0FBUztJQUN0QixZQUFZLENBQUM7SUFDYixFQUFFLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDO1FBQ2hDLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwQyxFQUFFLENBQUMsQ0FBQyxPQUFPLFNBQVMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1lBQ2pDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUVELFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFFcEMsa0JBQWUsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTAvMjAxNS5cclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIGNyZWF0ZSBhIG5hbWVzcGFjZSBvbiB0aGUgZ3Ygb2JqZWN0XHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UgdG8gY3JlYXRlXHJcbiAqIEByZXR1cm5zIHtvYmplY3R9IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5hbWVzcGFjZVxyXG4gKi9cclxuZnVuY3Rpb24gcHJvdmlkZShuYW1lc3BhY2Upe1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvd1snZ3YnXSA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgd2luZG93WydndiddID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBhcnRzID0gbmFtZXNwYWNlLnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgbmFtZVNwYWNlID0gd2luZG93WydndiddO1xyXG5cclxuICAgIGZvciAobGV0IGk9MDsgaTwgcGFydHMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGxldCBuZXdPYmplY3QgPSBuYW1lU3BhY2VbcGFydHNbaV1dO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG5ld09iamVjdCA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgICAgIG5hbWVTcGFjZVtwYXJ0c1tpXV0gPSB7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5hbWVTcGFjZSA9IG5hbWVTcGFjZVtwYXJ0c1tpXV07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5hbWVTcGFjZTtcclxufVxyXG5cclxucHJvdmlkZSgndXRpbCcpO1xyXG53aW5kb3dbJ2d2J10udXRpbC5wcm92aWRlID0gcHJvdmlkZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHByb3ZpZGU7XHJcbiJdfQ== /***/ }), @@ -122,7 +122,7 @@ module.exports = $; Object.defineProperty(exports, "__esModule", { value: true }); var provide_1 = __webpack_require__(0); -var range_change_1 = __webpack_require__(19); +var range_change_1 = __webpack_require__(18); var $ = __webpack_require__(1); var nm = provide_1.default('domUtil'); /** @@ -326,11 +326,11 @@ var MediaControl = (function () { }()); exports.MediaControl = MediaControl; nm.MediaControl = MediaControl; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1lZGlhLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUVILDJDQUFzQztBQUN0QywrQ0FBMkM7QUFDM0MsMEJBQTZCO0FBRTdCLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFNUI7OztHQUdHO0FBRUgsK0JBQStCLEVBQUU7SUFDN0IsWUFBWSxDQUFDO0lBQ2IsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXBCLE1BQU0sQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxNQUFNLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUM7QUFpQkQ7SUFvQkk7Ozs7O09BS0c7SUFDSCxzQkFDSSxPQUFrQyxFQUNsQyxVQUFrRCxFQUNsRCxXQUFrQztRQURsQywyQkFBQSxFQUFBLDJCQUEwQyxNQUFNLENBQUMsQ0FBQSxDQUFDO1FBQ2xELDRCQUFBLEVBQUEsZ0JBQWtDO1FBSHRDLGlCQWlHQztRQTVGRyxXQUFXLENBQUMsR0FBRyxHQUFHLE9BQU8sV0FBVyxDQUFDLEdBQUcsSUFBSSxRQUFRLEdBQUcsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDM0UsV0FBVyxDQUFDLEdBQUcsR0FB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Q0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDTCxDQUFDO0lBTUQsc0JBQUksd0NBQWM7UUFKbEI7OztXQUdHO2FBQ0gsVUFBbUIsT0FBdUI7WUFDdEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUM7UUFDL0IsQ0FBQzs7O09BQUE7SUFDTCxtQkFBQztBQUFELENBQUMsQUFqTkQsSUFpTkM7QUFqTlksb0NBQVk7QUFtTnpCLEVBQUUsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMi8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCB7cmFuZ2VDaGFuZ2V9IGZyb20gJy4vcmFuZ2UtY2hhbmdlJztcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmxldCBubSA9IHByb3ZpZGUoJ2RvbVV0aWwnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2FsbGJhY2sgbWVkaWFDYWxsYmFja1xyXG4gKiBAcGFyYW0ge251bWJlcn0gdG1cclxuICovXHJcblxyXG5mdW5jdGlvbiB0aW1lVG9Mb2NhbERhdGVTdHJpbmcodG0pIHtcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG4gICAgbGV0IGQgPSBuZXcgRGF0ZSh0bSk7XHJcbiAgICBsZXQgcDEgPSBkLnRvTG9jYWxlVGltZVN0cmluZygpLnNwbGl0KCcgJyk7XHJcbiAgICBsZXQgcDIgPSBwMVswXS5zcGxpdCgnOicpO1xyXG4gICAgcDIgPSBwMi5zbGljZSgwLCAyKTtcclxuXHJcbiAgICByZXR1cm4gZC50b0xvY2FsZURhdGVTdHJpbmcoKSArICc8YnI+JyArIHAyLmpvaW4oJzonKSArICcgJyArIHAxWzFdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIGNoYW5nZUZ1bmN0aW9ue1xyXG4gICAgKG5ld1ZhbD86IG51bWJlcik6IHZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgbWVkaWFSYW5nZUNvbmZpZ3tcclxuICAgIG1pbj86IG51bWJlcjtcclxuICAgIG1heD86IG51bWJlcjtcclxuICAgIHZhbD86IG51bWJlcjtcclxuICAgIHN0ZXA/OiBudW1iZXI7XHJcbiAgICBwbGF5SW50ZXJ2YWw/OiBudW1iZXI7XHJcbiAgICBzaG93QXNEYXRlPzogYm9vbGVhbjtcclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgTWVkaWFDb250cm9sIHtcclxuICAgIF9jb250YWluZXI6IEpRdWVyeTtcclxuICAgIF9taW46IG51bWJlcjtcclxuICAgIF9tYXg6IG51bWJlcjtcclxuICAgIF9wbGF5SW50ZXJ2YWw6IG51bWJlcjtcclxuICAgIF9zdGVwOiBudW1iZXI7XHJcbiAgICBfY3VycmVudFZhbHVlOiBudW1iZXI7XHJcblxyXG4gICAgX3BsYXlpbmc6IGJvb2xlYW47XHJcblxyXG4gICAgXyRidG5TdG9wOiBKUXVlcnk7XHJcbiAgICBfJHNsaWRlcjogSlF1ZXJ5O1xyXG4gICAgXyR2YWxMYWJlbFZhbDogSlF1ZXJ5O1xyXG4gICAgXyR2YWxMYWJlbE1pbjogSlF1ZXJ5O1xyXG4gICAgXyR2YWxMYWJlbE1heDogSlF1ZXJ5O1xyXG4gICAgX2ludGVydmFsOiBudW1iZXI7XHJcbiAgICBfc2hvd0FzRGF0ZTogYm9vbGVhbjtcclxuXHJcbiAgICBfY2hhbmdlRnVuYzogY2hhbmdlRnVuY3Rpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGVsZW1lbnRcclxuICAgICAqIEBwYXJhbSBjaGFuZ2VGdW5jXHJcbiAgICAgKiBAcGFyYW0gbWVkaWFDb25maWdcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgZWxlbWVudDogSlF1ZXJ5fEhUTUxFbGVtZW50fHN0cmluZyxcclxuICAgICAgICBjaGFuZ2VGdW5jOiBjaGFuZ2VGdW5jdGlvbiA9ICgpOiB2b2lkID0+IHtyZXR1cm47fSxcclxuICAgICAgICBtZWRpYUNvbmZpZzogbWVkaWFSYW5nZUNvbmZpZyA9IHt9KSB7XHJcblxyXG4gICAgICAgIG1lZGlhQ29uZmlnLm1pbiA9IHR5cGVvZiBtZWRpYUNvbmZpZy5taW4gPT0gJ251bWJlcicgPyBtZWRpYUNvbmZpZy5taW4gOiAwO1xyXG4gICAgICAgIG1lZGlhQ29uZmlnLm1heCA9IHR5cGVvZiBtZWRpYUNvbmZpZy5tYXggPT0gJ251bWJlcicgPyBtZWRpYUNvbmZpZy5tYXggOiAxMDA7XHJcbiAgICAgICAgbWVkaWFDb25maWcudmFsID0gdHlwZW9mIG1lZGlhQ29uZmlnLnZhbCA9PSAnbnVtYmVyJyA/IG1lZGlhQ29uZmlnLnZhbCA6IDA7XHJcbiAgICAgICAgbWVkaWFDb25maWcuc3RlcCA9IHR5cGVvZiBtZWRpYUNvbmZpZy5zdGVwID09ICdudW1iZXInID8gbWVkaWFDb25maWcuc3RlcCA6IDU7XHJcbiAgICAgICAgbWVkaWFDb25maWcucGxheUludGVydmFsID0gdHlwZW9mIG1lZGlhQ29uZmlnLnBsYXlJbnRlcnZhbCA9PSAnbnVtYmVyJyA/IG1lZGlhQ29uZmlnLnBsYXlJbnRlcnZhbCA6IDUwMDtcclxuICAgICAgICBtZWRpYUNvbmZpZy5zaG93QXNEYXRlID0gdHlwZW9mIG1lZGlhQ29uZmlnLnNob3dBc0RhdGUgPT0gJ2Jvb2xlYW4nID8gbWVkaWFDb25maWcuc2hvd0FzRGF0ZSA6IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mICBlbGVtZW50ID09ICdzdHJpbmcnKXtcclxuICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyID0gJCgnIycgKyBlbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGVsZW1lbnRbJ3N0eWxlJ10gIT09ICd1bmRlZmluZWQnKXtcclxuICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyID0gJChlbGVtZW50KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9jb250YWluZXIgPSBlbGVtZW50IGFzIEpRdWVyeTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2NvbnRhaW5lci5hZGRDbGFzcygnbWVkaWEtY29udHJvbC1jb250YWluZXInKTtcclxuICAgICAgICB0aGlzLl9wbGF5SW50ZXJ2YWwgPSBtZWRpYUNvbmZpZy5wbGF5SW50ZXJ2YWw7XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRnVuYyA9IGNoYW5nZUZ1bmM7XHJcblxyXG4gICAgICAgIHRoaXMuX3Nob3dBc0RhdGUgPSBtZWRpYUNvbmZpZy5zaG93QXNEYXRlO1xyXG5cclxuICAgICAgICB0aGlzLl9jdXJyZW50VmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbWluID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX21heCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl9zdGVwID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX3BsYXlpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgbGV0IGh0bWxTdHIgPVxyXG4gICAgICAgICAgICAnPHNwYW4gY2xhc3M9XCJtZWRpYS1wbGF5ZXItYnV0dG9uIG1lZGlhLWJhY2tcIj48L3NwYW4+JyArXHJcbiAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cIm1lZGlhLXBsYXllci1idXR0b24gbWVkaWEtcGxheVwiPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwibWVkaWEtcGxheWVyLWJ1dHRvbiBtZWRpYS1wYXVzZSBtZWRpYS1kaXNhYmxlZFwiPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwibWVkaWEtcGxheWVyLWJ1dHRvbiBtZWRpYS1zdG9wIG1lZGlhLWRpc2FibGVkXCIgPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwibWVkaWEtcGxheWVyLWJ1dHRvbiBtZWRpYS1haGVhZFwiPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgYDxpbnB1dCB0eXBlPVwicmFuZ2VcIj5gICtcclxuICAgICAgICAgICAgYDxkaXYgY2xhc3M9XCJtZWRpYS1jb250cm9sLXZhbHVlLWxhYmVsLWNvbnRhaW5lclwiPmAgK1xyXG4gICAgICAgICAgICBgPHNwYW4gY2xhc3M9XCJtZWRpYS1jb250cm9sLXZhbHVlLWxhYmVsLW1pblwiPjwvc3Bhbj5gICtcclxuICAgICAgICAgICAgYDxzcGFuIGNsYXNzPVwibWVkaWEtY29udHJvbC12YWx1ZS1sYWJlbC12YWxcIj48L3NwYW4+YCArXHJcbiAgICAgICAgICAgIGA8c3BhbiBjbGFzcz1cIm1lZGlhLWNvbnRyb2wtdmFsdWUtbGFiZWwtbWF4XCI+PC9zcGFuPmAgK1xyXG4gICAgICAgICAgICBgPC9kaXY+YDtcclxuXHJcbiAgICAgICAgdGhpcy5fY29udGFpbmVyLmFwcGVuZChodG1sU3RyKTtcclxuXHJcbiAgICAgICAgLy8gbGV0IGJ0blBhdXNlID0gdGhpcy5fY29udGFpbmVyLmZpbmQoJy5tZWRpYS1wYXVzZScpO1xyXG4gICAgICAgIGxldCBidG5QbGF5ID0gdGhpcy5fY29udGFpbmVyLmZpbmQoJy5tZWRpYS1wbGF5Jyk7XHJcbiAgICAgICAgdGhpcy5fJGJ0blN0b3AgPSB0aGlzLl9jb250YWluZXIuZmluZCgnLm1lZGlhLXN0b3AnKTtcclxuICAgICAgICBsZXQgYnRuQWhlYWQgPSB0aGlzLl9jb250YWluZXIuZmluZCgnLm1lZGlhLWFoZWFkJyk7XHJcbiAgICAgICAgbGV0IGJ0bkJhY2sgPSB0aGlzLl9jb250YWluZXIuZmluZCgnLm1lZGlhLWJhY2snKTtcclxuICAgICAgICB0aGlzLl8kc2xpZGVyID0gdGhpcy5fY29udGFpbmVyLmZpbmQoJ2lucHV0W3R5cGU9cmFuZ2VdJyk7XHJcblxyXG4gICAgICAgIHRoaXMuXyR2YWxMYWJlbE1pbiA9IHRoaXMuX2NvbnRhaW5lci5maW5kKCcubWVkaWEtY29udHJvbC12YWx1ZS1sYWJlbC1taW4nKTtcclxuICAgICAgICB0aGlzLl8kdmFsTGFiZWxWYWwgPSB0aGlzLl9jb250YWluZXIuZmluZCgnLm1lZGlhLWNvbnRyb2wtdmFsdWUtbGFiZWwtdmFsJyk7XHJcbiAgICAgICAgdGhpcy5fJHZhbExhYmVsTWF4ID0gdGhpcy5fY29udGFpbmVyLmZpbmQoJy5tZWRpYS1jb250cm9sLXZhbHVlLWxhYmVsLW1heCcpO1xyXG5cclxuICAgICAgICB0aGlzLnNldE1pbk1heFZhbHVlU3RlcChtZWRpYUNvbmZpZy5taW4sIG1lZGlhQ29uZmlnLm1heCwgbWVkaWFDb25maWcudmFsLCBtZWRpYUNvbmZpZy5zdGVwKTtcclxuXHJcbiAgICAgICAgcmFuZ2VDaGFuZ2UodGhpcy5fJHNsaWRlciwobmV3VmFsKSA9PiB7IHRoaXMuY3VycmVudFZhbHVlID0gbmV3VmFsO30sIDEwMCk7XHJcblxyXG4gICAgICAgIGxldCBfX190aGlzID0gdGhpcztcclxuXHJcbiAgICAgICAgYnRuUGxheS5jbGljayhmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGxldCAkdGhpcyA9ICQodGhpcyk7XHJcbiAgICAgICAgICAgICR0aGlzLmFkZENsYXNzKCdtZWRpYS1kaXNhYmxlZCcpO1xyXG4gICAgICAgICAgICBfX190aGlzLl8kYnRuU3RvcC5yZW1vdmVDbGFzcygnbWVkaWEtZGlzYWJsZWQnKTtcclxuICAgICAgICAgICAgYnRuQWhlYWQuYWRkQ2xhc3MoJ21lZGlhLWxvY2tlZCcpO1xyXG4gICAgICAgICAgICBidG5CYWNrLmFkZENsYXNzKCdtZWRpYS1sb2NrZWQnKTtcclxuICAgICAgICAgICAgX19fdGhpcy5fJHNsaWRlci5wcm9wKCdkaXNhYmxlZCcsIHRydWUpO1xyXG4gICAgICAgICAgICBfX190aGlzLl9wbGF5aW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIF9fX3RoaXMuX2ludGVydmFsID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgX19fdGhpcy5jdXJyZW50VmFsdWUgKz0gX19fdGhpcy5fc3RlcDtcclxuICAgICAgICAgICAgfSwgX19fdGhpcy5fcGxheUludGVydmFsKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fJGJ0blN0b3AuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBjbGVhckludGVydmFsKF9fX3RoaXMuX2ludGVydmFsKTtcclxuICAgICAgICAgICAgbGV0ICR0aGlzID0gJCh0aGlzKTtcclxuICAgICAgICAgICAgJHRoaXMuYWRkQ2xhc3MoJ21lZGlhLWRpc2FibGVkJyk7XHJcbiAgICAgICAgICAgIGJ0blBsYXkucmVtb3ZlQ2xhc3MoJ21lZGlhLWRpc2FibGVkJyk7XHJcbiAgICAgICAgICAgIGJ0bkFoZWFkLnJlbW92ZUNsYXNzKCdtZWRpYS1sb2NrZWQnKTtcclxuICAgICAgICAgICAgYnRuQmFjay5yZW1vdmVDbGFzcygnbWVkaWEtbG9ja2VkJyk7XHJcbiAgICAgICAgICAgIF9fX3RoaXMuXyRzbGlkZXIucHJvcCgnZGlzYWJsZWQnLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIF9fX3RoaXMuX3BsYXlpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgYnRuQWhlYWQuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBfX190aGlzLmN1cnJlbnRWYWx1ZSA9IF9fX3RoaXMuY3VycmVudFZhbHVlICsgX19fdGhpcy5fc3RlcDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgYnRuQmFjay5jbGljayhmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIF9fX3RoaXMuY3VycmVudFZhbHVlID0gX19fdGhpcy5jdXJyZW50VmFsdWUgLSBfX190aGlzLl9zdGVwO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHN0b3BQbGF5aW5nKCl7XHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXlpbmcpe1xyXG4gICAgICAgICAgICB0aGlzLl8kYnRuU3RvcC50cmlnZ2VyKCdjbGljaycpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQgcGxheWluZygpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wbGF5aW5nO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBtaW4oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbWF4KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXg7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHN0ZXAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0ZXA7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGN1cnJlbnRWYWx1ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudFZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBjdXJyZW50VmFsdWUobmV3VmFsdWUpIHtcclxuICAgICAgICBpZiAobmV3VmFsdWUgPiB0aGlzLl9tYXgpIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSB0aGlzLl9taW47XHJcbiAgICAgICAgfSBlbHNlIGlmIChuZXdWYWx1ZSA8IHRoaXMuX21pbikge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9IHRoaXMuX21heDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fY3VycmVudFZhbHVlID0gbmV3VmFsdWU7XHJcbiAgICAgICAgdGhpcy5fJHNsaWRlci52YWwodGhpcy5fY3VycmVudFZhbHVlLnRvRml4ZWQoMikpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fc2hvd0FzRGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl8kdmFsTGFiZWxWYWwuaHRtbCh0aW1lVG9Mb2NhbERhdGVTdHJpbmcodGhpcy5jdXJyZW50VmFsdWUpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl8kdmFsTGFiZWxWYWwuaHRtbCh0aGlzLmN1cnJlbnRWYWx1ZS50b1N0cmluZygpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2NoYW5nZUZ1bmMobmV3VmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IG1pbiBhbmQgbWF4IHZhbHVlIHdpdGggc3RlcFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG5ld01pbiB0aGUgbmV3IG1pblxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG5ld01heCB0aGUgbmV3IG1hc1xyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuZXdWYWx1ZT1uZXdNaW5dIHRoZSB2YWx1ZSB0byBzZXRcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbmV3U3RlcD0obmV3TWF4LW5ld01pbikvMjBdIHN0ZXAgdmFsdWVcclxuICAgICAqL1xyXG4gICAgc2V0TWluTWF4VmFsdWVTdGVwKG5ld01pbiwgbmV3TWF4LCBuZXdWYWx1ZSwgbmV3U3RlcCkge1xyXG4gICAgICAgIHRoaXMuX21pbiA9IG5ld01pbjtcclxuICAgICAgICB0aGlzLl9tYXggPSBuZXdNYXg7XHJcblxyXG4gICAgICAgIG5ld1ZhbHVlID0gdHlwZW9mIG5ld1ZhbHVlID09ICdudW1iZXInID8gbmV3VmFsdWUgOiBuZXdNaW47XHJcbiAgICAgICAgbmV3U3RlcCA9IHR5cGVvZiBuZXdTdGVwID09ICdudW1iZXInID8gbmV3U3RlcCA6IChuZXdNYXgtbmV3TWluKS8yMDtcclxuXHJcbiAgICAgICAgdGhpcy5fY3VycmVudFZhbHVlID0gbmV3VmFsdWU7XHJcbiAgICAgICAgdGhpcy5fc3RlcCA9IG5ld1N0ZXA7XHJcblxyXG4gICAgICAgIHRoaXMuXyRzbGlkZXIucHJvcCgnbWluJywgdGhpcy5taW4udG9TdHJpbmcoKSk7XHJcbiAgICAgICAgdGhpcy5fJHNsaWRlci5wcm9wKCdtYXgnLCB0aGlzLm1heC50b1N0cmluZygpKTtcclxuICAgICAgICB0aGlzLl8kc2xpZGVyLnByb3AoJ3N0ZXAnLCB0aGlzLnN0ZXAudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgdGhpcy5fJHNsaWRlci52YWwodGhpcy5jdXJyZW50VmFsdWUudG9TdHJpbmcoKSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9zaG93QXNEYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyR2YWxMYWJlbE1pbi5odG1sKHRpbWVUb0xvY2FsRGF0ZVN0cmluZyh0aGlzLl9taW4pKTtcclxuICAgICAgICAgICAgdGhpcy5fJHZhbExhYmVsVmFsLmh0bWwodGltZVRvTG9jYWxEYXRlU3RyaW5nKHRoaXMuY3VycmVudFZhbHVlKSk7XHJcbiAgICAgICAgICAgIHRoaXMuXyR2YWxMYWJlbE1heC5odG1sKHRpbWVUb0xvY2FsRGF0ZVN0cmluZyh0aGlzLl9tYXgpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl8kdmFsTGFiZWxNaW4uaHRtbCh0aGlzLl9taW4udG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgIHRoaXMuXyR2YWxMYWJlbFZhbC5odG1sKHRoaXMuY3VycmVudFZhbHVlLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgICAgICB0aGlzLl8kdmFsTGFiZWxNYXguaHRtbCh0aGlzLl9tYXgudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bWVkaWFDYWxsYmFja30gbmV3RnVuYyB0aGUgY2FsbGJhY2sgb24gY2hhbmdlXHJcbiAgICAgKi9cclxuICAgIHNldCBjaGFuZ2VGdW5jdGlvbihuZXdGdW5jOiBjaGFuZ2VGdW5jdGlvbikge1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZUZ1bmMgPSBuZXdGdW5jO1xyXG4gICAgfVxyXG59XHJcblxyXG5ubS5NZWRpYUNvbnRyb2wgPSBNZWRpYUNvbnRyb2w7XHJcblxyXG4iXX0= /***/ }), -/***/ 19: +/***/ 18: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -430,11 +430,11 @@ function rangeChange($slider, callback, changeTimeout) { } exports.rangeChange = rangeChange; nm.rangeChange = rangeChange; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtY2hhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmFuZ2UtY2hhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkNBQXNDO0FBR3RDLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFOUIsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO0FBQ3BCLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztBQUN0QixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFDbkIsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO0FBQ3BCLElBQUksT0FBTyxDQUFDO0FBeUJaOztHQUVHO0FBRUgseUJBQXlCLFFBQThCLEVBQUUsR0FBRztJQUN4RCxZQUFZLENBQUM7SUFFYixJQUFJLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLElBQUksR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsSUFBSSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixJQUFJLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUEsQ0FBQztRQUNsQixHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksT0FBTyxHQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBRXpDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sT0FBTyxJQUFJLFFBQVEsSUFBSSxHQUFHLElBQUssT0FBTyxDQUFDLENBQUEsQ0FBQztRQUMvQyxNQUFNLENBQUM7SUFDWCxDQUFDO0lBQ0QsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUNkLFFBQVEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFJRDs7Ozs7OztHQU9HO0FBQ0gscUJBQTZCLE9BQWUsRUFBRSxRQUE4QixFQUFFLGFBQXFCO0lBRS9GLGFBQWEsR0FBRyxPQUFRLGFBQWEsSUFBSSxRQUFRLEdBQUcsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUV2RSxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ2YsT0FBTyxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDZixPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ2QsU0FBUyxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDWixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLFNBQVM7SUFDYjs7OztPQUlHO0lBQ0gsVUFBVSxHQUFHO1FBQ2IsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxDQUFDO1FBQ1gsQ0FBQztRQUVELE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFZixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixNQUFNLENBQUM7UUFDWCxDQUFDO1FBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4QixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNsQixZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUVELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztRQUVqQixPQUFPLEdBQUcsVUFBVSxDQUFDO1lBQ2pCLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMzQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRW5CLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxLQUFLO0lBQ1Q7OztPQUdHO0lBQ0gsVUFBVSxHQUFHO1FBQ2IsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRztRQUN4QixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ1YsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUVoQixNQUFNLENBQUM7UUFDWCxDQUFDO1FBQ0QsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLElBQUksQ0FBQztBQUNoQixDQUFDO0FBekVELGtDQXlFQztBQUVELEVBQUUsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnZG9tVXRpbCcpO1xyXG5cclxubGV0IG1vdXNlSW4gPSBmYWxzZTtcclxubGV0IG1vdXNlRG93biA9IGZhbHNlO1xyXG5sZXQgdGltZW91dCA9IG51bGw7XHJcbmxldCBkcmFnZ2VkID0gZmFsc2U7XHJcbmxldCBsYXN0VmFsO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBjYWxsYmFjayBvbiByYW5nZSBjaGFuZ2UgaW50ZXJhY3Rpb24sIGNvbnRleHQgb2YgdGhpcyBpcyB0aGUgZmlyaW5nIGRvbSBlbGVtZW50XHJcbiAqIEBjYWxsYmFjayByYW5nZUNoYW5nZUNhbGxiYWNrXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBuZXdWYWx1ZVxyXG4gKiBAcGFyYW0ge251bWJlcn0gcmF0aW8gdmFsdWUgZnJvbSAwIHRvIDEgcmVsYXRpdmUgb2YgdGhlIHZhbHVlIHRvIHRoZSBtaW4gYW5kIG1heFxyXG4gKiBAcGFyYW0ge29iamVjdH0gZXZ0XHJcbiAqL1xyXG5cclxuLyoqKlxyXG4gKiBjYWxsYmFjayBmdW5jaW9uIGFmdGVyIHRoZSBzbGlkZXIgaGFzIGJlZW4gbW92ZWRcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgcmFuZ2VDaGFuZ2VkQ2FsbGJhY2t7XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gbmV3VmFsdWUgbmV3IHZhbHVlIG9mIHRoZSBzbGlkZXJcclxuICAgICAqIEBwYXJhbSByYXRpbyByYXRpbyBmcm9tIGxvdyB0byBoaWdoLCAwIHRvIDFcclxuICAgICAqIEBwYXJhbSBldnQgdGhlIG9yaWdpbmFsIGV2ZW50XHJcbiAgICAgKi9cclxuICAgIChuZXdWYWx1ZTogbnVtYmVyLCByYXRpbzogbnVtYmVyLCBldnQ6IEV2ZW50KTogYW55XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8yLzIwMTUuXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gdHJpZ2dlckNhbGxiYWNrKGNhbGxiYWNrOiByYW5nZUNoYW5nZWRDYWxsYmFjaywgZXZ0KSB7XHJcbiAgICBcInVzZSBzdHJpY3RcIjtcclxuXHJcbiAgICBsZXQgdmFsID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlKTtcclxuICAgIGxldCBtaW4gPSBwYXJzZUZsb2F0KHRoaXMubWluKTtcclxuICAgIGxldCBtYXggPSBwYXJzZUZsb2F0KHRoaXMubWF4KTtcclxuICAgIGxldCBzdGVwID0gcGFyc2VGbG9hdCh0aGlzLnN0ZXApO1xyXG5cclxuICAgIGlmIChtYXggLSB2YWwgPCBzdGVwKXtcclxuICAgICAgICB2YWwgPSBtYXg7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBlcmNlbnQgPSAgKHZhbCAtIG1pbikgLyAobWF4IC0gbWluKTtcclxuXHJcbiAgICBpZiAodHlwZW9mIGxhc3RWYWwgPT0gJ251bWJlcicgJiYgdmFsID09ICBsYXN0VmFsKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsYXN0VmFsID0gdmFsO1xyXG4gICAgY2FsbGJhY2sodmFsLCBwZXJjZW50LCBldnQpO1xyXG59XHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiBBZGQgYSB2YXJpZXR5IG9mIGxpc3RlbmVycyBmb3IgcmFuZ2UgaW5wdXRzIGFwcGxpZWQgdG8gYSBjb21tb24gY2FsbGJhY2tcclxuICogQHBhcmFtICAkc2xpZGVyIC0ganF1ZXJ5IHJlZmVyZW5jZSB0byB0aGUgc2xpZGVyXHJcbiAqIEBwYXJhbSB7cmFuZ2VDaGFuZ2VDYWxsYmFja30gY2FsbGJhY2sgLSB0aGUgY2FsbGJhY2tcclxuICogQHBhcmFtIHtudW1iZXJ9IFtjaGFuZ2VUaW1lb3V0PTc1XSBiZWZvcmUgdGhlIGNhbGxiYWNrIGlzIGNhbGxlZFxyXG4gKiBAdGhpcyB7alF1ZXJ5fVxyXG4gKiBAcmV0dXJucyB7alF1ZXJ5fSB0aGUgalF1ZXJ5IG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJhbmdlQ2hhbmdlICgkc2xpZGVyOiBKUXVlcnksIGNhbGxiYWNrOiByYW5nZUNoYW5nZWRDYWxsYmFjaywgY2hhbmdlVGltZW91dDogbnVtYmVyKSB7XHJcblxyXG4gICAgY2hhbmdlVGltZW91dCA9IHR5cGVvZiAgY2hhbmdlVGltZW91dCA9PSAnbnVtYmVyJyA/IGNoYW5nZVRpbWVvdXQgOiA3NTtcclxuXHJcbiAgICAkc2xpZGVyLm1vdXNlZW50ZXIoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIG1vdXNlSW4gPSB0cnVlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgJHNsaWRlci5tb3VzZWxlYXZlKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBtb3VzZUluID0gZmFsc2U7XHJcbiAgICAgICAgbW91c2VEb3duID0gZmFsc2U7XHJcbiAgICB9KTtcclxuXHJcbiAgICAkc2xpZGVyLm1vdXNlZG93bihmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgbW91c2VEb3duID0gdHJ1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgICRzbGlkZXIubW91c2V1cChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgbW91c2VEb3duID0gZmFsc2U7XHJcbiAgICB9KTtcclxuXHJcbiAgICAkc2xpZGVyLm1vdXNlbW92ZShcclxuICAgICAgICAvKipcclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBldnQgLSBldmVudCBwcm9wZXJ0aWVzXHJcbiAgICAgICAgICogQHRoaXMge0hUTUxFbGVtZW50fVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGZ1bmN0aW9uIChldnQpIHtcclxuICAgICAgICBpZiAoIShtb3VzZUluICYmIG1vdXNlRG93bikpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZHJhZ2dlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIGlmIChsYXN0VmFsID09IHRoaXNbJ3ZhbHVlJ10pIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsYXN0VmFsID0gdGhpc1sndmFsdWUnXTtcclxuXHJcbiAgICAgICAgaWYgKHRpbWVvdXQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHRyaWdnZXJDYWxsYmFjay5jYWxsKF90aGlzLCBjYWxsYmFjaywgZXZ0KTtcclxuICAgICAgICAgICAgdGltZW91dCA9IG51bGw7XHJcblxyXG4gICAgICAgIH0sIGNoYW5nZVRpbWVvdXQpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgJHNsaWRlci5rZXl1cChcclxuICAgICAgICAvKipcclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBldnQgLSBldmVudCBwcm9wZXJ0aWVzXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgZnVuY3Rpb24gKGV2dCkge1xyXG4gICAgICAgIGlmIChldnQua2V5Q29kZSA9PSAzNyB8fCBldnQua2V5Q29kZSA9PSAzOSkge1xyXG4gICAgICAgICAgICB0cmlnZ2VyQ2FsbGJhY2suY2FsbCh0aGlzLCBjYWxsYmFjaywgZXZ0KTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAkc2xpZGVyLmNoYW5nZShmdW5jdGlvbiAoZXZ0KSB7XHJcbiAgICAgICAgaWYgKGRyYWdnZWQpIHtcclxuICAgICAgICAgICAgZHJhZ2dlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0cmlnZ2VyQ2FsbGJhY2suY2FsbCh0aGlzLCBjYWxsYmFjaywgZXZ0KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG59XHJcblxyXG5ubS5yYW5nZUNoYW5nZSA9IHJhbmdlQ2hhbmdlO1xyXG5cclxuIl19 /***/ }), -/***/ 38: +/***/ 37: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -470,7 +470,7 @@ var control = new media_control_1.MediaControl('map'); // console.log(definedAndNotNull("fish")); // console.log('here'); // - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXlfbGl0dGxlX3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJteV9saXR0bGVfdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLGNBQWM7QUFLZCxpRUFBNEQ7QUFDNUQsRUFBRTtBQUNGLEVBQUU7QUFHRixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUU3QixFQUFFO0FBQ0YsbUNBQW1DO0FBQ25DLEVBQUU7QUFDRixvQkFBb0I7QUFHcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUkxQixZQUFhLEdBQWU7SUFBZixvQkFBQSxFQUFBLE9BQWU7SUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQUVELEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVOLElBQUksT0FBTyxHQUFHLElBQUksNEJBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUV0QyxFQUFFO0FBQ0YsRUFBRTtBQUNGLG9CQUFvQjtBQUNwQixFQUFFO0FBQ0YsRUFBRTtBQUNGLDBDQUEwQztBQUMxQywwQ0FBMEM7QUFDMUMsMENBQTBDO0FBQzFDLDBDQUEwQztBQUMxQywwQ0FBMEM7QUFDMUMsdUJBQXVCO0FBQ3ZCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2wgPSByZXF1aXJlKCdjdXN0b20tb2wnKTtcclxuLy8gbGV0IGcgPSBuZXdcclxuXHJcblxyXG5cclxuXHJcbmltcG9ydCB7TWVkaWFDb250cm9sfSBmcm9tICcuLi8uLi9zcmMvZG9tVXRpbC9tZWRpYS1jb250cm9sJ1xyXG4vL1xyXG4vL1xyXG5cclxuXHJcbmNvbnNvbGUubG9nKCdlYXQgdGhpcyBmaXNoJyk7XHJcbmNvbnNvbGUubG9nKCdlYXQgdGhpcyBmaXNoJyk7XHJcbmNvbnNvbGUubG9nKCdlYXQgdGhpcyBiaXJkJyk7XHJcblxyXG4vL1xyXG4vLyBsZXQgZyA9IG5ldyBvbDMuc291cmNlLlZlY3RvcigpO1xyXG4vL1xyXG4vLyBjb25zb2xlLmxvZyhvbHgpO1xyXG5cclxuXHJcbmNvbnNvbGUubG9nKCdpIGFtIGhlcmU1Jyk7XHJcblxyXG5cclxuXHJcbmZ1bmN0aW9uIG1lIChlYXQ6IG51bWJlciA9IDEpe1xyXG4gICAgY29uc29sZS5sb2coZWF0LCAnb25lJyk7XHJcbn1cclxuXHJcbm1lKDEpO1xyXG5cclxudmFyIGNvbnRyb2wgPSBuZXcgTWVkaWFDb250cm9sKCdtYXAnKTtcclxuXHJcbi8vXHJcbi8vXHJcbi8vIGNvbnNvbGUubG9nKG9sMyk7XHJcbi8vXHJcbi8vXHJcbi8vIGNvbnNvbGUubG9nKGRlZmluZWRBbmROb3ROdWxsKFwiZmlzaFwiKSk7XHJcbi8vIGNvbnNvbGUubG9nKGRlZmluZWRBbmROb3ROdWxsKFwiZmlzaFwiKSk7XHJcbi8vIGNvbnNvbGUubG9nKGRlZmluZWRBbmROb3ROdWxsKFwiZmlzaFwiKSk7XHJcbi8vIGNvbnNvbGUubG9nKGRlZmluZWRBbmROb3ROdWxsKFwiZmlzaFwiKSk7XHJcbi8vIGNvbnNvbGUubG9nKGRlZmluZWRBbmROb3ROdWxsKFwiZmlzaFwiKSk7XHJcbi8vIGNvbnNvbGUubG9nKCdoZXJlJyk7XHJcbi8vXHJcbiJdfQ== /***/ }) diff --git a/test/serve/js/my_little_test.js.map b/test/serve/js/my_little_test.js.map index 015d96b..3a7ef68 100644 --- a/test/serve/js/my_little_test.js.map +++ b/test/serve/js/my_little_test.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap b4e25e5e5539f3f3f6dd?fe66***","webpack:///./src/util/provide.ts?5c82***","webpack:///external \"$\"?57aa***","webpack:///./src/domUtil/media-control.ts?660c","webpack:///./src/domUtil/range-change.ts?b7cd","webpack:///./test/demo/my_little_test.ts"],"names":[],"mappings":"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","file":"my_little_test.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\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 38);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap b4e25e5e5539f3f3f6dd","/**\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","module.exports = $;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"$\"\n// module id = 1\n// module chunks = 0 1 2 3 4 5 6","/**\r\n * Created by gavorhes on 11/2/2015.\r\n */\r\n\r\nimport provide from '../util/provide';\r\nimport {rangeChange} from './range-change';\r\nimport $ = 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\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: number;\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","import provide from '../util/provide';\r\nimport $ = require('jquery');\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\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","import ol = require('custom-ol');\r\n// let g = new\r\n\r\n\r\n\r\n\r\nimport {MediaControl} from '../../src/domUtil/media-control'\r\n//\r\n//\r\n\r\n\r\nconsole.log('eat this fish');\r\nconsole.log('eat this fish');\r\nconsole.log('eat this bird');\r\n\r\n//\r\n// let g = new ol3.source.Vector();\r\n//\r\n// console.log(olx);\r\n\r\n\r\nconsole.log('i am here5');\r\n\r\n\r\n\r\nfunction me (eat: number = 1){\r\n console.log(eat, 'one');\r\n}\r\n\r\nme(1);\r\n\r\nvar control = new MediaControl('map');\r\n\r\n//\r\n//\r\n// console.log(ol3);\r\n//\r\n//\r\n// console.log(definedAndNotNull(\"fish\"));\r\n// console.log(definedAndNotNull(\"fish\"));\r\n// console.log(definedAndNotNull(\"fish\"));\r\n// console.log(definedAndNotNull(\"fish\"));\r\n// console.log(definedAndNotNull(\"fish\"));\r\n// console.log('here');\r\n//\r\n\n\n\n// WEBPACK FOOTER //\n// ./test/demo/my_little_test.ts"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 1b9d70c904b3cb6688ad?eabd***","webpack:///./src/util/provide.ts?76dd***","webpack:///external \"$\"?57aa***","webpack:///./src/domUtil/media-control.ts?d2a5","webpack:///./src/domUtil/range-change.ts?bc83","webpack:///./test/demo/my_little_test.ts"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;AChEA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,2wE;;;;;;;AC7B3C,mB;;;;;;;;ACAA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B,QAAQ,GAAG;AAC1E,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,6BAA6B,EAAE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA,2CAA2C,uroB;;;;;;;;AClN3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,OAAO;AAClB,UAAU;AACV,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,OAAO;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,2CAA2C,uiQ;;;;;;;;AChG3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,SAAS;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,2hE","file":"my_little_test.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\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 37);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1b9d70c904b3cb6688ad","/**\r\n * Created by gavorhes on 12/10/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\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 var parts = namespace.split('.');\r\n var nameSpace = window['gv'];\r\n for (var i = 0; i < parts.length; i++) {\r\n var newObject = nameSpace[parts[i]];\r\n if (typeof newObject == 'undefined') {\r\n nameSpace[parts[i]] = {};\r\n }\r\n nameSpace = nameSpace[parts[i]];\r\n }\r\n return nameSpace;\r\n}\r\nprovide('util');\r\nwindow['gv'].util.provide = provide;\r\nexports.default = provide;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3ZpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUdIOzs7O0dBSUc7QUFDSCxpQkFBaUIsU0FBUztJQUN0QixZQUFZLENBQUM7SUFDYixFQUFFLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDO1FBQ2hDLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwQyxFQUFFLENBQUMsQ0FBQyxPQUFPLFNBQVMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1lBQ2pDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUVELFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFFcEMsa0JBQWUsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTAvMjAxNS5cclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIGNyZWF0ZSBhIG5hbWVzcGFjZSBvbiB0aGUgZ3Ygb2JqZWN0XHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UgdG8gY3JlYXRlXHJcbiAqIEByZXR1cm5zIHtvYmplY3R9IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5hbWVzcGFjZVxyXG4gKi9cclxuZnVuY3Rpb24gcHJvdmlkZShuYW1lc3BhY2Upe1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvd1snZ3YnXSA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgd2luZG93WydndiddID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBhcnRzID0gbmFtZXNwYWNlLnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgbmFtZVNwYWNlID0gd2luZG93WydndiddO1xyXG5cclxuICAgIGZvciAobGV0IGk9MDsgaTwgcGFydHMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGxldCBuZXdPYmplY3QgPSBuYW1lU3BhY2VbcGFydHNbaV1dO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG5ld09iamVjdCA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgICAgIG5hbWVTcGFjZVtwYXJ0c1tpXV0gPSB7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5hbWVTcGFjZSA9IG5hbWVTcGFjZVtwYXJ0c1tpXV07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5hbWVTcGFjZTtcclxufVxyXG5cclxucHJvdmlkZSgndXRpbCcpO1xyXG53aW5kb3dbJ2d2J10udXRpbC5wcm92aWRlID0gcHJvdmlkZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHByb3ZpZGU7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/util/provide.ts\n// module id = 0\n// module chunks = 0 1 2 3 4 5 6","module.exports = $;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"$\"\n// module id = 1\n// module chunks = 0 1 2 3 4 5 6","/**\r\n * Created by gavorhes on 11/2/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"../util/provide\");\r\nvar range_change_1 = require(\"./range-change\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('domUtil');\r\n/**\r\n * @callback mediaCallback\r\n * @param {number} tm\r\n */\r\nfunction timeToLocalDateString(tm) {\r\n \"use strict\";\r\n var d = new Date(tm);\r\n var p1 = d.toLocaleTimeString().split(' ');\r\n var p2 = p1[0].split(':');\r\n p2 = p2.slice(0, 2);\r\n return d.toLocaleDateString() + '<br>' + p2.join(':') + ' ' + p1[1];\r\n}\r\nvar MediaControl = (function () {\r\n /**\r\n *\r\n * @param element\r\n * @param changeFunc\r\n * @param mediaConfig\r\n */\r\n function MediaControl(element, changeFunc, mediaConfig) {\r\n if (changeFunc === void 0) { changeFunc = function () { return; }; }\r\n if (mediaConfig === void 0) { mediaConfig = {}; }\r\n var _this = this;\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 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 }\r\n else {\r\n this._container = element;\r\n }\r\n this._container.addClass('media-control-container');\r\n this._playInterval = mediaConfig.playInterval;\r\n this._changeFunc = changeFunc;\r\n this._showAsDate = mediaConfig.showAsDate;\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 var htmlStr = '<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 this._container.append(htmlStr);\r\n // let btnPause = this._container.find('.media-pause');\r\n var btnPlay = this._container.find('.media-play');\r\n this._$btnStop = this._container.find('.media-stop');\r\n var btnAhead = this._container.find('.media-ahead');\r\n var btnBack = this._container.find('.media-back');\r\n this._$slider = this._container.find('input[type=range]');\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 this.setMinMaxValueStep(mediaConfig.min, mediaConfig.max, mediaConfig.val, mediaConfig.step);\r\n range_change_1.rangeChange(this._$slider, function (newVal) { _this.currentValue = newVal; }, 100);\r\n var ___this = this;\r\n btnPlay.click(function () {\r\n var $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 ___this._interval = setInterval(function () {\r\n ___this.currentValue += ___this._step;\r\n }, ___this._playInterval);\r\n });\r\n this._$btnStop.click(function () {\r\n clearInterval(___this._interval);\r\n var $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 btnAhead.click(function () {\r\n ___this.currentValue = ___this.currentValue + ___this._step;\r\n });\r\n btnBack.click(function () {\r\n ___this.currentValue = ___this.currentValue - ___this._step;\r\n });\r\n }\r\n MediaControl.prototype.stopPlaying = function () {\r\n if (this._playing) {\r\n this._$btnStop.trigger('click');\r\n }\r\n };\r\n Object.defineProperty(MediaControl.prototype, \"playing\", {\r\n get: function () {\r\n return this._playing;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(MediaControl.prototype, \"min\", {\r\n get: function () {\r\n return this._min;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(MediaControl.prototype, \"max\", {\r\n get: function () {\r\n return this._max;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(MediaControl.prototype, \"step\", {\r\n get: function () {\r\n return this._step;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(MediaControl.prototype, \"currentValue\", {\r\n get: function () {\r\n return this._currentValue;\r\n },\r\n set: function (newValue) {\r\n if (newValue > this._max) {\r\n newValue = this._min;\r\n }\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 if (this._showAsDate) {\r\n this._$valLabelVal.html(timeToLocalDateString(this.currentValue));\r\n }\r\n else {\r\n this._$valLabelVal.html(this.currentValue.toString());\r\n }\r\n this._changeFunc(newValue);\r\n },\r\n enumerable: true,\r\n configurable: true\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 MediaControl.prototype.setMinMaxValueStep = function (newMin, newMax, newValue, newStep) {\r\n this._min = newMin;\r\n this._max = newMax;\r\n newValue = typeof newValue == 'number' ? newValue : newMin;\r\n newStep = typeof newStep == 'number' ? newStep : (newMax - newMin) / 20;\r\n this._currentValue = newValue;\r\n this._step = newStep;\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 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 }\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 Object.defineProperty(MediaControl.prototype, \"changeFunction\", {\r\n /**\r\n *\r\n * @param {mediaCallback} newFunc the callback on change\r\n */\r\n set: function (newFunc) {\r\n this._changeFunc = newFunc;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return MediaControl;\r\n}());\r\nexports.MediaControl = MediaControl;\r\nnm.MediaControl = MediaControl;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1lZGlhLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUVILDJDQUFzQztBQUN0QywrQ0FBMkM7QUFDM0MsMEJBQTZCO0FBRTdCLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFNUI7OztHQUdHO0FBRUgsK0JBQStCLEVBQUU7SUFDN0IsWUFBWSxDQUFDO0lBQ2IsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXBCLE1BQU0sQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxNQUFNLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUM7QUFpQkQ7SUFvQkk7Ozs7O09BS0c7SUFDSCxzQkFDSSxPQUFrQyxFQUNsQyxVQUFrRCxFQUNsRCxXQUFrQztRQURsQywyQkFBQSxFQUFBLDJCQUEwQyxNQUFNLENBQUMsQ0FBQSxDQUFDO1FBQ2xELDRCQUFBLEVBQUEsZ0JBQWtDO1FBSHRDLGlCQWlHQztRQTVGRyxXQUFXLENBQUMsR0FBRyxHQUFHLE9BQU8sV0FBVyxDQUFDLEdBQUcsSUFBSSxRQUFRLEdBQUcsV0FBVyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDM0UsV0FBVyxDQUFDLEdBQUcsR0FB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Q0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDTCxDQUFDO0lBTUQsc0JBQUksd0NBQWM7UUFKbEI7OztXQUdHO2FBQ0gsVUFBbUIsT0FBdUI7WUFDdEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUM7UUFDL0IsQ0FBQzs7O09BQUE7SUFDTCxtQkFBQztBQUFELENBQUMsQUFqTkQsSUFpTkM7QUFqTlksb0NBQVk7QUFtTnpCLEVBQUUsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMi8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCB7cmFuZ2VDaGFuZ2V9IGZyb20gJy4vcmFuZ2UtY2hhbmdlJztcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmxldCBubSA9IHByb3ZpZGUoJ2RvbVV0aWwnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2FsbGJhY2sgbWVkaWFDYWxsYmFja1xyXG4gKiBAcGFyYW0ge251bWJlcn0gdG1cclxuICovXHJcblxyXG5mdW5jdGlvbiB0aW1lVG9Mb2NhbERhdGVTdHJpbmcodG0pIHtcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG4gICAgbGV0IGQgPSBuZXcgRGF0ZSh0bSk7XHJcbiAgICBsZXQgcDEgPSBkLnRvTG9jYWxlVGltZVN0cmluZygpLnNwbGl0KCcgJyk7XHJcbiAgICBsZXQgcDIgPSBwMVswXS5zcGxpdCgnOicpO1xyXG4gICAgcDIgPSBwMi5zbGljZSgwLCAyKTtcclxuXHJcbiAgICByZXR1cm4gZC50b0xvY2FsZURhdGVTdHJpbmcoKSArICc8YnI+JyArIHAyLmpvaW4oJzonKSArICcgJyArIHAxWzFdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIGNoYW5nZUZ1bmN0aW9ue1xyXG4gICAgKG5ld1ZhbD86IG51bWJlcik6IHZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgbWVkaWFSYW5nZUNvbmZpZ3tcclxuICAgIG1pbj86IG51bWJlcjtcclxuICAgIG1heD86IG51bWJlcjtcclxuICAgIHZhbD86IG51bWJlcjtcclxuICAgIHN0ZXA/OiBudW1iZXI7XHJcbiAgICBwbGF5SW50ZXJ2YWw/OiBudW1iZXI7XHJcbiAgICBzaG93QXNEYXRlPzogYm9vbGVhbjtcclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgTWVkaWFDb250cm9sIHtcclxuICAgIF9jb250YWluZXI6IEpRdWVyeTtcclxuICAgIF9taW46IG51bWJlcjtcclxuICAgIF9tYXg6IG51bWJlcjtcclxuICAgIF9wbGF5SW50ZXJ2YWw6IG51bWJlcjtcclxuICAgIF9zdGVwOiBudW1iZXI7XHJcbiAgICBfY3VycmVudFZhbHVlOiBudW1iZXI7XHJcblxyXG4gICAgX3BsYXlpbmc6IGJvb2xlYW47XHJcblxyXG4gICAgXyRidG5TdG9wOiBKUXVlcnk7XHJcbiAgICBfJHNsaWRlcjogSlF1ZXJ5O1xyXG4gICAgXyR2YWxMYWJlbFZhbDogSlF1ZXJ5O1xyXG4gICAgXyR2YWxMYWJlbE1pbjogSlF1ZXJ5O1xyXG4gICAgXyR2YWxMYWJlbE1heDogSlF1ZXJ5O1xyXG4gICAgX2ludGVydmFsOiBudW1iZXI7XHJcbiAgICBfc2hvd0FzRGF0ZTogYm9vbGVhbjtcclxuXHJcbiAgICBfY2hhbmdlRnVuYzogY2hhbmdlRnVuY3Rpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGVsZW1lbnRcclxuICAgICAqIEBwYXJhbSBjaGFuZ2VGdW5jXHJcbiAgICAgKiBAcGFyYW0gbWVkaWFDb25maWdcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgZWxlbWVudDogSlF1ZXJ5fEhUTUxFbGVtZW50fHN0cmluZyxcclxuICAgICAgICBjaGFuZ2VGdW5jOiBjaGFuZ2VGdW5jdGlvbiA9ICgpOiB2b2lkID0+IHtyZXR1cm47fSxcclxuICAgICAgICBtZWRpYUNvbmZpZzogbWVkaWFSYW5nZUNvbmZpZyA9IHt9KSB7XHJcblxyXG4gICAgICAgIG1lZGlhQ29uZmlnLm1pbiA9IHR5cGVvZiBtZWRpYUNvbmZpZy5taW4gPT0gJ251bWJlcicgPyBtZWRpYUNvbmZpZy5taW4gOiAwO1xyXG4gICAgICAgIG1lZGlhQ29uZmlnLm1heCA9IHR5cGVvZiBtZWRpYUNvbmZpZy5tYXggPT0gJ251bWJlcicgPyBtZWRpYUNvbmZpZy5tYXggOiAxMDA7XHJcbiAgICAgICAgbWVkaWFDb25maWcudmFsID0gdHlwZW9mIG1lZGlhQ29uZmlnLnZhbCA9PSAnbnVtYmVyJyA/IG1lZGlhQ29uZmlnLnZhbCA6IDA7XHJcbiAgICAgICAgbWVkaWFDb25maWcuc3RlcCA9IHR5cGVvZiBtZWRpYUNvbmZpZy5zdGVwID09ICdudW1iZXInID8gbWVkaWFDb25maWcuc3RlcCA6IDU7XHJcbiAgICAgICAgbWVkaWFDb25maWcucGxheUludGVydmFsID0gdHlwZW9mIG1lZGlhQ29uZmlnLnBsYXlJbnRlcnZhbCA9PSAnbnVtYmVyJyA/IG1lZGlhQ29uZmlnLnBsYXlJbnRlcnZhbCA6IDUwMDtcclxuICAgICAgICBtZWRpYUNvbmZpZy5zaG93QXNEYXRlID0gdHlwZW9mIG1lZGlhQ29uZmlnLnNob3dBc0RhdGUgPT0gJ2Jvb2xlYW4nID8gbWVkaWFDb25maWcuc2hvd0FzRGF0ZSA6IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mICBlbGVtZW50ID09ICdzdHJpbmcnKXtcclxuICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyID0gJCgnIycgKyBlbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGVsZW1lbnRbJ3N0eWxlJ10gIT09ICd1bmRlZmluZWQnKXtcclxuICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyID0gJChlbGVtZW50KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9jb250YWluZXIgPSBlbGVtZW50IGFzIEpRdWVyeTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2NvbnRhaW5lci5hZGRDbGFzcygnbWVkaWEtY29udHJvbC1jb250YWluZXInKTtcclxuICAgICAgICB0aGlzLl9wbGF5SW50ZXJ2YWwgPSBtZWRpYUNvbmZpZy5wbGF5SW50ZXJ2YWw7XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRnVuYyA9IGNoYW5nZUZ1bmM7XHJcblxyXG4gICAgICAgIHRoaXMuX3Nob3dBc0RhdGUgPSBtZWRpYUNvbmZpZy5zaG93QXNEYXRlO1xyXG5cclxuICAgICAgICB0aGlzLl9jdXJyZW50VmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbWluID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX21heCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl9zdGVwID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX3BsYXlpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgbGV0IGh0bWxTdHIgPVxyXG4gICAgICAgICAgICAnPHNwYW4gY2xhc3M9XCJtZWRpYS1wbGF5ZXItYnV0dG9uIG1lZGlhLWJhY2tcIj48L3NwYW4+JyArXHJcbiAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cIm1lZGlhLXBsYXllci1idXR0b24gbWVkaWEtcGxheVwiPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwibWVkaWEtcGxheWVyLWJ1dHRvbiBtZWRpYS1wYXVzZSBtZWRpYS1kaXNhYmxlZFwiPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwibWVkaWEtcGxheWVyLWJ1dHRvbiBtZWRpYS1zdG9wIG1lZGlhLWRpc2FibGVkXCIgPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwibWVkaWEtcGxheWVyLWJ1dHRvbiBtZWRpYS1haGVhZFwiPjwvc3Bhbj4nICtcclxuICAgICAgICAgICAgYDxpbnB1dCB0eXBlPVwicmFuZ2VcIj5gICtcclxuICAgICAgICAgICAgYDxkaXYgY2xhc3M9XCJtZWRpYS1jb250cm9sLXZhbHVlLWxhYmVsLWNvbnRhaW5lclwiPmAgK1xyXG4gICAgICAgICAgICBgPHNwYW4gY2xhc3M9XCJtZWRpYS1jb250cm9sLXZhbHVlLWxhYmVsLW1pblwiPjwvc3Bhbj5gICtcclxuICAgICAgICAgICAgYDxzcGFuIGNsYXNzPVwibWVkaWEtY29udHJvbC12YWx1ZS1sYWJlbC12YWxcIj48L3NwYW4+YCArXHJcbiAgICAgICAgICAgIGA8c3BhbiBjbGFzcz1cIm1lZGlhLWNvbnRyb2wtdmFsdWUtbGFiZWwtbWF4XCI+PC9zcGFuPmAgK1xyXG4gICAgICAgICAgICBgPC9kaXY+YDtcclxuXHJcbiAgICAgICAgdGhpcy5fY29udGFpbmVyLmFwcGVuZChodG1sU3RyKTtcclxuXHJcbiAgICAgICAgLy8gbGV0IGJ0blBhdXNlID0gdGhpcy5fY29udGFpbmVyLmZpbmQoJy5tZWRpYS1wYXVzZScpO1xyXG4gICAgICAgIGxldCBidG5QbGF5ID0gdGhpcy5fY29udGFpbmVyLmZpbmQoJy5tZWRpYS1wbGF5Jyk7XHJcbiAgICAgICAgdGhpcy5fJGJ0blN0b3AgPSB0aGlzLl9jb250YWluZXIuZmluZCgnLm1lZGlhLXN0b3AnKTtcclxuICAgICAgICBsZXQgYnRuQWhlYWQgPSB0aGlzLl9jb250YWluZXIuZmluZCgnLm1lZGlhLWFoZWFkJyk7XHJcbiAgICAgICAgbGV0IGJ0bkJhY2sgPSB0aGlzLl9jb250YWluZXIuZmluZCgnLm1lZGlhLWJhY2snKTtcclxuICAgICAgICB0aGlzLl8kc2xpZGVyID0gdGhpcy5fY29udGFpbmVyLmZpbmQoJ2lucHV0W3R5cGU9cmFuZ2VdJyk7XHJcblxyXG4gICAgICAgIHRoaXMuXyR2YWxMYWJlbE1pbiA9IHRoaXMuX2NvbnRhaW5lci5maW5kKCcubWVkaWEtY29udHJvbC12YWx1ZS1sYWJlbC1taW4nKTtcclxuICAgICAgICB0aGlzLl8kdmFsTGFiZWxWYWwgPSB0aGlzLl9jb250YWluZXIuZmluZCgnLm1lZGlhLWNvbnRyb2wtdmFsdWUtbGFiZWwtdmFsJyk7XHJcbiAgICAgICAgdGhpcy5fJHZhbExhYmVsTWF4ID0gdGhpcy5fY29udGFpbmVyLmZpbmQoJy5tZWRpYS1jb250cm9sLXZhbHVlLWxhYmVsLW1heCcpO1xyXG5cclxuICAgICAgICB0aGlzLnNldE1pbk1heFZhbHVlU3RlcChtZWRpYUNvbmZpZy5taW4sIG1lZGlhQ29uZmlnLm1heCwgbWVkaWFDb25maWcudmFsLCBtZWRpYUNvbmZpZy5zdGVwKTtcclxuXHJcbiAgICAgICAgcmFuZ2VDaGFuZ2UodGhpcy5fJHNsaWRlciwobmV3VmFsKSA9PiB7IHRoaXMuY3VycmVudFZhbHVlID0gbmV3VmFsO30sIDEwMCk7XHJcblxyXG4gICAgICAgIGxldCBfX190aGlzID0gdGhpcztcclxuXHJcbiAgICAgICAgYnRuUGxheS5jbGljayhmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGxldCAkdGhpcyA9ICQodGhpcyk7XHJcbiAgICAgICAgICAgICR0aGlzLmFkZENsYXNzKCdtZWRpYS1kaXNhYmxlZCcpO1xyXG4gICAgICAgICAgICBfX190aGlzLl8kYnRuU3RvcC5yZW1vdmVDbGFzcygnbWVkaWEtZGlzYWJsZWQnKTtcclxuICAgICAgICAgICAgYnRuQWhlYWQuYWRkQ2xhc3MoJ21lZGlhLWxvY2tlZCcpO1xyXG4gICAgICAgICAgICBidG5CYWNrLmFkZENsYXNzKCdtZWRpYS1sb2NrZWQnKTtcclxuICAgICAgICAgICAgX19fdGhpcy5fJHNsaWRlci5wcm9wKCdkaXNhYmxlZCcsIHRydWUpO1xyXG4gICAgICAgICAgICBfX190aGlzLl9wbGF5aW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIF9fX3RoaXMuX2ludGVydmFsID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgX19fdGhpcy5jdXJyZW50VmFsdWUgKz0gX19fdGhpcy5fc3RlcDtcclxuICAgICAgICAgICAgfSwgX19fdGhpcy5fcGxheUludGVydmFsKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fJGJ0blN0b3AuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBjbGVhckludGVydmFsKF9fX3RoaXMuX2ludGVydmFsKTtcclxuICAgICAgICAgICAgbGV0ICR0aGlzID0gJCh0aGlzKTtcclxuICAgICAgICAgICAgJHRoaXMuYWRkQ2xhc3MoJ21lZGlhLWRpc2FibGVkJyk7XHJcbiAgICAgICAgICAgIGJ0blBsYXkucmVtb3ZlQ2xhc3MoJ21lZGlhLWRpc2FibGVkJyk7XHJcbiAgICAgICAgICAgIGJ0bkFoZWFkLnJlbW92ZUNsYXNzKCdtZWRpYS1sb2NrZWQnKTtcclxuICAgICAgICAgICAgYnRuQmFjay5yZW1vdmVDbGFzcygnbWVkaWEtbG9ja2VkJyk7XHJcbiAgICAgICAgICAgIF9fX3RoaXMuXyRzbGlkZXIucHJvcCgnZGlzYWJsZWQnLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIF9fX3RoaXMuX3BsYXlpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgYnRuQWhlYWQuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBfX190aGlzLmN1cnJlbnRWYWx1ZSA9IF9fX3RoaXMuY3VycmVudFZhbHVlICsgX19fdGhpcy5fc3RlcDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgYnRuQmFjay5jbGljayhmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIF9fX3RoaXMuY3VycmVudFZhbHVlID0gX19fdGhpcy5jdXJyZW50VmFsdWUgLSBfX190aGlzLl9zdGVwO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHN0b3BQbGF5aW5nKCl7XHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXlpbmcpe1xyXG4gICAgICAgICAgICB0aGlzLl8kYnRuU3RvcC50cmlnZ2VyKCdjbGljaycpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQgcGxheWluZygpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wbGF5aW5nO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBtaW4oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbWF4KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXg7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHN0ZXAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0ZXA7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGN1cnJlbnRWYWx1ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudFZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBjdXJyZW50VmFsdWUobmV3VmFsdWUpIHtcclxuICAgICAgICBpZiAobmV3VmFsdWUgPiB0aGlzLl9tYXgpIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSB0aGlzLl9taW47XHJcbiAgICAgICAgfSBlbHNlIGlmIChuZXdWYWx1ZSA8IHRoaXMuX21pbikge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9IHRoaXMuX21heDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fY3VycmVudFZhbHVlID0gbmV3VmFsdWU7XHJcbiAgICAgICAgdGhpcy5fJHNsaWRlci52YWwodGhpcy5fY3VycmVudFZhbHVlLnRvRml4ZWQoMikpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fc2hvd0FzRGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl8kdmFsTGFiZWxWYWwuaHRtbCh0aW1lVG9Mb2NhbERhdGVTdHJpbmcodGhpcy5jdXJyZW50VmFsdWUpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl8kdmFsTGFiZWxWYWwuaHRtbCh0aGlzLmN1cnJlbnRWYWx1ZS50b1N0cmluZygpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2NoYW5nZUZ1bmMobmV3VmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IG1pbiBhbmQgbWF4IHZhbHVlIHdpdGggc3RlcFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG5ld01pbiB0aGUgbmV3IG1pblxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG5ld01heCB0aGUgbmV3IG1hc1xyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuZXdWYWx1ZT1uZXdNaW5dIHRoZSB2YWx1ZSB0byBzZXRcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbmV3U3RlcD0obmV3TWF4LW5ld01pbikvMjBdIHN0ZXAgdmFsdWVcclxuICAgICAqL1xyXG4gICAgc2V0TWluTWF4VmFsdWVTdGVwKG5ld01pbiwgbmV3TWF4LCBuZXdWYWx1ZSwgbmV3U3RlcCkge1xyXG4gICAgICAgIHRoaXMuX21pbiA9IG5ld01pbjtcclxuICAgICAgICB0aGlzLl9tYXggPSBuZXdNYXg7XHJcblxyXG4gICAgICAgIG5ld1ZhbHVlID0gdHlwZW9mIG5ld1ZhbHVlID09ICdudW1iZXInID8gbmV3VmFsdWUgOiBuZXdNaW47XHJcbiAgICAgICAgbmV3U3RlcCA9IHR5cGVvZiBuZXdTdGVwID09ICdudW1iZXInID8gbmV3U3RlcCA6IChuZXdNYXgtbmV3TWluKS8yMDtcclxuXHJcbiAgICAgICAgdGhpcy5fY3VycmVudFZhbHVlID0gbmV3VmFsdWU7XHJcbiAgICAgICAgdGhpcy5fc3RlcCA9IG5ld1N0ZXA7XHJcblxyXG4gICAgICAgIHRoaXMuXyRzbGlkZXIucHJvcCgnbWluJywgdGhpcy5taW4udG9TdHJpbmcoKSk7XHJcbiAgICAgICAgdGhpcy5fJHNsaWRlci5wcm9wKCdtYXgnLCB0aGlzLm1heC50b1N0cmluZygpKTtcclxuICAgICAgICB0aGlzLl8kc2xpZGVyLnByb3AoJ3N0ZXAnLCB0aGlzLnN0ZXAudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgdGhpcy5fJHNsaWRlci52YWwodGhpcy5jdXJyZW50VmFsdWUudG9TdHJpbmcoKSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9zaG93QXNEYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyR2YWxMYWJlbE1pbi5odG1sKHRpbWVUb0xvY2FsRGF0ZVN0cmluZyh0aGlzLl9taW4pKTtcclxuICAgICAgICAgICAgdGhpcy5fJHZhbExhYmVsVmFsLmh0bWwodGltZVRvTG9jYWxEYXRlU3RyaW5nKHRoaXMuY3VycmVudFZhbHVlKSk7XHJcbiAgICAgICAgICAgIHRoaXMuXyR2YWxMYWJlbE1heC5odG1sKHRpbWVUb0xvY2FsRGF0ZVN0cmluZyh0aGlzLl9tYXgpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl8kdmFsTGFiZWxNaW4uaHRtbCh0aGlzLl9taW4udG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgIHRoaXMuXyR2YWxMYWJlbFZhbC5odG1sKHRoaXMuY3VycmVudFZhbHVlLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgICAgICB0aGlzLl8kdmFsTGFiZWxNYXguaHRtbCh0aGlzLl9tYXgudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bWVkaWFDYWxsYmFja30gbmV3RnVuYyB0aGUgY2FsbGJhY2sgb24gY2hhbmdlXHJcbiAgICAgKi9cclxuICAgIHNldCBjaGFuZ2VGdW5jdGlvbihuZXdGdW5jOiBjaGFuZ2VGdW5jdGlvbikge1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZUZ1bmMgPSBuZXdGdW5jO1xyXG4gICAgfVxyXG59XHJcblxyXG5ubS5NZWRpYUNvbnRyb2wgPSBNZWRpYUNvbnRyb2w7XHJcblxyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/domUtil/media-control.ts\n// module id = 17\n// module chunks = 0 4","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"../util/provide\");\r\nvar nm = provide_1.default('domUtil');\r\nvar mouseIn = false;\r\nvar mouseDown = false;\r\nvar timeout = null;\r\nvar dragged = false;\r\nvar lastVal;\r\n/**\r\n * Created by gavorhes on 11/2/2015.\r\n */\r\nfunction triggerCallback(callback, evt) {\r\n \"use strict\";\r\n var val = parseFloat(this.value);\r\n var min = parseFloat(this.min);\r\n var max = parseFloat(this.max);\r\n var step = parseFloat(this.step);\r\n if (max - val < step) {\r\n val = max;\r\n }\r\n var percent = (val - min) / (max - min);\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 * 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\nfunction rangeChange($slider, callback, changeTimeout) {\r\n changeTimeout = typeof changeTimeout == 'number' ? changeTimeout : 75;\r\n $slider.mouseenter(function () {\r\n mouseIn = true;\r\n });\r\n $slider.mouseleave(function () {\r\n mouseIn = false;\r\n mouseDown = false;\r\n });\r\n $slider.mousedown(function () {\r\n mouseDown = true;\r\n });\r\n $slider.mouseup(function () {\r\n mouseDown = false;\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 dragged = true;\r\n if (lastVal == this['value']) {\r\n return;\r\n }\r\n lastVal = this['value'];\r\n if (timeout != null) {\r\n clearTimeout(timeout);\r\n }\r\n var _this = this;\r\n timeout = setTimeout(function () {\r\n triggerCallback.call(_this, callback, evt);\r\n timeout = null;\r\n }, changeTimeout);\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 $slider.change(function (evt) {\r\n if (dragged) {\r\n dragged = false;\r\n return;\r\n }\r\n triggerCallback.call(this, callback, evt);\r\n });\r\n return this;\r\n}\r\nexports.rangeChange = rangeChange;\r\nnm.rangeChange = rangeChange;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtY2hhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmFuZ2UtY2hhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkNBQXNDO0FBR3RDLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFOUIsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO0FBQ3BCLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztBQUN0QixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFDbkIsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO0FBQ3BCLElBQUksT0FBTyxDQUFDO0FBeUJaOztHQUVHO0FBRUgseUJBQXlCLFFBQThCLEVBQUUsR0FBRztJQUN4RCxZQUFZLENBQUM7SUFFYixJQUFJLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLElBQUksR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsSUFBSSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixJQUFJLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUEsQ0FBQztRQUNsQixHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksT0FBTyxHQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBRXpDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sT0FBTyxJQUFJLFFBQVEsSUFBSSxHQUFHLElBQUssT0FBTyxDQUFDLENBQUEsQ0FBQztRQUMvQyxNQUFNLENBQUM7SUFDWCxDQUFDO0lBQ0QsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUNkLFFBQVEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFJRDs7Ozs7OztHQU9HO0FBQ0gscUJBQTZCLE9BQWUsRUFBRSxRQUE4QixFQUFFLGFBQXFCO0lBRS9GLGFBQWEsR0FBRyxPQUFRLGFBQWEsSUFBSSxRQUFRLEdBQUcsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUV2RSxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ2YsT0FBTyxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDZixPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ2QsU0FBUyxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDWixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLFNBQVM7SUFDYjs7OztPQUlHO0lBQ0gsVUFBVSxHQUFHO1FBQ2IsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxDQUFDO1FBQ1gsQ0FBQztRQUVELE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFZixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixNQUFNLENBQUM7UUFDWCxDQUFDO1FBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4QixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNsQixZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUVELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztRQUVqQixPQUFPLEdBQUcsVUFBVSxDQUFDO1lBQ2pCLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMzQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRW5CLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxLQUFLO0lBQ1Q7OztPQUdHO0lBQ0gsVUFBVSxHQUFHO1FBQ2IsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRztRQUN4QixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ1YsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUVoQixNQUFNLENBQUM7UUFDWCxDQUFDO1FBQ0QsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLElBQUksQ0FBQztBQUNoQixDQUFDO0FBekVELGtDQXlFQztBQUVELEVBQUUsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnZG9tVXRpbCcpO1xyXG5cclxubGV0IG1vdXNlSW4gPSBmYWxzZTtcclxubGV0IG1vdXNlRG93biA9IGZhbHNlO1xyXG5sZXQgdGltZW91dCA9IG51bGw7XHJcbmxldCBkcmFnZ2VkID0gZmFsc2U7XHJcbmxldCBsYXN0VmFsO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBjYWxsYmFjayBvbiByYW5nZSBjaGFuZ2UgaW50ZXJhY3Rpb24sIGNvbnRleHQgb2YgdGhpcyBpcyB0aGUgZmlyaW5nIGRvbSBlbGVtZW50XHJcbiAqIEBjYWxsYmFjayByYW5nZUNoYW5nZUNhbGxiYWNrXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBuZXdWYWx1ZVxyXG4gKiBAcGFyYW0ge251bWJlcn0gcmF0aW8gdmFsdWUgZnJvbSAwIHRvIDEgcmVsYXRpdmUgb2YgdGhlIHZhbHVlIHRvIHRoZSBtaW4gYW5kIG1heFxyXG4gKiBAcGFyYW0ge29iamVjdH0gZXZ0XHJcbiAqL1xyXG5cclxuLyoqKlxyXG4gKiBjYWxsYmFjayBmdW5jaW9uIGFmdGVyIHRoZSBzbGlkZXIgaGFzIGJlZW4gbW92ZWRcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgcmFuZ2VDaGFuZ2VkQ2FsbGJhY2t7XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gbmV3VmFsdWUgbmV3IHZhbHVlIG9mIHRoZSBzbGlkZXJcclxuICAgICAqIEBwYXJhbSByYXRpbyByYXRpbyBmcm9tIGxvdyB0byBoaWdoLCAwIHRvIDFcclxuICAgICAqIEBwYXJhbSBldnQgdGhlIG9yaWdpbmFsIGV2ZW50XHJcbiAgICAgKi9cclxuICAgIChuZXdWYWx1ZTogbnVtYmVyLCByYXRpbzogbnVtYmVyLCBldnQ6IEV2ZW50KTogYW55XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8yLzIwMTUuXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gdHJpZ2dlckNhbGxiYWNrKGNhbGxiYWNrOiByYW5nZUNoYW5nZWRDYWxsYmFjaywgZXZ0KSB7XHJcbiAgICBcInVzZSBzdHJpY3RcIjtcclxuXHJcbiAgICBsZXQgdmFsID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlKTtcclxuICAgIGxldCBtaW4gPSBwYXJzZUZsb2F0KHRoaXMubWluKTtcclxuICAgIGxldCBtYXggPSBwYXJzZUZsb2F0KHRoaXMubWF4KTtcclxuICAgIGxldCBzdGVwID0gcGFyc2VGbG9hdCh0aGlzLnN0ZXApO1xyXG5cclxuICAgIGlmIChtYXggLSB2YWwgPCBzdGVwKXtcclxuICAgICAgICB2YWwgPSBtYXg7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBlcmNlbnQgPSAgKHZhbCAtIG1pbikgLyAobWF4IC0gbWluKTtcclxuXHJcbiAgICBpZiAodHlwZW9mIGxhc3RWYWwgPT0gJ251bWJlcicgJiYgdmFsID09ICBsYXN0VmFsKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsYXN0VmFsID0gdmFsO1xyXG4gICAgY2FsbGJhY2sodmFsLCBwZXJjZW50LCBldnQpO1xyXG59XHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiBBZGQgYSB2YXJpZXR5IG9mIGxpc3RlbmVycyBmb3IgcmFuZ2UgaW5wdXRzIGFwcGxpZWQgdG8gYSBjb21tb24gY2FsbGJhY2tcclxuICogQHBhcmFtICAkc2xpZGVyIC0ganF1ZXJ5IHJlZmVyZW5jZSB0byB0aGUgc2xpZGVyXHJcbiAqIEBwYXJhbSB7cmFuZ2VDaGFuZ2VDYWxsYmFja30gY2FsbGJhY2sgLSB0aGUgY2FsbGJhY2tcclxuICogQHBhcmFtIHtudW1iZXJ9IFtjaGFuZ2VUaW1lb3V0PTc1XSBiZWZvcmUgdGhlIGNhbGxiYWNrIGlzIGNhbGxlZFxyXG4gKiBAdGhpcyB7alF1ZXJ5fVxyXG4gKiBAcmV0dXJucyB7alF1ZXJ5fSB0aGUgalF1ZXJ5IG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJhbmdlQ2hhbmdlICgkc2xpZGVyOiBKUXVlcnksIGNhbGxiYWNrOiByYW5nZUNoYW5nZWRDYWxsYmFjaywgY2hhbmdlVGltZW91dDogbnVtYmVyKSB7XHJcblxyXG4gICAgY2hhbmdlVGltZW91dCA9IHR5cGVvZiAgY2hhbmdlVGltZW91dCA9PSAnbnVtYmVyJyA/IGNoYW5nZVRpbWVvdXQgOiA3NTtcclxuXHJcbiAgICAkc2xpZGVyLm1vdXNlZW50ZXIoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIG1vdXNlSW4gPSB0cnVlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgJHNsaWRlci5tb3VzZWxlYXZlKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBtb3VzZUluID0gZmFsc2U7XHJcbiAgICAgICAgbW91c2VEb3duID0gZmFsc2U7XHJcbiAgICB9KTtcclxuXHJcbiAgICAkc2xpZGVyLm1vdXNlZG93bihmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgbW91c2VEb3duID0gdHJ1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgICRzbGlkZXIubW91c2V1cChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgbW91c2VEb3duID0gZmFsc2U7XHJcbiAgICB9KTtcclxuXHJcbiAgICAkc2xpZGVyLm1vdXNlbW92ZShcclxuICAgICAgICAvKipcclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBldnQgLSBldmVudCBwcm9wZXJ0aWVzXHJcbiAgICAgICAgICogQHRoaXMge0hUTUxFbGVtZW50fVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGZ1bmN0aW9uIChldnQpIHtcclxuICAgICAgICBpZiAoIShtb3VzZUluICYmIG1vdXNlRG93bikpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZHJhZ2dlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIGlmIChsYXN0VmFsID09IHRoaXNbJ3ZhbHVlJ10pIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsYXN0VmFsID0gdGhpc1sndmFsdWUnXTtcclxuXHJcbiAgICAgICAgaWYgKHRpbWVvdXQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHRyaWdnZXJDYWxsYmFjay5jYWxsKF90aGlzLCBjYWxsYmFjaywgZXZ0KTtcclxuICAgICAgICAgICAgdGltZW91dCA9IG51bGw7XHJcblxyXG4gICAgICAgIH0sIGNoYW5nZVRpbWVvdXQpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgJHNsaWRlci5rZXl1cChcclxuICAgICAgICAvKipcclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBldnQgLSBldmVudCBwcm9wZXJ0aWVzXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgZnVuY3Rpb24gKGV2dCkge1xyXG4gICAgICAgIGlmIChldnQua2V5Q29kZSA9PSAzNyB8fCBldnQua2V5Q29kZSA9PSAzOSkge1xyXG4gICAgICAgICAgICB0cmlnZ2VyQ2FsbGJhY2suY2FsbCh0aGlzLCBjYWxsYmFjaywgZXZ0KTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAkc2xpZGVyLmNoYW5nZShmdW5jdGlvbiAoZXZ0KSB7XHJcbiAgICAgICAgaWYgKGRyYWdnZWQpIHtcclxuICAgICAgICAgICAgZHJhZ2dlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0cmlnZ2VyQ2FsbGJhY2suY2FsbCh0aGlzLCBjYWxsYmFjaywgZXZ0KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG59XHJcblxyXG5ubS5yYW5nZUNoYW5nZSA9IHJhbmdlQ2hhbmdlO1xyXG5cclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/domUtil/range-change.ts\n// module id = 18\n// module chunks = 0 4","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n// let g = new\r\nvar media_control_1 = require(\"../../src/domUtil/media-control\");\r\n//\r\n//\r\nconsole.log('eat this fish');\r\nconsole.log('eat this fish');\r\nconsole.log('eat this bird');\r\n//\r\n// let g = new ol3.source.Vector();\r\n//\r\n// console.log(olx);\r\nconsole.log('i am here5');\r\nfunction me(eat) {\r\n if (eat === void 0) { eat = 1; }\r\n console.log(eat, 'one');\r\n}\r\nme(1);\r\nvar control = new media_control_1.MediaControl('map');\r\n//\r\n//\r\n// console.log(ol3);\r\n//\r\n//\r\n// console.log(definedAndNotNull(\"fish\"));\r\n// console.log(definedAndNotNull(\"fish\"));\r\n// console.log(definedAndNotNull(\"fish\"));\r\n// console.log(definedAndNotNull(\"fish\"));\r\n// console.log(definedAndNotNull(\"fish\"));\r\n// console.log('here');\r\n//\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXlfbGl0dGxlX3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJteV9saXR0bGVfdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLGNBQWM7QUFLZCxpRUFBNEQ7QUFDNUQsRUFBRTtBQUNGLEVBQUU7QUFHRixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUU3QixFQUFFO0FBQ0YsbUNBQW1DO0FBQ25DLEVBQUU7QUFDRixvQkFBb0I7QUFHcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUkxQixZQUFhLEdBQWU7SUFBZixvQkFBQSxFQUFBLE9BQWU7SUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQUVELEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVOLElBQUksT0FBTyxHQUFHLElBQUksNEJBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUV0QyxFQUFFO0FBQ0YsRUFBRTtBQUNGLG9CQUFvQjtBQUNwQixFQUFFO0FBQ0YsRUFBRTtBQUNGLDBDQUEwQztBQUMxQywwQ0FBMEM7QUFDMUMsMENBQTBDO0FBQzFDLDBDQUEwQztBQUMxQywwQ0FBMEM7QUFDMUMsdUJBQXVCO0FBQ3ZCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2wgPSByZXF1aXJlKCdjdXN0b20tb2wnKTtcclxuLy8gbGV0IGcgPSBuZXdcclxuXHJcblxyXG5cclxuXHJcbmltcG9ydCB7TWVkaWFDb250cm9sfSBmcm9tICcuLi8uLi9zcmMvZG9tVXRpbC9tZWRpYS1jb250cm9sJ1xyXG4vL1xyXG4vL1xyXG5cclxuXHJcbmNvbnNvbGUubG9nKCdlYXQgdGhpcyBmaXNoJyk7XHJcbmNvbnNvbGUubG9nKCdlYXQgdGhpcyBmaXNoJyk7XHJcbmNvbnNvbGUubG9nKCdlYXQgdGhpcyBiaXJkJyk7XHJcblxyXG4vL1xyXG4vLyBsZXQgZyA9IG5ldyBvbDMuc291cmNlLlZlY3RvcigpO1xyXG4vL1xyXG4vLyBjb25zb2xlLmxvZyhvbHgpO1xyXG5cclxuXHJcbmNvbnNvbGUubG9nKCdpIGFtIGhlcmU1Jyk7XHJcblxyXG5cclxuXHJcbmZ1bmN0aW9uIG1lIChlYXQ6IG51bWJlciA9IDEpe1xyXG4gICAgY29uc29sZS5sb2coZWF0LCAnb25lJyk7XHJcbn1cclxuXHJcbm1lKDEpO1xyXG5cclxudmFyIGNvbnRyb2wgPSBuZXcgTWVkaWFDb250cm9sKCdtYXAnKTtcclxuXHJcbi8vXHJcbi8vXHJcbi8vIGNvbnNvbGUubG9nKG9sMyk7XHJcbi8vXHJcbi8vXHJcbi8vIGNvbnNvbGUubG9nKGRlZmluZWRBbmROb3ROdWxsKFwiZmlzaFwiKSk7XHJcbi8vIGNvbnNvbGUubG9nKGRlZmluZWRBbmROb3ROdWxsKFwiZmlzaFwiKSk7XHJcbi8vIGNvbnNvbGUubG9nKGRlZmluZWRBbmROb3ROdWxsKFwiZmlzaFwiKSk7XHJcbi8vIGNvbnNvbGUubG9nKGRlZmluZWRBbmROb3ROdWxsKFwiZmlzaFwiKSk7XHJcbi8vIGNvbnNvbGUubG9nKGRlZmluZWRBbmROb3ROdWxsKFwiZmlzaFwiKSk7XHJcbi8vIGNvbnNvbGUubG9nKCdoZXJlJyk7XHJcbi8vXHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./test/demo/my_little_test.ts\n// module id = 37\n// module chunks = 4"],"sourceRoot":""} \ No newline at end of file diff --git a/test/serve/js/range_media.js b/test/serve/js/range_media.js index 129e6c7..d514342 100644 --- a/test/serve/js/range_media.js +++ b/test/serve/js/range_media.js @@ -63,7 +63,7 @@ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 39); +/******/ return __webpack_require__(__webpack_require__.s = 38); /******/ }) /************************************************************************/ /******/ ({ @@ -101,7 +101,7 @@ function provide(namespace) { provide('util'); window['gv'].util.provide = provide; exports.default = provide; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3ZpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUdIOzs7O0dBSUc7QUFDSCxpQkFBaUIsU0FBUztJQUN0QixZQUFZLENBQUM7SUFDYixFQUFFLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDO1FBQ2hDLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwQyxFQUFFLENBQUMsQ0FBQyxPQUFPLFNBQVMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1lBQ2pDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUVELFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFFcEMsa0JBQWUsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTAvMjAxNS5cclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIGNyZWF0ZSBhIG5hbWVzcGFjZSBvbiB0aGUgZ3Ygb2JqZWN0XHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UgdG8gY3JlYXRlXHJcbiAqIEByZXR1cm5zIHtvYmplY3R9IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5hbWVzcGFjZVxyXG4gKi9cclxuZnVuY3Rpb24gcHJvdmlkZShuYW1lc3BhY2Upe1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvd1snZ3YnXSA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgd2luZG93WydndiddID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBhcnRzID0gbmFtZXNwYWNlLnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgbmFtZVNwYWNlID0gd2luZG93WydndiddO1xyXG5cclxuICAgIGZvciAobGV0IGk9MDsgaTwgcGFydHMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGxldCBuZXdPYmplY3QgPSBuYW1lU3BhY2VbcGFydHNbaV1dO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG5ld09iamVjdCA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgICAgIG5hbWVTcGFjZVtwYXJ0c1tpXV0gPSB7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5hbWVTcGFjZSA9IG5hbWVTcGFjZVtwYXJ0c1tpXV07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5hbWVTcGFjZTtcclxufVxyXG5cclxucHJvdmlkZSgndXRpbCcpO1xyXG53aW5kb3dbJ2d2J10udXRpbC5wcm92aWRlID0gcHJvdmlkZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHByb3ZpZGU7XHJcbiJdfQ== /***/ }), @@ -112,7 +112,7 @@ module.exports = $; /***/ }), -/***/ 24: +/***/ 23: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -120,6 +120,7 @@ module.exports = $; Object.defineProperty(exports, "__esModule", { value: true }); var provide_1 = __webpack_require__(0); var $ = __webpack_require__(1); +__webpack_require__(1); var nm = provide_1.default('domUtil'); var DayRange = (function () { /** @@ -128,7 +129,6 @@ var DayRange = (function () { * @param {jQuery|HTMLElement|*} jQueryRef reference to the jquery element */ function DayRange(jQueryRef, dayRange) { - console.log('make day range'); this._workingDayRange = dayRange - 1; var pickerHtml = '<label for="start-date" style="width: 78px; display: inline-block; margin:5px;">Start Date</label>' + '<input type="text" readonly id="start-date" class="date-pick" style="width: 90px;">' + @@ -209,11 +209,11 @@ var DayRange = (function () { exports.DayRange = DayRange; nm.DayRange = DayRange; exports.default = DayRange; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LXJhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGF5LXJhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkNBQXNDO0FBQ3RDLDBCQUE2QjtBQUM3QixxQkFBbUI7QUFFbkIsSUFBSSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUU1QjtJQVFJOzs7O09BSUc7SUFDSCxrQkFBWSxTQUFpQixFQUFFLFFBQWdCO1FBQzNDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBRXJDLElBQUksVUFBVSxHQUFHLG9HQUFvRztZQUNqSCxzRkFBc0Y7WUFDdEYscUdBQXFHO1lBQ3JHLG1GQUFtRixDQUFDO1FBRXhGLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRTVCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXJCLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxQixJQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztRQUN4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LENBQUMsVUFBVSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDbEwsSUFBSSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRCxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNqRCxDQUFDO1FBQ0wsQ0FBQzs7O09BaEJBO0lBaUJMLGVBQUM7QUFBRCxDQUFDLEFBcEdELElBb0dDO0FBcEdZLDRCQUFRO0FBc0dyQixFQUFFLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUV2QixrQkFBZSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5pbXBvcnQgJ2pxdWVyeS11aSc7XHJcblxyXG5sZXQgbm0gPSBwcm92aWRlKCdkb21VdGlsJyk7XHJcblxyXG5leHBvcnQgY2xhc3MgRGF5UmFuZ2Uge1xyXG4gICAgX3dvcmtpbmdEYXlSYW5nZTogbnVtYmVyO1xyXG4gICAgXyRzdGFydERhdGU6IEpRdWVyeTtcclxuICAgIF8kZW5kRGF0ZTogSlF1ZXJ5O1xyXG4gICAgX21heERhdGVSYW5nZTogbnVtYmVyO1xyXG4gICAgX3N0YXJ0RGF0ZTogRGF0ZTtcclxuICAgIF9lbmREYXRlOiBEYXRlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogY29uc3RydWN0b3IgZm9yIHRoZSBkYXRlIHJhbmdlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGF5UmFuZ2UgbnVtYmVyIG9mIGRheXNcclxuICAgICAqIEBwYXJhbSB7alF1ZXJ5fEhUTUxFbGVtZW50fCp9IGpRdWVyeVJlZiByZWZlcmVuY2UgdG8gdGhlIGpxdWVyeSBlbGVtZW50XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGpRdWVyeVJlZjogSlF1ZXJ5LCBkYXlSYW5nZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fd29ya2luZ0RheVJhbmdlID0gZGF5UmFuZ2UgLSAxO1xyXG5cclxuICAgICAgICBsZXQgcGlja2VySHRtbCA9ICc8bGFiZWwgZm9yPVwic3RhcnQtZGF0ZVwiIHN0eWxlPVwid2lkdGg6IDc4cHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luOjVweDtcIj5TdGFydCBEYXRlPC9sYWJlbD4nICtcclxuICAgICAgICAgICAgJzxpbnB1dCB0eXBlPVwidGV4dFwiIHJlYWRvbmx5IGlkPVwic3RhcnQtZGF0ZVwiIGNsYXNzPVwiZGF0ZS1waWNrXCIgIHN0eWxlPVwid2lkdGg6IDkwcHg7XCI+JyArXHJcbiAgICAgICAgICAgICc8YnI+PGxhYmVsIGZvcj1cImVuZC1kYXRlXCIgc3R5bGU9XCJ3aWR0aDogNzhweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyAgbWFyZ2luOjVweDtcIj5FbmQgRGF0ZTwvbGFiZWw+JyArXHJcbiAgICAgICAgICAgICc8aW5wdXQgdHlwZT1cInRleHRcIiByZWFkb25seSBpZD1cImVuZC1kYXRlXCIgY2xhc3M9XCJkYXRlLXBpY2tcIiBzdHlsZT1cIndpZHRoOiA5MHB4O1wiPic7XHJcblxyXG4gICAgICAgIGpRdWVyeVJlZi5hcHBlbmQocGlja2VySHRtbCk7XHJcblxyXG4gICAgICAgIHRoaXMuXyRzdGFydERhdGUgPSAkKCcjc3RhcnQtZGF0ZScpO1xyXG4gICAgICAgIHRoaXMuXyRlbmREYXRlID0gJCgnI2VuZC1kYXRlJyk7XHJcblxyXG4gICAgICAgIHRoaXMuXyRzdGFydERhdGUuZGF0ZXBpY2tlcigpO1xyXG4gICAgICAgIHRoaXMuXyRlbmREYXRlLmRhdGVwaWNrZXIoKTtcclxuXHJcbiAgICAgICAgdGhpcy5fc3RhcnREYXRlID0gbnVsbDtcclxuICAgICAgICB0aGlzLl9lbmREYXRlID0gbnVsbDtcclxuXHJcbiAgICAgICAgbGV0IGR0ZTEgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIGR0ZTEuc2V0SG91cnMoMCwgMCwgMCwgMCk7XHJcbiAgICAgICAgbGV0IGR0ZTIgPSBuZXcgRGF0ZShkdGUxLmdldFRpbWUoKSk7XHJcbiAgICAgICAgZHRlMi5zZXREYXRlKGR0ZTIuZ2V0RGF0ZSgpICsgZGF5UmFuZ2UpO1xyXG4gICAgICAgIGR0ZTIuc2V0SG91cnMoMjMsIDU5LCA1OSwgMCk7XHJcbiAgICAgICAgdGhpcy5fbWF4RGF0ZVJhbmdlID0gZHRlMi5nZXRUaW1lKCkgLSBkdGUxLmdldFRpbWUoKTtcclxuXHJcbiAgICAgICAgbGV0IF90aGlzID0gdGhpcztcclxuXHJcbiAgICAgICAgLy9hZGQgZXZlbnQgbGlzdGVuZXJzXHJcbiAgICAgICAgdGhpcy5fJHN0YXJ0RGF0ZS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBfdGhpcy5zdGFydERhdGUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLl8kZW5kRGF0ZS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBfdGhpcy5lbmREYXRlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gaW5pdGlhbGl6ZVxyXG4gICAgICAgIHRoaXMuZW5kRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHN0YXJ0RGF0ZSgpOiBEYXRlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc3RhcnREYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB2YWxcclxuICAgICAqL1xyXG4gICAgc2V0IHN0YXJ0RGF0ZSh2YWw6IERhdGUpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB2YWwgPSBuZXcgRGF0ZSh2YWwgYXMgc3RyaW5nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3N0YXJ0RGF0ZSA9IHZhbDtcclxuICAgICAgICB0aGlzLl9zdGFydERhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XHJcbiAgICAgICAgdGhpcy5fJHN0YXJ0RGF0ZS52YWwodGhpcy5fc3RhcnREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpKTtcclxuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLmVuZERhdGUgPT0gbnVsbCB8fFxyXG4gICAgICAgICAgICB0aGlzLl9lbmREYXRlLmdldFRpbWUoKSAtIHRoaXMuX3N0YXJ0RGF0ZS5nZXRUaW1lKCkgPiB0aGlzLl9tYXhEYXRlUmFuZ2UgfHxcclxuICAgICAgICAgICAgdGhpcy5fZW5kRGF0ZS5nZXRUaW1lKCkgLSB0aGlzLl9zdGFydERhdGUuZ2V0VGltZSgpIDwgMjQgKiA2MCAqIDYwICogMTAwMCkge1xyXG4gICAgICAgICAgICBsZXQgdG1wRGF0ZSA9IG5ldyBEYXRlKHRoaXMuX3N0YXJ0RGF0ZS5nZXRUaW1lKCkpO1xyXG4gICAgICAgICAgICB0bXBEYXRlLnNldERhdGUodG1wRGF0ZS5nZXREYXRlKCkgKyB0aGlzLl93b3JraW5nRGF5UmFuZ2UpO1xyXG4gICAgICAgICAgICB0aGlzLmVuZERhdGUgPSBuZXcgRGF0ZSh0bXBEYXRlLmdldFRpbWUoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBlbmREYXRlKCk6IERhdGUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9lbmREYXRlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBzZXQgZW5kRGF0ZSh2YWw6IERhdGUpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB2YWwgPSBuZXcgRGF0ZSh2YWwgYXMgc3RyaW5nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2VuZERhdGUgPSB2YWw7XHJcbiAgICAgICAgdGhpcy5fZW5kRGF0ZS5zZXRIb3VycygyMywgNTksIDU5LCAwKTtcclxuICAgICAgICB0aGlzLl8kZW5kRGF0ZS52YWwodGhpcy5fZW5kRGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKSk7XHJcbiAgICAgICAgaWYgKHRoaXMuX3N0YXJ0RGF0ZSA9PSBudWxsIHx8IHRoaXMuX2VuZERhdGUuZ2V0VGltZSgpIC0gdGhpcy5zdGFydERhdGUuZ2V0VGltZSgpID4gdGhpcy5fbWF4RGF0ZVJhbmdlIHx8IHRoaXMuX2VuZERhdGUuZ2V0VGltZSgpIC0gdGhpcy5fc3RhcnREYXRlLmdldFRpbWUoKSA8IDI0ICogNjAgKiA2MCAqIDEwMDApIHtcclxuICAgICAgICAgICAgbGV0IHRtcERhdGUgPSBuZXcgRGF0ZSh0aGlzLl9lbmREYXRlLmdldFRpbWUoKSk7XHJcbiAgICAgICAgICAgIHRtcERhdGUuc2V0RGF0ZSh0bXBEYXRlLmdldERhdGUoKSAtIHRoaXMuX3dvcmtpbmdEYXlSYW5nZSk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlID0gbmV3IERhdGUodG1wRGF0ZS5nZXRUaW1lKCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxubm0uRGF5UmFuZ2UgPSBEYXlSYW5nZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IERheVJhbmdlO1xyXG5cclxuIl19 /***/ }), -/***/ 39: +/***/ 38: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -222,10 +222,10 @@ exports.default = DayRange; */ Object.defineProperty(exports, "__esModule", { value: true }); -var day_range_1 = __webpack_require__(24); +var day_range_1 = __webpack_require__(23); var $ = __webpack_require__(1); var dayRange = new day_range_1.DayRange($('#day-range'), 10); - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2VfbWVkaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyYW5nZV9tZWRpYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgseURBQXFEO0FBQ3JELDBCQUE2QjtBQUU3QixJQUFJLFFBQVEsR0FBRyxJQUFJLG9CQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTAvMTAvMjAxNi5cclxuICovXHJcblxyXG5pbXBvcnQge0RheVJhbmdlfSBmcm9tICcuLi8uLi9zcmMvZG9tVXRpbC9kYXktcmFuZ2UnO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5cclxubGV0IGRheVJhbmdlID0gbmV3IERheVJhbmdlKCQoJyNkYXktcmFuZ2UnKSwgMTApO1xyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXX0= /***/ }) diff --git a/test/serve/js/range_media.js.map b/test/serve/js/range_media.js.map index 9703021..028d478 100644 --- a/test/serve/js/range_media.js.map +++ b/test/serve/js/range_media.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap a403a25823ef64f36ed3","webpack:///./src/util/provide.ts","webpack:///external \"$\"","webpack:///./src/domUtil/day-range.ts","webpack:///./test/demo/range_media.ts"],"names":[],"mappings":"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","file":"range_media.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\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 39);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap a403a25823ef64f36ed3","/**\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","module.exports = $;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"$\"\n// module id = 1\n// module chunks = 0 1 2 3 4 5 6","import provide from '../util/provide';\r\nimport $ = require('jquery');\r\n\r\nlet nm = provide('domUtil');\r\n\r\nexport class DayRange {\r\n _workingDayRange: number;\r\n _$startDate: JQuery;\r\n _$endDate: JQuery;\r\n _maxDateRange: number;\r\n _startDate: Date;\r\n _endDate: Date;\r\n\r\n /**\r\n * constructor for the date range\r\n * @param {number} dayRange number of days\r\n * @param {jQuery|HTMLElement|*} jQueryRef reference to the jquery element\r\n */\r\n constructor(jQueryRef: JQuery, dayRange: number) {\r\n console.log('make day range');\r\n this._workingDayRange = dayRange - 1;\r\n\r\n let pickerHtml = '<label for=\"start-date\" style=\"width: 78px; display: inline-block; margin:5px;\">Start Date</label>' +\r\n '<input type=\"text\" readonly id=\"start-date\" class=\"date-pick\" style=\"width: 90px;\">' +\r\n '<br><label for=\"end-date\" style=\"width: 78px; display: inline-block; margin:5px;\">End Date</label>' +\r\n '<input type=\"text\" readonly id=\"end-date\" class=\"date-pick\" style=\"width: 90px;\">';\r\n\r\n jQueryRef.append(pickerHtml);\r\n\r\n this._$startDate = $('#start-date');\r\n this._$endDate = $('#end-date');\r\n\r\n this._$startDate.datepicker();\r\n this._$endDate.datepicker();\r\n\r\n this._startDate = null;\r\n this._endDate = null;\r\n\r\n let dte1 = new Date();\r\n dte1.setHours(0, 0, 0, 0);\r\n let dte2 = new Date(dte1.getTime());\r\n dte2.setDate(dte2.getDate() + dayRange);\r\n dte2.setHours(23, 59, 59, 0);\r\n this._maxDateRange = dte2.getTime() - dte1.getTime();\r\n\r\n let _this = this;\r\n\r\n //add event listeners\r\n this._$startDate.change(function () {\r\n _this.startDate = this.value;\r\n });\r\n\r\n this._$endDate.change(function () {\r\n _this.endDate = this.value;\r\n });\r\n\r\n // initialize\r\n this.endDate = new Date();\r\n }\r\n\r\n get startDate(): Date {\r\n return this._startDate;\r\n }\r\n\r\n /**\r\n *\r\n * @param val\r\n */\r\n set startDate(val: Date) {\r\n if (typeof val == 'string') {\r\n val = new Date(val as string);\r\n }\r\n\r\n this._startDate = val;\r\n this._startDate.setHours(0, 0, 0, 0);\r\n this._$startDate.val(this._startDate.toLocaleDateString());\r\n\r\n if (\r\n this.endDate == null ||\r\n this._endDate.getTime() - this._startDate.getTime() > this._maxDateRange ||\r\n this._endDate.getTime() - this._startDate.getTime() < 24 * 60 * 60 * 1000) {\r\n let tmpDate = new Date(this._startDate.getTime());\r\n tmpDate.setDate(tmpDate.getDate() + this._workingDayRange);\r\n this.endDate = new Date(tmpDate.getTime());\r\n }\r\n }\r\n\r\n get endDate(): Date {\r\n return this._endDate;\r\n }\r\n\r\n\r\n set endDate(val: Date) {\r\n if (typeof val == 'string') {\r\n val = new Date(val as string);\r\n }\r\n\r\n this._endDate = val;\r\n this._endDate.setHours(23, 59, 59, 0);\r\n this._$endDate.val(this._endDate.toLocaleDateString());\r\n if (this._startDate == null || this._endDate.getTime() - this.startDate.getTime() > this._maxDateRange || this._endDate.getTime() - this._startDate.getTime() < 24 * 60 * 60 * 1000) {\r\n let tmpDate = new Date(this._endDate.getTime());\r\n tmpDate.setDate(tmpDate.getDate() - this._workingDayRange);\r\n this.startDate = new Date(tmpDate.getTime());\r\n }\r\n }\r\n}\r\n\r\nnm.DayRange = DayRange;\r\n\r\nexport default DayRange;\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/domUtil/day-range.ts","/**\r\n * Created by gavorhes on 10/10/2016.\r\n */\r\n\r\nimport {DayRange} from '../../src/domUtil/day-range';\r\nimport $ = require('jquery');\r\n\r\nlet dayRange = new DayRange($('#day-range'), 10);\r\n\r\n\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./test/demo/range_media.ts"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 1b9d70c904b3cb6688ad?eabd****","webpack:///./src/util/provide.ts?76dd****","webpack:///external \"$\"?57aa****","webpack:///./src/domUtil/day-range.ts","webpack:///./test/demo/range_media.ts"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;AChEA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,2wE;;;;;;;AC7B3C,mB;;;;;;;;ACAA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,qBAAqB;AACpC;AACA;AACA;AACA,qEAAqE,uBAAuB,YAAY;AACxG,+FAA+F;AAC/F,0DAA0D,uBAAuB,aAAa;AAC9F,4FAA4F;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,2yS;;;;;;;;AC7F3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,2CAA2C,+nB","file":"range_media.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\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 38);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1b9d70c904b3cb6688ad","/**\r\n * Created by gavorhes on 12/10/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\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 var parts = namespace.split('.');\r\n var nameSpace = window['gv'];\r\n for (var i = 0; i < parts.length; i++) {\r\n var newObject = nameSpace[parts[i]];\r\n if (typeof newObject == 'undefined') {\r\n nameSpace[parts[i]] = {};\r\n }\r\n nameSpace = nameSpace[parts[i]];\r\n }\r\n return nameSpace;\r\n}\r\nprovide('util');\r\nwindow['gv'].util.provide = provide;\r\nexports.default = provide;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3ZpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUdIOzs7O0dBSUc7QUFDSCxpQkFBaUIsU0FBUztJQUN0QixZQUFZLENBQUM7SUFDYixFQUFFLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDO1FBQ2hDLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwQyxFQUFFLENBQUMsQ0FBQyxPQUFPLFNBQVMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1lBQ2pDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUVELFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFFcEMsa0JBQWUsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTAvMjAxNS5cclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIGNyZWF0ZSBhIG5hbWVzcGFjZSBvbiB0aGUgZ3Ygb2JqZWN0XHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UgdG8gY3JlYXRlXHJcbiAqIEByZXR1cm5zIHtvYmplY3R9IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5hbWVzcGFjZVxyXG4gKi9cclxuZnVuY3Rpb24gcHJvdmlkZShuYW1lc3BhY2Upe1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvd1snZ3YnXSA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgd2luZG93WydndiddID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBhcnRzID0gbmFtZXNwYWNlLnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgbmFtZVNwYWNlID0gd2luZG93WydndiddO1xyXG5cclxuICAgIGZvciAobGV0IGk9MDsgaTwgcGFydHMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGxldCBuZXdPYmplY3QgPSBuYW1lU3BhY2VbcGFydHNbaV1dO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG5ld09iamVjdCA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgICAgIG5hbWVTcGFjZVtwYXJ0c1tpXV0gPSB7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5hbWVTcGFjZSA9IG5hbWVTcGFjZVtwYXJ0c1tpXV07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5hbWVTcGFjZTtcclxufVxyXG5cclxucHJvdmlkZSgndXRpbCcpO1xyXG53aW5kb3dbJ2d2J10udXRpbC5wcm92aWRlID0gcHJvdmlkZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHByb3ZpZGU7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/util/provide.ts\n// module id = 0\n// module chunks = 0 1 2 3 4 5 6","module.exports = $;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"$\"\n// module id = 1\n// module chunks = 0 1 2 3 4 5 6","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"../util/provide\");\r\nvar $ = require(\"jquery\");\r\nrequire(\"jquery-ui\");\r\nvar nm = provide_1.default('domUtil');\r\nvar DayRange = (function () {\r\n /**\r\n * constructor for the date range\r\n * @param {number} dayRange number of days\r\n * @param {jQuery|HTMLElement|*} jQueryRef reference to the jquery element\r\n */\r\n function DayRange(jQueryRef, dayRange) {\r\n this._workingDayRange = dayRange - 1;\r\n var pickerHtml = '<label for=\"start-date\" style=\"width: 78px; display: inline-block; margin:5px;\">Start Date</label>' +\r\n '<input type=\"text\" readonly id=\"start-date\" class=\"date-pick\" style=\"width: 90px;\">' +\r\n '<br><label for=\"end-date\" style=\"width: 78px; display: inline-block; margin:5px;\">End Date</label>' +\r\n '<input type=\"text\" readonly id=\"end-date\" class=\"date-pick\" style=\"width: 90px;\">';\r\n jQueryRef.append(pickerHtml);\r\n this._$startDate = $('#start-date');\r\n this._$endDate = $('#end-date');\r\n this._$startDate.datepicker();\r\n this._$endDate.datepicker();\r\n this._startDate = null;\r\n this._endDate = null;\r\n var dte1 = new Date();\r\n dte1.setHours(0, 0, 0, 0);\r\n var dte2 = new Date(dte1.getTime());\r\n dte2.setDate(dte2.getDate() + dayRange);\r\n dte2.setHours(23, 59, 59, 0);\r\n this._maxDateRange = dte2.getTime() - dte1.getTime();\r\n var _this = this;\r\n //add event listeners\r\n this._$startDate.change(function () {\r\n _this.startDate = this.value;\r\n });\r\n this._$endDate.change(function () {\r\n _this.endDate = this.value;\r\n });\r\n // initialize\r\n this.endDate = new Date();\r\n }\r\n Object.defineProperty(DayRange.prototype, \"startDate\", {\r\n get: function () {\r\n return this._startDate;\r\n },\r\n /**\r\n *\r\n * @param val\r\n */\r\n set: function (val) {\r\n if (typeof val == 'string') {\r\n val = new Date(val);\r\n }\r\n this._startDate = val;\r\n this._startDate.setHours(0, 0, 0, 0);\r\n this._$startDate.val(this._startDate.toLocaleDateString());\r\n if (this.endDate == null ||\r\n this._endDate.getTime() - this._startDate.getTime() > this._maxDateRange ||\r\n this._endDate.getTime() - this._startDate.getTime() < 24 * 60 * 60 * 1000) {\r\n var tmpDate = new Date(this._startDate.getTime());\r\n tmpDate.setDate(tmpDate.getDate() + this._workingDayRange);\r\n this.endDate = new Date(tmpDate.getTime());\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DayRange.prototype, \"endDate\", {\r\n get: function () {\r\n return this._endDate;\r\n },\r\n set: function (val) {\r\n if (typeof val == 'string') {\r\n val = new Date(val);\r\n }\r\n this._endDate = val;\r\n this._endDate.setHours(23, 59, 59, 0);\r\n this._$endDate.val(this._endDate.toLocaleDateString());\r\n if (this._startDate == null || this._endDate.getTime() - this.startDate.getTime() > this._maxDateRange || this._endDate.getTime() - this._startDate.getTime() < 24 * 60 * 60 * 1000) {\r\n var tmpDate = new Date(this._endDate.getTime());\r\n tmpDate.setDate(tmpDate.getDate() - this._workingDayRange);\r\n this.startDate = new Date(tmpDate.getTime());\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return DayRange;\r\n}());\r\nexports.DayRange = DayRange;\r\nnm.DayRange = DayRange;\r\nexports.default = DayRange;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LXJhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGF5LXJhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkNBQXNDO0FBQ3RDLDBCQUE2QjtBQUM3QixxQkFBbUI7QUFFbkIsSUFBSSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUU1QjtJQVFJOzs7O09BSUc7SUFDSCxrQkFBWSxTQUFpQixFQUFFLFFBQWdCO1FBQzNDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBRXJDLElBQUksVUFBVSxHQUFHLG9HQUFvRztZQUNqSCxzRkFBc0Y7WUFDdEYscUdBQXFHO1lBQ3JHLG1GQUFtRixDQUFDO1FBRXhGLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRTVCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXJCLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxQixJQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztRQUN4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LENBQUMsVUFBVSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDbEwsSUFBSSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRCxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNqRCxDQUFDO1FBQ0wsQ0FBQzs7O09BaEJBO0lBaUJMLGVBQUM7QUFBRCxDQUFDLEFBcEdELElBb0dDO0FBcEdZLDRCQUFRO0FBc0dyQixFQUFFLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUV2QixrQkFBZSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5pbXBvcnQgJ2pxdWVyeS11aSc7XHJcblxyXG5sZXQgbm0gPSBwcm92aWRlKCdkb21VdGlsJyk7XHJcblxyXG5leHBvcnQgY2xhc3MgRGF5UmFuZ2Uge1xyXG4gICAgX3dvcmtpbmdEYXlSYW5nZTogbnVtYmVyO1xyXG4gICAgXyRzdGFydERhdGU6IEpRdWVyeTtcclxuICAgIF8kZW5kRGF0ZTogSlF1ZXJ5O1xyXG4gICAgX21heERhdGVSYW5nZTogbnVtYmVyO1xyXG4gICAgX3N0YXJ0RGF0ZTogRGF0ZTtcclxuICAgIF9lbmREYXRlOiBEYXRlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogY29uc3RydWN0b3IgZm9yIHRoZSBkYXRlIHJhbmdlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGF5UmFuZ2UgbnVtYmVyIG9mIGRheXNcclxuICAgICAqIEBwYXJhbSB7alF1ZXJ5fEhUTUxFbGVtZW50fCp9IGpRdWVyeVJlZiByZWZlcmVuY2UgdG8gdGhlIGpxdWVyeSBlbGVtZW50XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGpRdWVyeVJlZjogSlF1ZXJ5LCBkYXlSYW5nZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fd29ya2luZ0RheVJhbmdlID0gZGF5UmFuZ2UgLSAxO1xyXG5cclxuICAgICAgICBsZXQgcGlja2VySHRtbCA9ICc8bGFiZWwgZm9yPVwic3RhcnQtZGF0ZVwiIHN0eWxlPVwid2lkdGg6IDc4cHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luOjVweDtcIj5TdGFydCBEYXRlPC9sYWJlbD4nICtcclxuICAgICAgICAgICAgJzxpbnB1dCB0eXBlPVwidGV4dFwiIHJlYWRvbmx5IGlkPVwic3RhcnQtZGF0ZVwiIGNsYXNzPVwiZGF0ZS1waWNrXCIgIHN0eWxlPVwid2lkdGg6IDkwcHg7XCI+JyArXHJcbiAgICAgICAgICAgICc8YnI+PGxhYmVsIGZvcj1cImVuZC1kYXRlXCIgc3R5bGU9XCJ3aWR0aDogNzhweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyAgbWFyZ2luOjVweDtcIj5FbmQgRGF0ZTwvbGFiZWw+JyArXHJcbiAgICAgICAgICAgICc8aW5wdXQgdHlwZT1cInRleHRcIiByZWFkb25seSBpZD1cImVuZC1kYXRlXCIgY2xhc3M9XCJkYXRlLXBpY2tcIiBzdHlsZT1cIndpZHRoOiA5MHB4O1wiPic7XHJcblxyXG4gICAgICAgIGpRdWVyeVJlZi5hcHBlbmQocGlja2VySHRtbCk7XHJcblxyXG4gICAgICAgIHRoaXMuXyRzdGFydERhdGUgPSAkKCcjc3RhcnQtZGF0ZScpO1xyXG4gICAgICAgIHRoaXMuXyRlbmREYXRlID0gJCgnI2VuZC1kYXRlJyk7XHJcblxyXG4gICAgICAgIHRoaXMuXyRzdGFydERhdGUuZGF0ZXBpY2tlcigpO1xyXG4gICAgICAgIHRoaXMuXyRlbmREYXRlLmRhdGVwaWNrZXIoKTtcclxuXHJcbiAgICAgICAgdGhpcy5fc3RhcnREYXRlID0gbnVsbDtcclxuICAgICAgICB0aGlzLl9lbmREYXRlID0gbnVsbDtcclxuXHJcbiAgICAgICAgbGV0IGR0ZTEgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIGR0ZTEuc2V0SG91cnMoMCwgMCwgMCwgMCk7XHJcbiAgICAgICAgbGV0IGR0ZTIgPSBuZXcgRGF0ZShkdGUxLmdldFRpbWUoKSk7XHJcbiAgICAgICAgZHRlMi5zZXREYXRlKGR0ZTIuZ2V0RGF0ZSgpICsgZGF5UmFuZ2UpO1xyXG4gICAgICAgIGR0ZTIuc2V0SG91cnMoMjMsIDU5LCA1OSwgMCk7XHJcbiAgICAgICAgdGhpcy5fbWF4RGF0ZVJhbmdlID0gZHRlMi5nZXRUaW1lKCkgLSBkdGUxLmdldFRpbWUoKTtcclxuXHJcbiAgICAgICAgbGV0IF90aGlzID0gdGhpcztcclxuXHJcbiAgICAgICAgLy9hZGQgZXZlbnQgbGlzdGVuZXJzXHJcbiAgICAgICAgdGhpcy5fJHN0YXJ0RGF0ZS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBfdGhpcy5zdGFydERhdGUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLl8kZW5kRGF0ZS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBfdGhpcy5lbmREYXRlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gaW5pdGlhbGl6ZVxyXG4gICAgICAgIHRoaXMuZW5kRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHN0YXJ0RGF0ZSgpOiBEYXRlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc3RhcnREYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB2YWxcclxuICAgICAqL1xyXG4gICAgc2V0IHN0YXJ0RGF0ZSh2YWw6IERhdGUpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB2YWwgPSBuZXcgRGF0ZSh2YWwgYXMgc3RyaW5nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3N0YXJ0RGF0ZSA9IHZhbDtcclxuICAgICAgICB0aGlzLl9zdGFydERhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XHJcbiAgICAgICAgdGhpcy5fJHN0YXJ0RGF0ZS52YWwodGhpcy5fc3RhcnREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpKTtcclxuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLmVuZERhdGUgPT0gbnVsbCB8fFxyXG4gICAgICAgICAgICB0aGlzLl9lbmREYXRlLmdldFRpbWUoKSAtIHRoaXMuX3N0YXJ0RGF0ZS5nZXRUaW1lKCkgPiB0aGlzLl9tYXhEYXRlUmFuZ2UgfHxcclxuICAgICAgICAgICAgdGhpcy5fZW5kRGF0ZS5nZXRUaW1lKCkgLSB0aGlzLl9zdGFydERhdGUuZ2V0VGltZSgpIDwgMjQgKiA2MCAqIDYwICogMTAwMCkge1xyXG4gICAgICAgICAgICBsZXQgdG1wRGF0ZSA9IG5ldyBEYXRlKHRoaXMuX3N0YXJ0RGF0ZS5nZXRUaW1lKCkpO1xyXG4gICAgICAgICAgICB0bXBEYXRlLnNldERhdGUodG1wRGF0ZS5nZXREYXRlKCkgKyB0aGlzLl93b3JraW5nRGF5UmFuZ2UpO1xyXG4gICAgICAgICAgICB0aGlzLmVuZERhdGUgPSBuZXcgRGF0ZSh0bXBEYXRlLmdldFRpbWUoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBlbmREYXRlKCk6IERhdGUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9lbmREYXRlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBzZXQgZW5kRGF0ZSh2YWw6IERhdGUpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB2YWwgPSBuZXcgRGF0ZSh2YWwgYXMgc3RyaW5nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2VuZERhdGUgPSB2YWw7XHJcbiAgICAgICAgdGhpcy5fZW5kRGF0ZS5zZXRIb3VycygyMywgNTksIDU5LCAwKTtcclxuICAgICAgICB0aGlzLl8kZW5kRGF0ZS52YWwodGhpcy5fZW5kRGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKSk7XHJcbiAgICAgICAgaWYgKHRoaXMuX3N0YXJ0RGF0ZSA9PSBudWxsIHx8IHRoaXMuX2VuZERhdGUuZ2V0VGltZSgpIC0gdGhpcy5zdGFydERhdGUuZ2V0VGltZSgpID4gdGhpcy5fbWF4RGF0ZVJhbmdlIHx8IHRoaXMuX2VuZERhdGUuZ2V0VGltZSgpIC0gdGhpcy5fc3RhcnREYXRlLmdldFRpbWUoKSA8IDI0ICogNjAgKiA2MCAqIDEwMDApIHtcclxuICAgICAgICAgICAgbGV0IHRtcERhdGUgPSBuZXcgRGF0ZSh0aGlzLl9lbmREYXRlLmdldFRpbWUoKSk7XHJcbiAgICAgICAgICAgIHRtcERhdGUuc2V0RGF0ZSh0bXBEYXRlLmdldERhdGUoKSAtIHRoaXMuX3dvcmtpbmdEYXlSYW5nZSk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlID0gbmV3IERhdGUodG1wRGF0ZS5nZXRUaW1lKCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxubm0uRGF5UmFuZ2UgPSBEYXlSYW5nZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IERheVJhbmdlO1xyXG5cclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/domUtil/day-range.ts\n// module id = 23\n// module chunks = 5","/**\r\n * Created by gavorhes on 10/10/2016.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar day_range_1 = require(\"../../src/domUtil/day-range\");\r\nvar $ = require(\"jquery\");\r\nvar dayRange = new day_range_1.DayRange($('#day-range'), 10);\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2VfbWVkaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyYW5nZV9tZWRpYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgseURBQXFEO0FBQ3JELDBCQUE2QjtBQUU3QixJQUFJLFFBQVEsR0FBRyxJQUFJLG9CQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTAvMTAvMjAxNi5cclxuICovXHJcblxyXG5pbXBvcnQge0RheVJhbmdlfSBmcm9tICcuLi8uLi9zcmMvZG9tVXRpbC9kYXktcmFuZ2UnO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5cclxubGV0IGRheVJhbmdlID0gbmV3IERheVJhbmdlKCQoJyNkYXktcmFuZ2UnKSwgMTApO1xyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./test/demo/range_media.ts\n// module id = 38\n// module chunks = 5"],"sourceRoot":""} \ No newline at end of file diff --git a/test/serve/js/reacttst.js.map b/test/serve/js/reacttst.js.map index 657495b..3e17f78 100644 --- a/test/serve/js/reacttst.js.map +++ b/test/serve/js/reacttst.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap dc0dea3641fd6efbd755?e993******","webpack:///./test/demo/reacttst.tsx"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;AChEA;;GAEG;AAEH,kCAAkC;AAClC,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,qDAAqD;AACrD,EAAE;AACF,mBAAmB;AACnB,yDAAyD;AACzD,yCAAyC;AACzC,KAAK;AACL,EAAE","file":"reacttst.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\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 39);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap dc0dea3641fd6efbd755","/**\r\n * Created by gavorhes on 9/22/2016.\r\n */\r\n\r\n// import * as React from \"react\";\r\n// import * as ReactDOM from \"react/lib/\";\r\n//\r\n// import { Hello } from \"../_scratch/Hello\";\r\n//\r\n// console.log('I am in a tsx file for some reason');\r\n//\r\n// ReactDOM.render(\r\n// <Hello compiler=\"TypeScript\" framework=\"React\" />,\r\n// document.getElementById(\"example\")\r\n// );\r\n//\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./test/demo/reacttst.tsx"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 1b9d70c904b3cb6688ad?eabd******","webpack:///./test/demo/reacttst.tsx"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,+6B","file":"reacttst.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\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 39);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1b9d70c904b3cb6688ad","/**\r\n * Created by gavorhes on 9/22/2016.\r\n */\r\n// import * as React from \"react\";\r\n// import * as ReactDOM from \"react/lib/\";\r\n//\r\n// import { Hello } from \"../_scratch/Hello\";\r\n//\r\n// console.log('I am in a tsx file for some reason');\r\n//\r\n// ReactDOM.render(\r\n// <Hello compiler=\"TypeScript\" framework=\"React\" />,\r\n// document.getElementById(\"example\")\r\n// );\r\n//\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3R0c3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZWFjdHRzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxrQ0FBa0M7QUFDbEMsMENBQTBDO0FBQzFDLEVBQUU7QUFDRiw2Q0FBNkM7QUFDN0MsRUFBRTtBQUNGLHFEQUFxRDtBQUNyRCxFQUFFO0FBQ0YsbUJBQW1CO0FBQ25CLHlEQUF5RDtBQUN6RCx5Q0FBeUM7QUFDekMsS0FBSztBQUNMLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiA5LzIyLzIwMTYuXHJcbiAqL1xyXG5cclxuLy8gaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbi8vIGltcG9ydCAqIGFzIFJlYWN0RE9NIGZyb20gXCJyZWFjdC9saWIvXCI7XHJcbi8vXHJcbi8vIGltcG9ydCB7IEhlbGxvIH0gZnJvbSBcIi4uL19zY3JhdGNoL0hlbGxvXCI7XHJcbi8vXHJcbi8vIGNvbnNvbGUubG9nKCdJIGFtIGluIGEgdHN4IGZpbGUgZm9yIHNvbWUgcmVhc29uJyk7XHJcbi8vXHJcbi8vIFJlYWN0RE9NLnJlbmRlcihcclxuLy8gICAgIDxIZWxsbyBjb21waWxlcj1cIlR5cGVTY3JpcHRcIiBmcmFtZXdvcms9XCJSZWFjdFwiIC8+LFxyXG4vLyAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJleGFtcGxlXCIpXHJcbi8vICk7XHJcbi8vXHJcblxyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./test/demo/reacttst.tsx\n// module id = 39\n// module chunks = 7"],"sourceRoot":""} \ No newline at end of file diff --git a/test/serve/js/reacttst.tsx b/test/serve/js/reacttst.tsx deleted file mode 100644 index f249498..0000000 --- a/test/serve/js/reacttst.tsx +++ /dev/null @@ -1,93 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; -/******/ -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // identity function for calling harmony imports with the correct context -/******/ __webpack_require__.i = function(value) { return value; }; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 40); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 40: -/***/ (function(module, exports) { - -/** - * Created by gavorhes on 9/22/2016. - */ -// import * as React from "react"; -// import * as ReactDOM from "react/lib/"; -// -// import { Hello } from "../_scratch/Hello"; -// -// console.log('I am in a tsx file for some reason'); -// -// ReactDOM.render( -// <Hello compiler="TypeScript" framework="React" />, -// document.getElementById("example") -// ); -// - - -/***/ }) - -/******/ }); \ No newline at end of file diff --git a/test/serve/js/simple_map.js b/test/serve/js/simple_map.js index 2a64598..4a10dde 100644 --- a/test/serve/js/simple_map.js +++ b/test/serve/js/simple_map.js @@ -63,7 +63,7 @@ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 41); +/******/ return __webpack_require__(__webpack_require__.s = 40); /******/ }) /************************************************************************/ /******/ ([ @@ -100,7 +100,7 @@ function provide(namespace) { provide('util'); window['gv'].util.provide = provide; exports.default = provide; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3ZpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUdIOzs7O0dBSUc7QUFDSCxpQkFBaUIsU0FBUztJQUN0QixZQUFZLENBQUM7SUFDYixFQUFFLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDO1FBQ2hDLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwQyxFQUFFLENBQUMsQ0FBQyxPQUFPLFNBQVMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1lBQ2pDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUVELFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFFcEMsa0JBQWUsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTAvMjAxNS5cclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIGNyZWF0ZSBhIG5hbWVzcGFjZSBvbiB0aGUgZ3Ygb2JqZWN0XHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UgdG8gY3JlYXRlXHJcbiAqIEByZXR1cm5zIHtvYmplY3R9IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5hbWVzcGFjZVxyXG4gKi9cclxuZnVuY3Rpb24gcHJvdmlkZShuYW1lc3BhY2Upe1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvd1snZ3YnXSA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgd2luZG93WydndiddID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBhcnRzID0gbmFtZXNwYWNlLnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgbmFtZVNwYWNlID0gd2luZG93WydndiddO1xyXG5cclxuICAgIGZvciAobGV0IGk9MDsgaTwgcGFydHMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGxldCBuZXdPYmplY3QgPSBuYW1lU3BhY2VbcGFydHNbaV1dO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG5ld09iamVjdCA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgICAgIG5hbWVTcGFjZVtwYXJ0c1tpXV0gPSB7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5hbWVTcGFjZSA9IG5hbWVTcGFjZVtwYXJ0c1tpXV07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5hbWVTcGFjZTtcclxufVxyXG5cclxucHJvdmlkZSgndXRpbCcpO1xyXG53aW5kb3dbJ2d2J10udXRpbC5wcm92aWRlID0gcHJvdmlkZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHByb3ZpZGU7XHJcbiJdfQ== /***/ }), /* 1 */ @@ -139,7 +139,7 @@ function makeGuid() { } nm.makeGuid = makeGuid; exports.default = makeGuid; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUd1aWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYWtlR3VpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgscUNBQWdDO0FBQ2hDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFHekI7OztHQUdHO0FBQ0g7SUFDUSxNQUFNLENBQUMsc0NBQXNDO1NBQ3hDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUVqRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztBQUVmLENBQUM7QUFDRCxFQUFFLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUN2QixrQkFBZSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8zLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi9wcm92aWRlJztcclxubGV0IG5tID0gcHJvdmlkZSgndXRpbCcpO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBndWlkcyBhcmUgdXNlZCB0byB1bmlxdWVseSBpZGVudGlmeSBncm91cHMgYW5kIGZlYXR1cmVzXHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IGEgbmV3IGd1aWRcclxuICovXHJcbmZ1bmN0aW9uIG1ha2VHdWlkKCkge1xyXG4gICAgICAgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4J1xyXG4gICAgICAgICAgICAucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbiAoYykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHIgPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwLCB2ID0gYyA9PSAneCcgPyByIDogciAmIDB4MyB8IDB4ODtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxufVxyXG5ubS5tYWtlR3VpZCA9IG1ha2VHdWlkO1xyXG5leHBvcnQgZGVmYXVsdCBtYWtlR3VpZDtcclxuXHJcblxyXG4iXX0= /***/ }), /* 4 */ @@ -158,7 +158,7 @@ var mapPopupCls_1 = __webpack_require__(12); */ exports.mapPopup = new mapPopupCls_1.default(); exports.default = exports.mapPopup; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwUG9wdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBQb3B1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsNkNBQXdDO0FBRXhDOzs7R0FHRztBQUNVLFFBQUEsUUFBUSxHQUFHLElBQUkscUJBQVcsRUFBaUIsQ0FBQztBQUN6RCxrQkFBZSxnQkFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMy8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBNYXBQb3B1cENscyBmcm9tICcuL21hcFBvcHVwQ2xzJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2luZ2xlIHBvcHVwIG9iamVjdCBjYXRjaCBpcyB0aGF0IGl0IGlzIGNvbW1vbiB0byBtdWx0aW1hcCBwYWdlc1xyXG4gKiBAdHlwZSB7TWFwUG9wdXBDbHN9XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgbWFwUG9wdXAgPSBuZXcgTWFwUG9wdXBDbHMoKSBhcyBNYXBQb3B1cENscztcclxuZXhwb3J0IGRlZmF1bHQgbWFwUG9wdXA7XHJcbiJdfQ== /***/ }), /* 5 */ @@ -241,7 +241,7 @@ var MapInteractionBase = (function () { exports.MapInteractionBase = MapInteractionBase; nm.MapInteractionBase = MapInteractionBase; exports.default = MapInteractionBase; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwSW50ZXJhY3Rpb25CYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWFwSW50ZXJhY3Rpb25CYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7O0dBRUc7QUFDSCwyQ0FBc0M7QUFFdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUloQzs7R0FFRztBQUNIO0lBS0k7OztPQUdHO0lBQ0gsNEJBQVksT0FBZTtRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlDQUFJLEdBQUosVUFBSyxNQUFjO1FBQ2YsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUEsQ0FBQztZQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztZQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQU1ELHNCQUFJLG1DQUFHO1FBSlA7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyQixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDJDQUFXO1FBSmY7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM3QixDQUFDOzs7T0FBQTtJQUVEOzs7T0FHRztJQUNILHVDQUFVLEdBQVY7UUFDSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksR0FBRyxHQUFNLElBQUksQ0FBQyxRQUFRLDRCQUF5QixDQUFDO1lBQ3BELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsTUFBTSxHQUFHLENBQUM7UUFDZCxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0NBQVMsR0FBVDtRQUNJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0wseUJBQUM7QUFBRCxDQUFDLEFBOURELElBOERDO0FBOURZLGdEQUFrQjtBQWdFL0IsRUFBRSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0FBQzNDLGtCQUFlLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvOC8yMDE1LlxyXG4gKi9cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnb2xIZWxwZXJzJyk7XHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiBiYXNlIGludGVyYWN0aW9uXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTWFwSW50ZXJhY3Rpb25CYXNlIHtcclxuICAgIF9tYXA6IG9sLk1hcDtcclxuICAgIF9pbml0aWFsaXplZDogYm9vbGVhbjtcclxuICAgIF9zdWJ0eXBlOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBtYXAgaW50ZXJhY3Rpb24gYmFzZVxyXG4gICAgICogQHBhcmFtIHN1YnR5cGUgLSB0aGUgaW50ZXJhY3Rpb24gc3VidHlwZVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihzdWJ0eXBlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9tYXAgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fc3VidHlwZSA9IHN1YnR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBiYXNlIGluaXRpYWxpemVyLCByZXR1cm5zIHRydWUgZm9yIGFscmVhZHkgaW5pdGlhbGl6ZWRcclxuICAgICAqIEBwYXJhbSB0aGVNYXAgLSB0aGUgb2wgTWFwXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIGZvciBhbHJlYWR5IGluaXRpYWxpemVkXHJcbiAgICAgKi9cclxuICAgIGluaXQodGhlTWFwOiBvbC5NYXApe1xyXG4gICAgICAgIGlmICghdGhpcy5faW5pdGlhbGl6ZWQpe1xyXG4gICAgICAgICAgICB0aGlzLl9tYXAgPSB0aGVNYXA7XHJcbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgcmVmZXJlbmNlIHRvIHRoZSBvbCBtYXAgb2JqZWN0XHJcbiAgICAgKiBAcmV0dXJucyB7b2wuTWFwfSB0aGUgbWFwIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBnZXQgbWFwKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgaWYgaXMgaW5pdGlhbGl6ZWRcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBpcyBpbml0aWFsaXplZFxyXG4gICAgICovXHJcbiAgICBnZXQgaW5pdGlhbGl6ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxpemVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgdGhlIGluaXRpYWxpemF0aW9uIHN0YXR1cyBhbmQgdGhyb3cgZXhjZXB0aW9uIGlmIG5vdCB2YWxpZCB5ZXRcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqL1xyXG4gICAgX2NoZWNrSW5pdCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgbGV0IG1zZyA9IGAke3RoaXMuX3N1YnR5cGV9IG9iamVjdCBub3QgaW5pdGlhbGl6ZWRgO1xyXG4gICAgICAgICAgICBhbGVydChtc2cpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhtc2cpO1xyXG4gICAgICAgICAgICB0aHJvdyBtc2c7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgdGhlIGluaXRpYWxpemF0aW9uIHN0YXR1cyBhbmQgdGhyb3cgZXhjZXB0aW9uIGlmIG5vdCB2YWxpZCB5ZXRcclxuICAgICAqL1xyXG4gICAgY2hlY2tJbml0KCl7XHJcbiAgICAgICAgdGhpcy5fY2hlY2tJbml0KCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbm5tLk1hcEludGVyYWN0aW9uQmFzZSA9IE1hcEludGVyYWN0aW9uQmFzZTtcclxuZXhwb3J0IGRlZmF1bHQgTWFwSW50ZXJhY3Rpb25CYXNlO1xyXG4iXX0= /***/ }), /* 6 */ @@ -260,7 +260,7 @@ var mapMoveCls_1 = __webpack_require__(11); */ exports.mapMove = new mapMoveCls_1.default(); exports.default = exports.mapMove; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwTW92ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hcE1vdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUVILDJDQUFzQztBQUV0Qzs7O0dBR0c7QUFFVSxRQUFBLE9BQU8sR0FBRyxJQUFJLG9CQUFVLEVBQUUsQ0FBQztBQUN4QyxrQkFBZSxlQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8zLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IE1hcE1vdmVDbHMgZnJvbSAnLi9tYXBNb3ZlQ2xzJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2luZ2xlIG1hcCBtb3ZlIG9iamVjdCBjYXRjaCBpcyB0aGF0IGl0IGlzIGNvbW1vbiB0byBtdWx0aW1hcCBwYWdlc1xyXG4gKiBAdHlwZSB7TWFwTW92ZUNsc31cclxuICovXHJcblxyXG5leHBvcnQgY29uc3QgbWFwTW92ZSA9IG5ldyBNYXBNb3ZlQ2xzKCk7XHJcbmV4cG9ydCBkZWZhdWx0IG1hcE1vdmU7XHJcbiJdfQ== /***/ }), /* 7 */ @@ -302,7 +302,7 @@ function quickMap(options) { exports.quickMap = quickMap; nm.quickMap = quickMap; exports.default = quickMap; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2tNYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJxdWlja01hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsK0NBQTZEO0FBQzdELDJDQUFzQztBQUN0QyxxQ0FBZ0M7QUFDaEMsdUNBQWtDO0FBRWxDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFOUI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsa0JBQXlCLE9BQTBCO0lBQy9DLElBQUksQ0FBQyxHQUFHLDJCQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsaUJBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEIsa0JBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNiLENBQUM7QUFMRCw0QkFLQztBQUdELEVBQUUsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3ZCLGtCQUFlLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzE1LzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtxdWlja01hcE9wdGlvbnMsIHF1aWNrTWFwQmFzZX0gZnJvbSAnLi9xdWlja01hcEJhc2UnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFwTW92ZSBmcm9tICcuL21hcE1vdmUnO1xyXG5pbXBvcnQgbWFwUG9wdXAgZnJvbSAnLi9tYXBQb3B1cCc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5sZXQgbm0gPSBwcm92aWRlKCdvbEhlbHBlcnMnKTtcclxuXHJcbi8qKlxyXG4gKiBTZXRzIHVwIGEgbWFwIHdpdGggc29tZSBkZWZhdWx0IHBhcmFtZXRlcnMgYW5kIGluaXRpYWxpemVzXHJcbiAqIG1hcE1vdmUgYW5kIG1hcFBvcHVwXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucz17fV0gY29uZmlnIG9wdGlvbnNcclxuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmRpdklkPW1hcF0gbWFwIGRpdiBpZFxyXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMuY2VudGVyPXt9XSBjZW50ZXIgY29uZmlnIG9iamVjdFxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuY2VudGVyLng9LTEwMDE4Mzc4XSBjZW50ZXIgeCwgd2ViIG1lcmNhdG9yIHggb3IgbG9uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5jZW50ZXIueT01NTc0OTEwXSBjZW50ZXIgeSwgd2ViIG1lcmNhdG9yIHkgb3IgbGF0XHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56b29tPTddIHpvb20gbGV2ZWxcclxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSBtaW4gem9vbVxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIG1heCB6b29tXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuYmFzZVN3aXRjaGVyPXRydWVdIGlmIGFkZCBiYXNlIG1hcCBzd2l0Y2hlclxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmZ1bGxTY3JlZW49ZmFsc2VdIGlmIGFkZCBiYXNlIG1hcCBzd2l0Y2hlclxyXG4gKiBAcmV0dXJucyB7b2wuTWFwfSB0aGUgb2wgbWFwXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcXVpY2tNYXAob3B0aW9ucz8gOiBxdWlja01hcE9wdGlvbnMpOiBvbC5NYXAge1xyXG4gICAgbGV0IG0gPSBxdWlja01hcEJhc2Uob3B0aW9ucyk7XHJcbiAgICBtYXBNb3ZlLmluaXQobSk7XHJcbiAgICBtYXBQb3B1cC5pbml0KG0pO1xyXG4gICAgcmV0dXJuIG07XHJcbn1cclxuXHJcblxyXG5ubS5xdWlja01hcCA9IHF1aWNrTWFwO1xyXG5leHBvcnQgZGVmYXVsdCBxdWlja01hcDtcclxuIl19 /***/ }), /* 8 */ @@ -711,7 +711,7 @@ var LayerBase = (function () { exports.LayerBase = LayerBase; nm.LayerBase = LayerBase; exports.default = LayerBase; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMEVBQTRFO0FBQzVFLDJDQUFzQztBQUV0Qyw2Q0FBd0M7QUFDeEMsMEJBQTZCO0FBRTdCLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFtQjdCOzs7R0FHRztBQUNIO0lBMEJJOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsbUJBQVksR0FBVyxFQUFFLE9BQThCO1FBQTlCLHdCQUFBLEVBQUEsWUFBOEI7UUFDbkQsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFzQixDQUFDO1FBRTVDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxhQUFhLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBR2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxPQUFPLENBQUMsTUFBTSxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUN2RSxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sT0FBTyxDQUFDLGNBQWMsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDbkcsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxjQUFjLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBRWxHLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxrQkFBUSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLGVBQWUsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sT0FBTyxDQUFDLE9BQU8sSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFFekUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTLEdBQUcsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFOUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7UUFFekI7OztXQUdHO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFFckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUUsRUFBRSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsY0FBYyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGNBQWMsSUFBSSxPQUFPLENBQUM7UUFDbkMsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlFLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxPQUFPLENBQUMsT0FBTyxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUNqRixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sT0FBTyxDQUFDLE9BQU8sSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7UUFDakYsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLE9BQU8sQ0FBQyxNQUFNLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRXRFLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxPQUFPLENBQUMsWUFBWSxJQUFJLFVBQVUsR0FBRyxPQUFPLENBQUMsWUFBWSxHQUFHO1FBQ3ZGLENBQUMsQ0FBQztRQUdGLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXpCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLElBQUksK0JBQTBCLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxHQUFHLEVBQUUsT0FBRztpQkFDN0UsaUNBQTRCLElBQUksQ0FBQyxFQUFFLHdDQUFvQyxDQUFBLENBQUM7WUFDNUUsSUFBSSxDQUFDLGNBQWMsSUFBSSxrQkFBZSxJQUFJLENBQUMsRUFBRSwwREFBa0QsSUFBSSxDQUFDLElBQUksYUFBVSxDQUFDO1FBQ3ZILENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxjQUFjLElBQUksd0NBQW9DLElBQUksQ0FBQyxJQUFJLGFBQVUsQ0FBQztRQUNuRixDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxPQUFPLENBQUMsYUFBYSxLQUFLLFFBQVEsR0FBRyxPQUFPLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBQzFHLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gseUJBQUssR0FBTDtRQUNJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBRXBCLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDakIsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxnQ0FBWSxHQUFaO1FBQ0ksTUFBTSxDQUFDLDBDQUFxQyxJQUFJLENBQUMsRUFBRSw0QkFBc0IsSUFBSSxDQUFDLGNBQWMsV0FBUSxDQUFDO0lBQ3pHLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gscUNBQWlCLEdBQWpCLFVBQWtCLGlCQUFvQjtRQUFwQixrQ0FBQSxFQUFBLHNCQUFvQjtRQUVsQyxJQUFJLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFekQsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNkLGlCQUFpQixHQUFHLDRFQUE0RSxHQUFHLGlCQUFpQixDQUFDO1FBQ3pILENBQUM7UUFFRCxJQUFJLENBQUMsY0FBYyxJQUFJLGlCQUFpQixDQUFDO1FBRXpDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLE1BQUksSUFBSSxDQUFDLEVBQUUsc0JBQW1CLENBQUMsQ0FBQztRQUVyRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsb0NBQWdCLEdBQWhCLFVBQWlCLGlCQUFpQjtRQUM5QixJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsaUNBQWEsR0FBYjtRQUNJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7WUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1lBRXhDLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDckIsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLE1BQUksSUFBSSxDQUFDLEVBQUUsc0JBQW1CLENBQUMsQ0FBQztRQUVyRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTlCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFFaEUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO2dCQUVqQyxTQUFTLENBQUMsS0FBSyxDQUFDO29CQUNaLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFFcEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFFbkMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDakQsS0FBSyxDQUFDLFdBQVcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO3dCQUNsRCxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUMxQixDQUFDO29CQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNKLEtBQUssQ0FBQyxRQUFRLENBQUMsOEJBQThCLENBQUMsQ0FBQzt3QkFDL0MsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDMUIsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFFSCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztvQkFDdkIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDL0IsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsMkJBQU8sR0FBUDtRQUNJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0wsQ0FBQztJQUVELHNCQUFJLHlCQUFFO2FBQU47WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNwQixDQUFDO2FBRUQsVUFBTyxLQUFhO1lBQ2hCLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLENBQUM7OztPQUpBO0lBTUQsc0JBQUksOEJBQU87YUFBWDtZQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3pCLENBQUM7YUFFRCxVQUFZLE9BQWdCO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQzVCLENBQUM7OztPQUpBO0lBVUQsc0JBQUksb0NBQWE7UUFKakI7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMvQixDQUFDO1FBRUQ7Ozs7V0FJRzthQUNILFVBQWtCLE1BQU07WUFDcEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7UUFDakMsQ0FBQzs7O09BVEE7SUFlRCxzQkFBSSw2QkFBTTtRQUpWOzs7V0FHRzthQUNIO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDeEIsQ0FBQztRQUVEOzs7O1dBSUc7YUFDSCxVQUFXLFNBQVM7WUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7UUFDN0IsQ0FBQzs7O09BVEE7SUFlRCxzQkFBSSxvQ0FBYTtRQUpqQjs7O1dBR0c7YUFDSDtZQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQy9CLENBQUM7OztPQUFBO0lBTUQsc0JBQUksb0NBQWE7UUFKakI7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMvQixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDhCQUFPO1FBSlg7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN6QixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDhCQUFPO1FBSlg7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN6QixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDBCQUFHO1FBSlA7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyQixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDhCQUFPO1FBSlg7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN6QixDQUFDO1FBRUQ7OztXQUdHO2FBQ0gsVUFBWSxVQUFtQjtZQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7OztPQVJBO0lBVVMsOEJBQVUsR0FBcEIsVUFBcUIsVUFBbUI7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDM0IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkMsRUFBRSxDQUFDLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFPRCxzQkFBSSw4QkFBTztRQUpYOzs7V0FHRzthQUNIO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDekIsQ0FBQztRQUVEOzs7V0FHRzthQUNILFVBQVksT0FBTztZQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1lBQ3hCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxDQUFDO1FBQ0wsQ0FBQzs7O09BWEE7SUFpQkQsc0JBQUksMkJBQUk7UUFKUjs7O1dBR0c7YUFDSDtZQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RCLENBQUM7UUFFRDs7O1dBR0c7YUFDSCxVQUFTLE9BQU87WUFDWixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztRQUN6QixDQUFDOzs7T0FSQTtJQWNELHNCQUFJLDZCQUFNO1FBSlY7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN4QixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDZCQUFNO1FBSlY7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzVCLENBQUM7OztPQUFBO0lBR1MsNkJBQVMsR0FBbkI7UUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBS0Qsc0JBQUksNkJBQU07UUFIVjs7V0FFRzthQUNIO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDeEIsQ0FBQztRQUVEOztXQUVHO2FBQ0gsVUFBVyxJQUFZO1lBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUM7OztPQVBBO0lBU1MsNkJBQVMsR0FBbkIsVUFBb0IsSUFBWTtJQUVoQyxDQUFDO0lBS0Qsc0JBQUksOEJBQU87UUFIWDs7V0FFRzthQUNIO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM3QixDQUFDOzs7T0FBQTtJQUVTLDhCQUFVLEdBQXBCO1FBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUNMLGdCQUFDO0FBQUQsQ0FBQyxBQXhaRCxJQXdaQztBQXhacUIsOEJBQVM7QUEwWi9CLEVBQUUsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0FBQ3pCLGtCQUFlLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHpvb21SZXNvbHV0aW9uQ29udmVydCBmcm9tICcuLi9vbEhlbHBlcnMvem9vbVJlc29sdXRpb25Db252ZXJ0JztcclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCBtYWtlR3VpZCBmcm9tICcuLi91dGlsL21ha2VHdWlkJztcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckJhc2VPcHRpb25ze1xyXG4gICAgaWQ/OiBzdHJpbmc7XHJcbiAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgb3BhY2l0eT86IG51bWJlcjtcclxuICAgIHZpc2libGU/OiBib29sZWFuO1xyXG4gICAgbWluWm9vbT86IG51bWJlcjtcclxuICAgIG1heFpvb20/OiBudW1iZXI7XHJcbiAgICBwYXJhbXM/OiBhbnk7XHJcbiAgICB6SW5kZXg/OiBudW1iZXI7XHJcbiAgICBsb2FkQ2FsbGJhY2s/OiBGdW5jdGlvbjtcclxuICAgIGxlZ2VuZENvbGxhcHNlPzogYm9vbGVhbjtcclxuICAgIGxlZ2VuZENoZWNrYm94PzogYm9vbGVhbjtcclxuICAgIGxlZ2VuZENvbnRlbnQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGhlIGJhc2UgbGF5ZXIgY2xhc3NcclxuICogQGFic3RyYWN0XHJcbiAqL1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGF5ZXJCYXNlIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgX2xlZ2VuZENoZWNrYm94OiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF91cmw6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBfb3BhY2l0eTogbnVtYmVyO1xyXG4gICAgcHJvdGVjdGVkIF9taW5ab29tOiBudW1iZXI7XHJcbiAgICBwcm90ZWN0ZWQgX21heFpvb206IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCBfdmlzaWJsZTogYm9vbGVhbjtcclxuICAgIHByb3RlY3RlZCBfbG9hZGVkOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF96SW5kZXg6IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCBfbGVnZW5kQ29udGVudDogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIF9wYXJhbXM6IGFueTtcclxuICAgIHByb3RlY3RlZCBfaWQ6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBfbmFtZTogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIF9zb3VyY2U6IG9sLnNvdXJjZS5Tb3VyY2U7XHJcbiAgICBwcm90ZWN0ZWQgX2FuaW1hdGU6IGJvb2xlYW47XHJcbiAgICBwcm90ZWN0ZWQgX2xlZ2VuZENvbGxhcHNlOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF9tYXhSZXNvbHV0aW9uOiBudW1iZXI7XHJcbiAgICBwcm90ZWN0ZWQgX21pblJlc29sdXRpb246IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCAgXyRsZWdlbmREaXY6IEpRdWVyeTtcclxuICAgIGxvYWRDYWxsYmFjazogRnVuY3Rpb247XHJcbiAgICBwcm90ZWN0ZWQgX29sTGF5ZXI6IG9sLmxheWVyLkxheWVyO1xyXG4gICAgcHJvdGVjdGVkIF9hcHBseUNvbGxhcHNlQ2FsbGVkOiBib29sZWFuO1xyXG5cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYmFzZSBsYXllciBmb3IgYWxsIG90aGVyc1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIHVybCBmb3Igc291cmNlXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmlkPW1ha2VHdWlkKCldIC0gbGF5ZXIgaWRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5uYW1lPVVubmFtZWQgTGF5ZXJdIC0gbGF5ZXIgbmFtZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm9wYWNpdHk9MV0gLSBvcGFjaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnZpc2libGU9dHJ1ZV0gLSBkZWZhdWx0IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5ab29tPXVuZGVmaW5lZF0gLSBtaW4gem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIC0gbWF4IHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnBhcmFtcz17fV0gLSB0aGUgZ2V0IHBhcmFtZXRlcnMgdG8gaW5jbHVkZSB0byByZXRyaWV2ZSB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56SW5kZXg9MF0gLSB0aGUgeiBpbmRleCBmb3IgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy5sb2FkQ2FsbGJhY2tdIC0gZnVuY3Rpb24gdG8gY2FsbCBvbiBsb2FkLCBjb250ZXh0IHRoaXMgaXMgdGhlIGxheWVyIG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb2xsYXBzZT1mYWxzZV0gLSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGJlIGluaXRpYWxseSBjb2xsYXBzZWRcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ2hlY2tib3g9dHJ1ZV0gLSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGhhdmUgYSBjaGVja2JveCBmb3IgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb250ZW50PXVuZGVmaW5lZF0gLSBhZGRpdGlvbmFsIGNvbnRlbnQgdG8gYWRkIHRvIHRoZSBsZWdlbmRcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IodXJsOiBzdHJpbmcsIG9wdGlvbnM6IExheWVyQmFzZU9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9IGFzIExheWVyQmFzZU9wdGlvbnM7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdXJsICE9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB0aHJvdyAnSW52YWxpZCBVUkwnO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl91cmwgPSB1cmw7XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9wYXJhbXMgPSB0eXBlb2Ygb3B0aW9ucy5wYXJhbXMgPT0gJ29iamVjdCcgPyBvcHRpb25zLnBhcmFtcyA6IHt9O1xyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbGxhcHNlID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kQ29sbGFwc2UgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5sZWdlbmRDb2xsYXBzZSA6IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENoZWNrYm94ID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kQ2hlY2tib3ggPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5sZWdlbmRDaGVja2JveCA6IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuaWQgPSBvcHRpb25zLmlkIHx8IG1ha2VHdWlkKCk7XHJcbiAgICAgICAgdGhpcy5fbmFtZSA9IG9wdGlvbnMubmFtZSB8fCAnVW5uYW1lZCBMYXllcic7XHJcbiAgICAgICAgdGhpcy5hbmltYXRlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IHR5cGVvZiBvcHRpb25zLm9wYWNpdHkgPT0gJ251bWJlcicgPyBvcHRpb25zLm9wYWNpdHkgOiAxO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fb3BhY2l0eSA+IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5fb3BhY2l0eSA9IDE7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9vcGFjaXR5IDwgMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9vcGFjaXR5ID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB0eXBlb2Ygb3B0aW9ucy52aXNpYmxlID09PSAnYm9vbGVhbicgPyBvcHRpb25zLnZpc2libGUgOiB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLl9zb3VyY2UgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByb3RlY3RlZFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuX21heFJlc29sdXRpb24gPSB6b29tUmVzb2x1dGlvbkNvbnZlcnQuem9vbVRvUmVzb2x1dGlvbihvcHRpb25zLm1pblpvb20pO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5fbWF4UmVzb2x1dGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5fbWF4UmVzb2x1dGlvbiArPSAwLjAwMDAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9taW5SZXNvbHV0aW9uID0gem9vbVJlc29sdXRpb25Db252ZXJ0Lnpvb21Ub1Jlc29sdXRpb24ob3B0aW9ucy5tYXhab29tKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWluWm9vbSA9IHR5cGVvZiBvcHRpb25zLm1pblpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLm1pblpvb20gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbWF4Wm9vbSA9IHR5cGVvZiBvcHRpb25zLm1heFpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLm1heFpvb20gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fekluZGV4ID0gdHlwZW9mIG9wdGlvbnMuekluZGV4ID09ICdudW1iZXInID8gb3B0aW9ucy56SW5kZXggOiAwO1xyXG5cclxuICAgICAgICB0aGlzLmxvYWRDYWxsYmFjayA9IHR5cGVvZiBvcHRpb25zLmxvYWRDYWxsYmFjayA9PSAnZnVuY3Rpb24nID8gb3B0aW9ucy5sb2FkQ2FsbGJhY2sgOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgfTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgPSAnJztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2xlZ2VuZENoZWNrYm94KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgKz0gYDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiAke3RoaXMudmlzaWJsZSA/ICdjaGVja2VkJyA6ICcnfSBgICtcclxuICAgICAgICAgICAgICAgIGBjbGFzcz1cImxlZ2VuZC1jaGVja1wiIGlkPVwiJHt0aGlzLmlkfS1sZWdlbmQtbGF5ZXItY2hlY2tcIj48c3Bhbj48L3NwYW4+YDtcclxuICAgICAgICAgICAgdGhpcy5fbGVnZW5kQ29udGVudCArPSBgPGxhYmVsIGZvcj1cIiR7dGhpcy5pZH0tbGVnZW5kLWxheWVyLWNoZWNrXCIgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbmFtZVwiPiR7dGhpcy5uYW1lfTwvbGFiZWw+YDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9sZWdlbmRDb250ZW50ICs9IGA8bGFiZWwgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbmFtZVwiPiR7dGhpcy5uYW1lfTwvbGFiZWw+YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuXyRsZWdlbmREaXYgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2FwcGx5Q29sbGFwc2VDYWxsZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9hZGRMZWdlbmRDb250ZW50KHR5cGVvZiBvcHRpb25zLmxlZ2VuZENvbnRlbnQgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5sZWdlbmRDb250ZW50IDogdW5kZWZpbmVkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGJhc2UgbG9hZCBmdW5jdGlvbiwgc2V0cyBfbG9hZGVkID0gdHJ1ZSBpZiBpdCBpcyBub3QgYWxyZWFkeVxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IGlmIGFscmVhZHkgbG9hZGVkXHJcbiAgICAgKi9cclxuICAgIF9sb2FkKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmxvYWRlZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHRoZSBsZWdlbmQgaHRtbCwgYmUgc3VyZSB0byBvbmx5IGFkZCB0byB0aGUgRE9NIG9uY2VcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IGh0bWwgZm9yIGxheWVyIHdyYXBwZWQgaW4gYSBkaXZcclxuICAgICAqL1xyXG4gICAgZ2V0TGVnZW5kRGl2KCkge1xyXG4gICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImxlZ2VuZC1sYXllci1kaXZcIiBpZD1cIiR7dGhpcy5pZH0tbGVnZW5kLWxheWVyLWRpdlwiPiR7dGhpcy5fbGVnZW5kQ29udGVudH08L2Rpdj5gO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBhZGRpdGlvbmFsQ29udGVudCAtIGFkZGl0aW9uYWwgY29udGVudCB0byBhZGQgdG8gbGVnZW5kXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBfYWRkTGVnZW5kQ29udGVudChhZGRpdGlvbmFsQ29udGVudD0nJykge1xyXG5cclxuICAgICAgICBsZXQgYWRkQ29sbGFwc2UgPSBhZGRpdGlvbmFsQ29udGVudC5pbmRleE9mKCc8dWw+JykgPiAtMTtcclxuXHJcbiAgICAgICAgaWYgKGFkZENvbGxhcHNlKSB7XHJcbiAgICAgICAgICAgIGFkZGl0aW9uYWxDb250ZW50ID0gJzxzcGFuIGNsYXNzPVwibGVnZW5kLWl0ZW1zLWV4cGFuZGVyXCIgdGl0bGU9XCJFeHBhbmQvQ29sbGFwc2VcIj4mIzk2NjA7PC9zcGFuPicgKyBhZGRpdGlvbmFsQ29udGVudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgKz0gYWRkaXRpb25hbENvbnRlbnQ7XHJcblxyXG4gICAgICAgIHRoaXMuXyRsZWdlbmREaXYgPSAkKGAjJHt0aGlzLmlkfS1sZWdlbmQtbGF5ZXItZGl2YCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl8kbGVnZW5kRGl2Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5fJGxlZ2VuZERpdi5hcHBlbmQoYWRkaXRpb25hbENvbnRlbnQpO1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5Q29sbGFwc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhZGQgYWRkaXRpb25hbCBjb250ZW50IHRvIHRoZSBsZWdlbmRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbYWRkaXRpb25hbENvbnRlbnQ9XSAtIGFkZGl0b25hbCBjb250ZW50IHRvIGFkZFxyXG4gICAgICovXHJcbiAgICBhZGRMZWdlbmRDb250ZW50KGFkZGl0aW9uYWxDb250ZW50KSB7XHJcbiAgICAgICAgdGhpcy5fYWRkTGVnZW5kQ29udGVudChhZGRpdGlvbmFsQ29udGVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXBwbHlDb2xsYXBzZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5fYXBwbHlDb2xsYXBzZUNhbGxlZCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY29sbGFwc2UgYWxyZWFkeSBhcHBsaWVkJyk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fJGxlZ2VuZERpdiA9ICQoYCMke3RoaXMuaWR9LWxlZ2VuZC1sYXllci1kaXZgKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuXyRsZWdlbmREaXYubGVuZ3RoID4gMCkge1xyXG5cclxuICAgICAgICAgICAgbGV0ICRleHBhbmRlciA9IHRoaXMuXyRsZWdlbmREaXYuZmluZCgnLmxlZ2VuZC1pdGVtcy1leHBhbmRlcicpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCRleHBhbmRlci5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hcHBseUNvbGxhcHNlQ2FsbGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAkZXhwYW5kZXIuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCAkdGhpcyA9ICQodGhpcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICR0aGlzLnNpYmxpbmdzKCd1bCcpLnNsaWRlVG9nZ2xlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy5oYXNDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLnJlbW92ZUNsYXNzKCdsZWdlbmQtbGF5ZXItZ3JvdXAtY29sbGFwc2VkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLmh0bWwoJyYjOTY2MDsnKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5hZGRDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5odG1sKCcmIzk2NTQ7Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2xlZ2VuZENvbGxhcHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJGV4cGFuZGVyLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmljayB0byByZWZyZXNoIHRoZSBsYXllclxyXG4gICAgICovXHJcbiAgICByZWZyZXNoKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNvdXJjZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNvdXJjZS5yZWZyZXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBpZCgpOiBzdHJpbmd7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lkO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBpZChuZXdJZDogc3RyaW5nKXtcclxuICAgICAgICB0aGlzLl9pZCA9IG5ld0lkO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhbmltYXRlKCk6IGJvb2xlYW57XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FuaW1hdGU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGFuaW1hdGUoYW5pbWF0ZTogYm9vbGVhbil7XHJcbiAgICAgICAgdGhpcy5fYW5pbWF0ZSA9IGFuaW1hdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIGxlZ2VuZCBjb250ZW50XHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICovXHJcbiAgICBnZXQgbGVnZW5kQ29udGVudCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbGVnZW5kQ29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgbGVnZW5kIGNvbnRlbnQgZGlyZWN0bHlcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuZXdWYWwgLSBuZXcgY29udGVudFxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICovXHJcbiAgICBzZXQgbGVnZW5kQ29udGVudChuZXdWYWwpIHtcclxuICAgICAgICB0aGlzLl9sZWdlbmRDb250ZW50ID0gbmV3VmFsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtYXAgZ2V0IHBhcmFtc1xyXG4gICAgICogQHR5cGUge29iamVjdH1cclxuICAgICAqL1xyXG4gICAgZ2V0IHBhcmFtcygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IHRoZSBtYXAgZ2V0IHBhcmFtc1xyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IG5ld1BhcmFtcyAtIG5ldyBnZXQgcGFyYW1zXHJcbiAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgKi9cclxuICAgIHNldCBwYXJhbXMobmV3UGFyYW1zKSB7XHJcbiAgICAgICAgdGhpcy5fcGFyYW1zID0gbmV3UGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtaW5pbXVtIHJlc29sdXRpb25cclxuICAgICAqIEB0eXBlIHtudW1iZXJ8Kn1cclxuICAgICAqL1xyXG4gICAgZ2V0IG1pblJlc29sdXRpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pblJlc29sdXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIG1heGltdW0gcmVzb2x1dGlvblxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWF4UmVzb2x1dGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4UmVzb2x1dGlvbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCBtaW4gem9vbVxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWluWm9vbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWluWm9vbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCBtYXggem9vbVxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWF4Wm9vbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4Wm9vbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgdXJsXHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICovXHJcbiAgICBnZXQgdXJsKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91cmw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGxheWVyIHZpc2liaWxpdHlcclxuICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHZpc2liaWxpdHlcclxuICAgICAqL1xyXG4gICAgc2V0IHZpc2libGUodmlzaWJpbGl0eTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuc2V0VmlzaWJsZSh2aXNpYmlsaXR5KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0VmlzaWJsZSh2aXNpYmlsaXR5OiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZpc2liaWxpdHk7XHJcbiAgICAgICAgaWYgKHRoaXMub2xMYXllcikge1xyXG4gICAgICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0VmlzaWJsZSh0aGlzLl92aXNpYmxlKTtcclxuICAgICAgICAgICAgaWYgKHZpc2liaWxpdHkgJiYgIXRoaXMuX2xvYWRlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCB0aGUgbGF5ZXIgb3BhY2l0eVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqL1xyXG4gICAgZ2V0IG9wYWNpdHkoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wYWNpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIGxheWVyIG9wYWNpdHlcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvcGFjaXR5IC0gbGF5ZXIgb3BhY2l0eVxyXG4gICAgICovXHJcbiAgICBzZXQgb3BhY2l0eShvcGFjaXR5KSB7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IG9wYWNpdHk7XHJcbiAgICAgICAgaWYgKHRoaXMub2xMYXllcikge1xyXG4gICAgICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0T3BhY2l0eSh0aGlzLl9vcGFjaXR5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGxheWVyIG5hbWVcclxuICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgKi9cclxuICAgIGdldCBuYW1lKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9uYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IHRoZSBsYXllciBuYW1lXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3TmFtZSAtIHRoZSBuZXcgbmFtZVxyXG4gICAgICovXHJcbiAgICBzZXQgbmFtZShuZXdOYW1lKSB7XHJcbiAgICAgICAgdGhpcy5fbmFtZSA9IG5ld05hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGUgbGF5ZXIgaXMgbG9hZGVkXHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqL1xyXG4gICAgZ2V0IGxvYWRlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBsYXllciBzb3VyY2VcclxuICAgICAqIEB0eXBlIHsqfVxyXG4gICAgICovXHJcbiAgICBnZXQgc291cmNlKCk6IG9sLnNvdXJjZS5Tb3VyY2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNvdXJjZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0U291cmNlKCk6IG9sLnNvdXJjZS5Tb3VyY2V7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgeiBpbmRleFxyXG4gICAgICovXHJcbiAgICBnZXQgekluZGV4KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3pJbmRleDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgeiBpbmRleFxyXG4gICAgICovXHJcbiAgICBzZXQgekluZGV4KG5ld1o6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX3pJbmRleCA9IG5ld1o7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHNldFpJbmRleChuZXdaOiBudW1iZXIpe1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHRoZSB0aGUgb2wgbGF5ZXJcclxuICAgICAqL1xyXG4gICAgZ2V0IG9sTGF5ZXIoKTogb2wubGF5ZXIuTGF5ZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE9sTGF5ZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0T2xMYXllcigpOiBvbC5sYXllci5MYXllcntcclxuICAgICAgICByZXR1cm4gdGhpcy5fb2xMYXllcjtcclxuICAgIH1cclxufVxyXG5cclxubm0uTGF5ZXJCYXNlID0gTGF5ZXJCYXNlO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckJhc2U7XHJcbiJdfQ== /***/ }), /* 9 */ @@ -744,7 +744,7 @@ function definedAndNotNull(input) { } exports.definedAndNotNull = definedAndNotNull; nm.definedAndNotNull = definedAndNotNull; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tEZWZpbmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2hlY2tEZWZpbmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscUNBQWdDO0FBQ2hDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUV0Qzs7OztHQUlHO0FBQ0gseUJBQWlDLEtBQUs7SUFDbEMsWUFBWSxDQUFDO0lBRWIsTUFBTSxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBSkQsMENBSUM7QUFFRCxFQUFFLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztBQUdyQzs7OztHQUlHO0FBQ0gsMkJBQW1DLEtBQVU7SUFDekMsWUFBWSxDQUFDO0lBRWIsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBSkQsOENBSUM7QUFFRCxFQUFFLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcHJvdmlkZSBmcm9tICcuL3Byb3ZpZGUnO1xyXG5sZXQgbm0gPSBwcm92aWRlKCd1dGlsLmNoZWNrRGVmaW5lZCcpO1xyXG5cclxuLyoqXHJcbiAqIGNoZWNrIGlmIHRoZSBpbnB1dCBpcyB1bmRlZmluZWQgb3IgbnVsbFxyXG4gKiBAcGFyYW0gaW5wdXQgLSBpbnB1dCBwb2ludGVyXHJcbiAqIEByZXR1cm5zIHRydWUgdW5kZWZpbmVkIG9yIG51bGxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1bmRlZmluZWRPck51bGwgKGlucHV0KTogYm9vbGVhbntcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG5cclxuICAgIHJldHVybiAodHlwZW9mIGlucHV0ID09PSAndW5kZWZpbmVkJyB8fCBpbnB1dCA9PT0gbnVsbCk7XHJcbn1cclxuXHJcbm5tLnVuZGVmaW5lZE9yTnVsbCA9IHVuZGVmaW5lZE9yTnVsbDtcclxuXHJcblxyXG4vKipcclxuICogY2hlY2sgaWYgdGhlIGlucHV0IGlzIGRlZmluZWQgYW5kIG5vdCBudWxsXHJcbiAqIEBwYXJhbSBpbnB1dCAtIGlucHV0IHBvaW50ZXJcclxuICogQHJldHVybnMgdHJ1ZSBkZWZpbmVkIGFuZCBub3QgbnVsbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZWRBbmROb3ROdWxsIChpbnB1dDogYW55KTogYm9vbGVhbntcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG5cclxuICAgIHJldHVybiAhKHVuZGVmaW5lZE9yTnVsbChpbnB1dCkpO1xyXG59XHJcblxyXG5ubS5kZWZpbmVkQW5kTm90TnVsbCA9IGRlZmluZWRBbmROb3ROdWxsO1xyXG5cclxuIl19 /***/ }), /* 10 */ @@ -903,7 +903,7 @@ var LayerEsriMapServer = (function (_super) { exports.LayerEsriMapServer = LayerEsriMapServer; nm.LayerEsriMapServer = LayerEsriMapServer; exports.default = LayerEsriMapServer; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJFc3JpTWFwU2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJFc3JpTWFwU2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gseUNBQXdEO0FBQ3hELHFEQUF1RDtBQUN2RCxrREFBNkM7QUFDN0MsMkNBQXNDO0FBQ3RDLDhCQUFpQztBQUNqQywwQkFBNkI7QUFFN0IsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQVE3Qjs7O0dBR0c7QUFDSDtJQUF3QyxzQ0FBUztJQUk3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Ba0JHO0lBQ0gsNEJBQVksR0FBRyxFQUFFLE9BQXVDO1FBQXZDLHdCQUFBLEVBQUEsWUFBdUM7UUFBeEQsWUFFSSxrQkFBTSxHQUFHLEVBQUUsT0FBTyxDQUFDLFNBNEJ0QjtRQTNCRyxLQUFJLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3ZDO1lBQ0ksR0FBRyxFQUFFLEtBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLFNBQVMsR0FBRyxLQUFJLENBQUMsR0FBRztZQUMxQyxNQUFNLEVBQUUsT0FBTyxPQUFPLENBQUMsVUFBVSxJQUFJLFdBQVcsR0FBRyxTQUFTLEdBQUcsRUFBQyxNQUFNLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFDO1NBQ2xILENBQ0osQ0FBQztRQUVGLEtBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM5QixNQUFNLEVBQUUsS0FBSSxDQUFDLE9BQXlCO1lBQ3RDLE9BQU8sRUFBRSxLQUFJLENBQUMsT0FBTztZQUNyQixPQUFPLEVBQUUsS0FBSSxDQUFDLE9BQU87WUFDckIsYUFBYSxFQUFFLEtBQUksQ0FBQyxjQUFjO1lBQ2xDLGFBQWEsRUFBRSxL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QUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMi83LzIwMTUuXHJcbiAqL1xyXG5pbXBvcnQge0xheWVyQmFzZSwgTGF5ZXJCYXNlT3B0aW9uc30gZnJvbSAnLi9MYXllckJhc2UnO1xyXG5pbXBvcnQgKiBhcyBlc3JpVG9PbCBmcm9tICcuLi9vbEhlbHBlcnMvZXNyaVRvT2xTdHlsZSc7XHJcbmltcG9ydCBtYXBQb3B1cCBmcm9tICcuLi9vbEhlbHBlcnMvbWFwUG9wdXAnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgb2wgPSByZXF1aXJlKCdjdXN0b20tb2wnKTtcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckVzcmlNYXBTZXJ2ZXJPcHRpb25zIGV4dGVuZHMgTGF5ZXJCYXNlT3B0aW9ucyB7XHJcbiAgICBhZGRQb3B1cD86IGJvb2xlYW47XHJcbiAgICBzaG93TGF5ZXJzPzogQXJyYXk8bnVtYmVyPjtcclxufVxyXG5cclxuLyoqXHJcbiAqIGVzcmkgbWFwc2VydmVyIGxheWVyXHJcbiAqIEBhdWdtZW50cyBMYXllckJhc2VcclxuICovXHJcbmV4cG9ydCBjbGFzcyBMYXllckVzcmlNYXBTZXJ2ZXIgZXh0ZW5kcyBMYXllckJhc2Uge1xyXG4gICAgX2VzcmlGb3JtYXQ6IG9sLmZvcm1hdC5Fc3JpSlNPTjtcclxuICAgIF9wb3B1cFJlcXVlc3Q6IEpRdWVyeVhIUjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBiYXNlIGxheWVyIGZvciBhbGwgb3RoZXJzXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gcmVzb3VyY2UgdXJsXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdIC0gY29uZmlnXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuaWRdIC0gbGF5ZXIgaWRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5uYW1lPVVubmFtZWQgTGF5ZXJdIC0gbGF5ZXIgbmFtZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm9wYWNpdHk9MV0gLSBvcGFjaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnZpc2libGU9dHJ1ZV0gLSBkZWZhdWx0IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5ab29tPXVuZGVmaW5lZF0gLSBtaW4gem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIC0gbWF4IHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnBhcmFtcz17fV0gdGhlIGdldCBwYXJhbWV0ZXJzIHRvIGluY2x1ZGUgdG8gcmV0cmlldmUgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuekluZGV4PTBdIHRoZSB6IGluZGV4IGZvciB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtvcHRpb25zLmxvYWRDYWxsYmFja10gZnVuY3Rpb24gdG8gY2FsbCBvbiBsb2FkLCBjb250ZXh0IHRoaXMgaXMgdGhlIGxheWVyIG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb2xsYXBzZT1mYWxzZV0gaWYgdGhlIGxlZ2VuZCBpdGVtIHNob3VsZCBiZSBpbml0aWFsbHkgY29sbGFwc2VkXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENoZWNrYm94PXRydWVdIGlmIHRoZSBsZWdlbmQgaXRlbSBzaG91bGQgaGF2ZSBhIGNoZWNrYm94IGZvciB2aXNpYmlsaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENvbnRlbnRdIGFkZGl0aW9uYWwgY29udGVudCB0byBhZGQgdG8gdGhlIGxlZ2VuZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5hZGRQb3B1cD1mYWxzZV0gaWYgYSBwb3B1cCBzaG91bGQgYmUgYWRkZWRcclxuICAgICAqIEBwYXJhbSB7dW5kZWZpbmVkfEFycmF5PG51bWJlcj59IFtvcHRpb25zLnNob3dMYXllcnM9dW5kZWZpbmVkXSBpZiBhIHBvcHVwIHNob3VsZCBiZSBhZGRlZFxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcih1cmwsIG9wdGlvbnM6IExheWVyRXNyaU1hcFNlcnZlck9wdGlvbnMgPSB7fSkge1xyXG5cclxuICAgICAgICBzdXBlcih1cmwsIG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuX3NvdXJjZSA9IG5ldyBvbC5zb3VyY2UuVGlsZUFyY0dJU1Jlc3QoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHVybDogdGhpcy51cmwgPT0gJycgPyB1bmRlZmluZWQgOiB0aGlzLnVybCxcclxuICAgICAgICAgICAgICAgIHBhcmFtczogdHlwZW9mIG9wdGlvbnMuc2hvd0xheWVycyA9PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IHtsYXllcnM6ICdzaG93OicgKyBvcHRpb25zLnNob3dMYXllcnMuam9pbignLCcpfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5fb2xMYXllciA9IG5ldyBvbC5sYXllci5UaWxlKHtcclxuICAgICAgICAgICAgc291cmNlOiB0aGlzLl9zb3VyY2UgYXMgb2wuc291cmNlLlRpbGUsXHJcbiAgICAgICAgICAgIHZpc2libGU6IHRoaXMudmlzaWJsZSxcclxuICAgICAgICAgICAgb3BhY2l0eTogdGhpcy5vcGFjaXR5LFxyXG4gICAgICAgICAgICBtaW5SZXNvbHV0aW9uOiB0aGlzLl9taW5SZXNvbHV0aW9uLFxyXG4gICAgICAgICAgICBtYXhSZXNvbHV0aW9uOiB0aGlzLl9tYXhSZXNvbHV0aW9uXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIuc2V0WkluZGV4KHRoaXMuX3pJbmRleCk7XHJcblxyXG4gICAgICAgIG9wdGlvbnMuYWRkUG9wdXAgPSB0eXBlb2Ygb3B0aW9ucy5hZGRQb3B1cCA9PSAnYm9vbGVhbicgPyBvcHRpb25zLmFkZFBvcHVwIDogZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuX2VzcmlGb3JtYXQgPSBuZXcgb2wuZm9ybWF0LkVzcmlKU09OKCk7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBSZXF1ZXN0ID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5hZGRMZWdlbmRDb250ZW50KCk7XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmFkZFBvcHVwKSB7XHJcbiAgICAgICAgICAgIG1hcFBvcHVwLmFkZE1hcFNlcnZpY2VQb3B1cCh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhZGQgYWRkaXRpb25hbCBjb250ZW50IHRvIHRoZSBsZWdlbmRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbYWRkaXRpb25hbENvbnRlbnQ9JyddIGFkZGl0aW9uYWwgY29udGVudCBmb3IgbGVnZW5kXHJcbiAgICAgKi9cclxuICAgIGFkZExlZ2VuZENvbnRlbnQoYWRkaXRpb25hbENvbnRlbnQ/OiBzdHJpbmcpIHtcclxuICAgICAgICBsZXQgdXJsQ29weSA9IHRoaXMudXJsO1xyXG5cclxuICAgICAgICBpZiAodXJsQ29weVt1cmxDb3B5Lmxlbmd0aCAtIDFdICE9PSAnLycpIHtcclxuICAgICAgICAgICAgdXJsQ29weSArPSAnLyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1cmxDb3B5ICs9ICdsZWdlbmQ/Zj1wanNvbiZjYWxsYmFjaz0/JztcclxuXHJcbiAgICAgICAgJC5nZXQodXJsQ29weSwge30sIChkKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBuZXdIdG1sID0gZXNyaVRvT2wubWFrZU1hcFNlcnZpY2VMZWdlbmQoZCk7XHJcbiAgICAgICAgICAgIHN1cGVyLmFkZExlZ2VuZENvbnRlbnQobmV3SHRtbCk7XHJcbiAgICAgICAgfSwgJ2pzb24nKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgZ2V0UG9wdXBJbmZvKHF1ZXJ5UGFyYW1zKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHVybENvcHkgPSB0aGlzLnVybDtcclxuXHJcbiAgICAgICAgaWYgKHVybENvcHlbdXJsQ29weS5sZW5ndGggLSAxXSAhPSAnLycpIHtcclxuICAgICAgICAgICAgdXJsQ29weSArPSAnLyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1cmxDb3B5ICs9ICdpZGVudGlmeT9jYWxsYmFjaz0/JztcclxuXHJcbiAgICAgICAgbGV0IF9fdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9wb3B1cFJlcXVlc3QgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cFJlcXVlc3QuYWJvcnQoKTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9wb3B1cFJlcXVlc3QgPSAkLmdldCh1cmxDb3B5LCBxdWVyeVBhcmFtcywgZnVuY3Rpb24gKGQpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgciBvZiBkWydyZXN1bHRzJ10pIHtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgcG9wdXBIdG1sID0gJzx0YWJsZSBjbGFzcz1cImVzcmktcG9wdXAtdGFibGVcIj4nO1xyXG5cclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGEgaW4gclsnYXR0cmlidXRlcyddKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJbJ2F0dHJpYnV0ZXMnXS5oYXNPd25Qcm9wZXJ0eShhKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXR0clZhbCA9IHJbJ2F0dHJpYnV0ZXMnXVthXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdHRyVmFsID09IG51bGwgfHwgYXR0clZhbC50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT0gJ251bGwnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGF0dHIgPSBhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ci5sZW5ndGggPiAxNCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ciA9IGF0dHIuc2xpY2UoMCwgMTEpICsgJy4uLic7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcHVwSHRtbCArPSBgPHRyPjx0ZD4ke2F0dHJ9PC90ZD48dGQ+JHthdHRyVmFsfTwvdGQ+PC90cj5gO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzwvdGFibGU+JztcclxuXHJcbiAgICAgICAgICAgICAgICBtYXBQb3B1cC5hZGRNYXBTZXJ2aWNlUG9wdXBDb250ZW50KF9fdGhpcy5fZXNyaUZvcm1hdC5yZWFkRmVhdHVyZShyKSwgX190aGlzLCBwb3B1cEh0bWwsIHJbJ2xheWVyTmFtZSddKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sICdqc29uJyk7XHJcblxyXG4gICAgICAgIHRoaXMuX3BvcHVwUmVxdWVzdC5hbHdheXMoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBfX3RoaXMuX3BvcHVwUmVxdWVzdCA9IG51bGw7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtvbC5zb3VyY2UuVGlsZUFyY0dJU1Jlc3R9IHRoZSB2ZWN0b3Igc291cmNlXHJcbiAgICAgKi9cclxuICAgIGdldCBzb3VyY2UoKTogb2wuc291cmNlLlRpbGVBcmNHSVNSZXN0IHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0U291cmNlKCkgYXMgb2wuc291cmNlLlRpbGVBcmNHSVNSZXN0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHRoZSBvbCBsYXllclxyXG4gICAgICovXHJcbiAgICBnZXQgb2xMYXllcigpOiBvbC5sYXllci5UaWxlIHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0T2xMYXllcigpIGFzIG9sLmxheWVyLlRpbGU7XHJcbiAgICB9XHJcbn1cclxubm0uTGF5ZXJFc3JpTWFwU2VydmVyID0gTGF5ZXJFc3JpTWFwU2VydmVyO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckVzcmlNYXBTZXJ2ZXI7XHJcbiJdfQ== /***/ }), /* 11 */ @@ -1148,7 +1148,7 @@ var MapMoveCls = (function (_super) { exports.MapMoveCls = MapMoveCls; nm.MapMoveCls = MapMoveCls; exports.default = MapMoveCls; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwTW92ZUNscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hcE1vdmVDbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EsMkRBQXNEO0FBQ3RELG1EQUFxRDtBQUNyRCwyQ0FBc0M7QUFDdEMsNkNBQXdDO0FBRXhDLDBCQUE2QjtBQUM3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBcUJoQzs7O0dBR0c7QUFDSDtJQUFnQyw4QkFBa0I7SUFhOUM7O09BRUc7SUFDSDtRQUFBLFlBQ0ksa0JBQU0sVUFBVSxDQUFDLFNBZXBCO1FBZEcsS0FBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsS0FBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsS0FBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFFdkIsS0FBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixLQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLEtBQUksQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7UUFDakMsS0FBSSxDQUFDLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUNsQyxLQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBRWxDLEtBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLEtBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDOztJQUVoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gseUJBQUksR0FBSixVQUFLLE1BQWM7UUFBbkIsaUJBaUJDO1FBaEJHLGlCQUFNLElBQUksWUFBQyxNQUFNLENBQUMsQ0FBQztRQUVuQixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLFVBQUMs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Q0FBQztRQUNoRSxDQUFDO0lBQ0wsQ0FBQztJQUNMLGlCQUFDO0FBQUQsQ0FBQyxBQWxRRCxDQUFnQyw0QkFBa0IsR0FrUWpEO0FBbFFZLGdDQUFVO0FBb1F2QixFQUFFLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztBQUMzQixrQkFBZSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGF5ZXJCYXNlVmVjdG9yIGZyb20gXCIuLi9sYXllcnMvTGF5ZXJCYXNlVmVjdG9yXCI7XHJcbmltcG9ydCBNYXBJbnRlcmFjdGlvbkJhc2UgZnJvbSAnLi9tYXBJbnRlcmFjdGlvbkJhc2UnO1xyXG5pbXBvcnQgKiBhcyBjaGVja0RlZmluZWQgZnJvbSAnLi4vdXRpbC9jaGVja0RlZmluZWQnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFrZUd1aWQgZnJvbSAnLi4vdXRpbC9tYWtlR3VpZCc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycycpO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgZXh0ZW50T2JqZWN0e1xyXG4gICAgbWluWDogbnVtYmVyO1xyXG4gICAgbWluWTogbnVtYmVyO1xyXG4gICAgbWF4WDogbnVtYmVyO1xyXG4gICAgbWF4WTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIG1hcE1vdmVDYWxsYmFja0Z1bmN0aW9ue1xyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGV4dGVudCBleHRlbnQgYXMgcHJlZGVmaW5lZCBvYmplY3QgbWluWCwgbWluWCwgbWF4WCwgbWF4WVxyXG4gICAgICogQHBhcmFtIHpvb21MZXZlbCBjdXJyZW50IHpvb20gbGV2ZWxcclxuICAgICAqIEBwYXJhbSBldnRUeXBlIHRoZSBldmVudCB0eXBlICdjaGFuZ2U6Y2VudGVyJywgJ2NoYW5nZTpyZXNvbHV0aW9uJ1xyXG4gICAgICovXHJcbiAgICAoZXh0ZW50OiBleHRlbnRPYmplY3QsIHpvb21MZXZlbDogbnVtYmVyLCBldnRUeXBlPzogc3RyaW5nKTogYW55XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogYXNzaXN0cyB3aXRoIG1hcCBtb3ZlIGludGVyYWN0aW9ucywgdHJpZ2dlciBjYWxsYmFjayBmdW5jdGlvbnNcclxuICogQGF1Z21lbnRzIE1hcEludGVyYWN0aW9uQmFzZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIE1hcE1vdmVDbHMgZXh0ZW5kcyBNYXBJbnRlcmFjdGlvbkJhc2Uge1xyXG4gICAgX21hcEV4dGVudDogZXh0ZW50T2JqZWN0O1xyXG4gICAgX3pvb21MZXZlbDogbnVtYmVyO1xyXG4gICAgX2xvb2t1cExheWVyOiBPYmplY3Q7XHJcbiAgICBfYXJyTGF5ZXI6IEFycmF5PExheWVyQmFzZVZlY3Rvcj47XHJcbiAgICBfYXJyTHlyVGltZW91dDogQXJyYXk8bnVtYmVyPjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0OiBBcnJheTxudW1iZXI+O1xyXG4gICAgX21hcE1vdmVDYWxsYmFja0RlbGF5czogQXJyYXk8bnVtYmVyPjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tzTG9va3VwOiBPYmplY3Q7XHJcbiAgICBfbWFwTW92ZUNhbGxiYWNrQ29udGV4dDogQXJyYXk8T2JqZWN0PjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tzOiBBcnJheTxtYXBNb3ZlQ2FsbGJhY2tGdW5jdGlvbj47XHJcbiAgICBfYXJyTHlyUmVxdWVzdDogQXJyYXk8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGNvbnN0cnVjdG9yIGNhbGxlZCBpbXBsaWNpdGx5XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCdtYXAgbW92ZScpO1xyXG4gICAgICAgIHRoaXMuX2Fyckx5clJlcXVlc3QgPSBbXTtcclxuICAgICAgICB0aGlzLl9hcnJMeXJUaW1lb3V0ID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyTGF5ZXIgPSBbXTtcclxuICAgICAgICB0aGlzLl9sb29rdXBMYXllciA9IHt9O1xyXG5cclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzID0gW107XHJcbiAgICAgICAgdGhpcy5fbWFwTW92ZUNhbGxiYWNrc0xvb2t1cCA9IHt9O1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja0RlbGF5cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja0NvbnRleHQgPSBbXTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0ID0gW107XHJcblxyXG4gICAgICAgIHRoaXMuX21hcEV4dGVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl96b29tTGV2ZWwgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogaW5pdGlhbGl6ZSB0aGUgbWFwIG1vdmUgb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0gdGhlTWFwIC0gdGhlIG9sIG1hcFxyXG4gICAgICovXHJcbiAgICBpbml0KHRoZU1hcDogb2wuTWFwKXtcclxuICAgICAgICBzdXBlci5pbml0KHRoZU1hcCk7XHJcblxyXG4gICAgICAgIHRoaXMubWFwLmdldFZpZXcoKS5vbihbJ2NoYW5nZTpjZW50ZXInLCAnY2hhbmdlOnJlc29sdXRpb24nXSwgKGUpID0+e1xyXG5cclxuICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHRyaWdnZXIgdGhlIGxheWVyIHVwZGF0ZXNcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9hcnJMYXllci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyTHlyTG9hZCh0aGlzLl9hcnJMYXllcltpXSwgaSwgZS50eXBlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gdHJpZ2dlciB0aGUgbWFwIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX21hcE1vdmVDYWxsYmFja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlck1vdmVDYWxsYmFjayhpLCBlLnR5cGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgX3VwZGF0ZU1hcEV4dGVudCgpIHtcclxuICAgICAgICBsZXQgdGhlVmlldyA9IHRoaXMubWFwLmdldFZpZXcoKTtcclxuICAgICAgICB0aGlzLl96b29tTGV2ZWwgPSB0aGVWaWV3LmdldFpvb20oKTtcclxuXHJcbiAgICAgICAgbGV0IGV4dGVudEFycmF5ID0gdGhlVmlldy5jYWxjdWxhdGVFeHRlbnQodGhpcy5tYXAuZ2V0U2l6ZSgpKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWFwRXh0ZW50ID0ge1xyXG4gICAgICAgICAgICBtaW5YOiBleHRlbnRBcnJheVswXSxcclxuICAgICAgICAgICAgbWluWTogZXh0ZW50QXJyYXlbMV0sXHJcbiAgICAgICAgICAgIG1heFg6IGV4dGVudEFycmF5WzJdLFxyXG4gICAgICAgICAgICBtYXhZOiBleHRlbnRBcnJheVszXVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiByZXR1cm4gdGhlIG1hcCBleHRlbnRcclxuICAgICAqL1xyXG4gICAgZ2V0IG1hcEV4dGVudCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX21hcEV4dGVudCkge1xyXG4gICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXBFeHRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUcmlnZ2VyIHRoZSBsYXllciBsb2FkXHJcbiAgICAgKiBAcGFyYW0gbHlyIHRoZSBsYXllciBiZWluZyBhY3RlZCBvblxyXG4gICAgICogQHBhcmFtIGluZGV4IGluZGV4IG9mIHRoZSBsYXllclxyXG4gICAgICogQHBhcmFtIGV2ZW50VHlwZSB0aGUgZXZlbnQgdHJpZ2dlcmluZyB0aGUgbG9hZCwgYXMgJ2NoYW5nZTpjZW50ZXInIG9yICdjaGFuZ2U6cmVzb2x1dGlvbidcclxuICAgICAqL1xyXG4gICAgdHJpZ2dlckx5ckxvYWQobHlyOiBMYXllckJhc2VWZWN0b3IsIGluZGV4PzogbnVtYmVyLCBldmVudFR5cGU/OiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgaWYgKGNoZWNrRGVmaW5lZC51bmRlZmluZWRPck51bGwobHlyKSAmJiBjaGVja0RlZmluZWQudW5kZWZpbmVkT3JOdWxsKGluZGV4KSkge1xyXG4gICAgICAgICAgICB0aHJvdyAnbmVlZCB0byBkZWZpbmUgbHlyIG9yIGluZGV4JztcclxuICAgICAgICB9IGVsc2UgaWYgKGNoZWNrRGVmaW5lZC5kZWZpbmVkQW5kTm90TnVsbChseXIpICYmIGNoZWNrRGVmaW5lZC51bmRlZmluZWRPck51bGwoaW5kZXgpKSB7XHJcbiAgICAgICAgICAgIGluZGV4ID0gdGhpcy5fYXJyTGF5ZXIuaW5kZXhPZihseXIpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY2hlY2tEZWZpbmVkLnVuZGVmaW5lZE9yTnVsbChseXIpICYmIGNoZWNrRGVmaW5lZC5kZWZpbmVkQW5kTm90TnVsbChpbmRleCkpIHtcclxuICAgICAgICAgICAgbHlyID0gdGhpcy5fYXJyTGF5ZXJbaW5kZXhdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gY2xlYXIgdGhlIHRpbWVvdXRcclxuICAgICAgICBpZiAodGhpcy5fYXJyTHlyVGltZW91dFtpbmRleF0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fYXJyTHlyVGltZW91dFtpbmRleF0pO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJUaW1lb3V0W2luZGV4XSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBhYm9ydCBpZiBuZWNlc3NhcnkgYW5kIGNsZWFyIHRoZSByZXF1ZXN0XHJcbiAgICAgICAgaWYgKHRoaXMuX2Fyckx5clJlcXVlc3RbaW5kZXhdICE9IG51bGwgJiYgdGhpcy5fYXJyTHlyUmVxdWVzdFtpbmRleF0gIT0gNCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0W2luZGV4XS5hYm9ydCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0W2luZGV4XSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBkdW1teSBjYWxsYmFjayB1c2VkIGlmIGJlZm9yZSBsb2FkIHJldHVybnMgZmFsc2VcclxuICAgICAgICBsZXQgY2FsbGJhY2tGdW5jID0gZnVuY3Rpb24gKCkge307XHJcblxyXG4gICAgICAgIGlmIChseXIubWFwTW92ZUJlZm9yZSh0aGlzLl96b29tTGV2ZWwsIGV2ZW50VHlwZSkpIHtcclxuICAgICAgICAgICAgbHlyLm1hcE1vdmVNYWtlR2V0UGFyYW1zKHRoaXMuX21hcEV4dGVudCwgdGhpcy5fem9vbUxldmVsKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBfX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICAgICAgY2FsbGJhY2tGdW5jID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gaW5uZXJGdW5jdGlvbih0aGVMYXllciwgdGhlSW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgX2lubmVyVGhpcyA9IHRoaXM7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXJyTHlyUmVxdWVzdFt0aGVJbmRleF0gPSAkLmdldChcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlTGF5ZXIudXJsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5tYXBNb3ZlUGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBAdHlwZSB7TGF5ZXJCYXNlVmVjdG9yfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5tYXBNb3ZlQ2FsbGJhY2soZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5sb2FkQ2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgJ2pzb24nKS5mYWlsKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoanFYSFIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqcVhIUi5zdGF0dXNUZXh0ICE9ICdhYm9ydCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZmFpbGVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhlTGF5ZXIudXJsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGVMYXllci5tYXBNb3ZlUGFyYW1zKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSkuYWx3YXlzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5uZXJUaGlzLl9hcnJMeXJUaW1lb3V0W3RoZUluZGV4XSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5uZXJUaGlzLl9hcnJMeXJSZXF1ZXN0W3RoZUluZGV4XSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaW5uZXJGdW5jdGlvbi5jYWxsKF9fdGhpcywgbHlyLCBpbmRleCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbHlyLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2Fyckx5clRpbWVvdXRbaW5kZXhdID0gc2V0VGltZW91dChjYWxsYmFja0Z1bmMsIGx5ci5vbkRlbWFuZERlbGF5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyaWdnZXIgdGhlIG1hcCBtb3ZlIGNhbGwgYmFjayBhdCB0aGUgZ2l2ZW4gaW5kZXhcclxuICAgICAqIEBwYXJhbSBpbmQgLSB0aGUgaW5kZXggb2YgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gZXZlbnRUeXBlPXVuZGVmaW5lZCB0aGUgZXZlbnQgdHJpZ2dlcmluZyB0aGUgbG9hZCBhcyAnY2hhbmdlOmNlbnRlcicgb3IgJ2NoYW5nZTpyZXNvbHV0aW9uJ1xyXG4gICAgICogQHBhcmFtIGZ1bmN0aW9uSWQ9dW5kZWZpbmVkIHRoZSBmdW5jdGlvbiBpZCB1c2VkIHRvIHJlZmVyZW5jZSB0aGUgYWRkZWQgY2FsbGJhY2sgZnVuY3Rpb25cclxuICAgICAqL1xyXG4gICAgdHJpZ2dlck1vdmVDYWxsYmFjayhpbmQ6IG51bWJlciwgZXZlbnRUeXBlPzogc3RyaW5nLCBmdW5jdGlvbklkPzogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgaW5kID09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBmdW5jdGlvbklkID09ICd1bmRlZmluZWQnKXtcclxuICAgICAgICAgICAgdGhyb3cgJ2VpdGhlciB0aGUgZnVuY3Rpb24gaW5kZXggb3IgdGhlIGlkIG11c3QgYmUgZGVmaW5lZCc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIGluZCAhPT0gJ251bWJlcicpe1xyXG4gICAgICAgICAgICBpbmQgPSB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzLmluZGV4T2YodGhpcy5fbWFwTW92ZUNhbGxiYWNrc0xvb2t1cFtmdW5jdGlvbklkXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaW5kIDwgMCl7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdmdW5jdGlvbiBub3QgZm91bmQnKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGNsZWFyIHRoZSB0aW1lb3V0XHJcbiAgICAgICAgaWYgKHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXRbaW5kXSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0W2luZF0pO1xyXG4gICAgICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0W2luZF0gPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGN0eCA9IHRoaXMuX21hcE1vdmVDYWxsYmFja0NvbnRleHRbaW5kXTtcclxuICAgICAgICBsZXQgdGhlRnVuYyA9IHRoaXMuX21hcE1vdmVDYWxsYmFja3NbaW5kXTtcclxuXHJcbiAgICAgICAgbGV0IF9fdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIGxldCBmID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAoY3R4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGVGdW5jLmNhbGwoY3R4LCBfX3RoaXMuX21hcEV4dGVudCwgX190aGlzLl96b29tTGV2ZWwsIGV2ZW50VHlwZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGVGdW5jKF9fdGhpcy5fbWFwRXh0ZW50LCBfX3RoaXMuX3pvb21MZXZlbCwgZXZlbnRUeXBlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXRbaW5kXSA9IHNldFRpbWVvdXQoZiwgdGhpcy5fbWFwTW92ZUNhbGxiYWNrRGVsYXlzW2luZF0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIGEgbGF5ZXIgdG8gdGhlIGludGVyYWN0aW9uXHJcbiAgICAgKiBAcGFyYW0gIGx5ciAtIGxheWVyIHRvIGFkZFxyXG4gICAgICogQHBhcmFtIHRyaWdnZXJPbkFkZCAtIGlmIHRoZSBsYXllciBzaG91bGQgYmUgbG9hZGVkIG9uIGFkZFxyXG4gICAgICovXHJcbiAgICBhZGRWZWN0b3JMYXllcihseXI6IExheWVyQmFzZVZlY3RvciwgdHJpZ2dlck9uQWRkOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgICAgIGlmICh0aGlzLl9hcnJMYXllci5pbmRleE9mKGx5cikgPiAtMSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnYWxyZWFkeSBhZGRlZCAnICsgbHlyLm5hbWUgKyAnIHRvIG1hcCBtb3ZlJyk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2NoZWNrSW5pdCgpO1xyXG5cclxuICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0LnB1c2gobnVsbCk7XHJcbiAgICAgICAgdGhpcy5fYXJyTHlyVGltZW91dC5wdXNoKG51bGwpO1xyXG4gICAgICAgIHRoaXMuX2FyckxheWVyLnB1c2gobHlyKTtcclxuICAgICAgICB0aGlzLl9sb29rdXBMYXllcltseXIuaWRdID0gbHlyO1xyXG5cclxuICAgICAgICB0cmlnZ2VyT25BZGQgPSB0eXBlb2YgdHJpZ2dlck9uQWRkID09ICdib29sZWFuJyA/IHRyaWdnZXJPbkFkZCA6IHRydWU7XHJcblxyXG4gICAgICAgIGlmICh0cmlnZ2VyT25BZGQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX21hcEV4dGVudCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJMeXJMb2FkKGx5ciwgdGhpcy5fYXJyTGF5ZXIubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIGFkZCBhIGNhbGxiYWNrIHRvIHRoZSBtYXAgbW92ZSBldmVudFxyXG4gICAgICogQHBhcmFtIGZ1bmMgLSBjYWxsYmFjayBmdW5jdGlvblxyXG4gICAgICogQHBhcmFtIGNvbnRleHQgLSB0aGUgY29udGV4dCB0byB1c2UgZm9yIHRoaXMgZnVuY3Rpb25cclxuICAgICAqIEBwYXJhbSBkZWxheT01MCB0aGUgZGVsYXkgYmVmb3JlIGNhbGwgbG9hZFxyXG4gICAgICogQHBhcmFtIHRyaWdnZXJPbkFkZCBpZiB0aGUgbGF5ZXIgc2hvdWxkIGJlIGxvYWRlZCBvbiBhZGQgdG8gbWFwTW92ZVxyXG4gICAgICogQHBhcmFtIGZ1bmN0aW9uSWQgb3B0aW9uYWwgaWQgdG8gcmVmZXJlbmNlIHRoZSBmdW5jdGlvbiBsYXRlciBmb3Igb3V0c2lkZSB0cmlnZ2VyaW5nXHJcbiAgICAgKi9cclxuICAgIGFkZENhbGxiYWNrKGZ1bmM6IG1hcE1vdmVDYWxsYmFja0Z1bmN0aW9uLCBjb250ZXh0PzogYW55LCBkZWxheT86IG51bWJlciwgdHJpZ2dlck9uQWRkPyA6IGJvb2xlYW4sIGZ1bmN0aW9uSWQ/OiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX21hcE1vdmVDYWxsYmFja3MuaW5kZXhPZihmdW5jKSA+IC0xKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCd0aGlzIGZ1bmN0aW9uIGFscmVhZHkgYWRkZWQgdG8gbWFwIG1vdmUnKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICBpZiAoIWZ1bmN0aW9uSWQpe1xyXG4gICAgICAgICAgICBmdW5jdGlvbklkID0gbWFrZUd1aWQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja3MucHVzaChmdW5jKTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzTG9va3VwW2Z1bmN0aW9uSWRdID0gZnVuY3Rpb25JZDtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tEZWxheXMucHVzaCh0eXBlb2YgZGVsYXkgPT0gJ251bWJlcicgPyBkZWxheSA6IDUwKTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tDb250ZXh0LnB1c2goY2hlY2tEZWZpbmVkLmRlZmluZWRBbmROb3ROdWxsKGNvbnRleHQpID8gY29udGV4dCA6IG51bGwpO1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXQucHVzaChudWxsKTtcclxuXHJcbiAgICAgICAgdHJpZ2dlck9uQWRkID0gdHlwZW9mIHRyaWdnZXJPbkFkZCA9PSAnYm9vbGVhbicgPyB0cmlnZ2VyT25BZGQgOiB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodHJpZ2dlck9uQWRkKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9tYXBFeHRlbnQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTWFwRXh0ZW50KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy50cmlnZ2VyTW92ZUNhbGxiYWNrKHRoaXMuX21hcE1vdmVDYWxsYmFja3MubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5ubS5NYXBNb3ZlQ2xzID0gTWFwTW92ZUNscztcclxuZXhwb3J0IGRlZmF1bHQgTWFwTW92ZUNscztcclxuIl19 /***/ }), /* 12 */ @@ -1583,7 +1583,7 @@ var MapPopupCls = (function (_super) { exports.MapPopupCls = MapPopupCls; nm.MapPopupCls = MapPopupCls; exports.default = MapPopupCls; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwUG9wdXBDbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBQb3B1cENscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7Ozs7Ozs7Ozs7OztBQUVILDJEQUFzRDtBQUV0RCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBR2pDLDBCQUE2QjtBQUU3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBMEJoQztJQVNJOzs7Ozs7O09BT0c7SUFDSCxnQ0FBWSxPQUFtQixFQUFFLEtBQXlDLEVBQUUsVUFBa0IsRUFBRSxjQUErQixFQUFFLGFBQXNCO1FBQ25KLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxhQUFhLElBQUksUUFBUSxHQUFHLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDdEYsQ0FBQztJQUVELHNCQUFJLDZDQUFTO2FBQWI7WUFDSSxFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDOUIsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUMzQixDQUFDO1FBQ0wsQ0FBQzs7O09BQUE7SUFDTCw2QkFBQztBQUFELENBQUMsQUFqQ0QsSUFpQ0M7QUFqQ1ksd0RBQXNCO0FBbUNuQzs7O0dBR0c7QUFDSDtJQUFpQywrQkFBa0I7SUFxQi9DOzs7OztPQUtHO0lBR0g7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QWtCLEdBeWNsRDtBQXpjWSxrQ0FBVztBQTBjeEIsRUFBRSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDN0Isa0JBQWUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMy8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBNYXBJbnRlcmFjdGlvbkJhc2UgZnJvbSAnLi9tYXBJbnRlcmFjdGlvbkJhc2UnO1xyXG5pbXBvcnQgcHJvcGVydGllc1pvb21TdHlsZSBmcm9tICcuLi9vbEhlbHBlcnMvcHJvcGVydGllc1pvb21TdHlsZSc7XHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQge0xheWVyQmFzZVZlY3Rvcn0gZnJvbSBcIi4uL2xheWVycy9MYXllckJhc2VWZWN0b3JcIjtcclxuaW1wb3J0IExheWVyRXNyaU1hcFNlcnZlciBmcm9tIFwiLi4vbGF5ZXJzL0xheWVyRXNyaU1hcFNlcnZlclwiO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5cclxuY29uc3Qgbm0gPSBwcm92aWRlKCdvbEhlbHBlcnMnKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgcG9wdXBDaGFuZ2VkRnVuY3Rpb24ge1xyXG4gICAgKCRwb3BDb250ZW50OiBKUXVlcnkpOiBhbnk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBwb3B1cENhbGxiYWNrIHtcclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRoZSBwb3B1cFxyXG4gICAgICogQHBhcmFtIGZlYXR1cmVQcm9wZXJ0aWVzXHJcbiAgICAgKiBAcGFyYW0ganFSZWZcclxuICAgICAqL1xyXG4gICAgKGZlYXR1cmVQcm9wZXJ0aWVzOiBPYmplY3QsIGpxUmVmPzogSlF1ZXJ5KTogc3RyaW5nIHwgYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIG1hcEV2ZW50IHtcclxuICAgIGNvb3JkaW5hdGU6IG9sLkNvb3JkaW5hdGU7XHJcbiAgICBwaXhlbDogb2wuUGl4ZWw7XHJcbiAgICBkcmFnZ2luZzogYm9vbGVhbnxhbnk7XHJcbiAgICBvcmlnaW5hbEV2ZW50OiBFdmVudDtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlTGF5ZXJQcm9wZXJ0aWVzIHtcclxuXHJcbiAgICBmZWF0dXJlOiBvbC5GZWF0dXJlO1xyXG4gICAgbGF5ZXI6IExheWVyQmFzZVZlY3RvcnxMYXllckVzcmlNYXBTZXJ2ZXI7XHJcbiAgICBsYXllckluZGV4OiBudW1iZXI7XHJcbiAgICBzZWxlY3Rpb25MYXllcjogb2wubGF5ZXIuVmVjdG9yO1xyXG4gICAgcG9wdXBDb250ZW50OiBzdHJpbmc7XHJcbiAgICBlc3JpTGF5ZXJOYW1lOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGZlYXR1cmUgdGhlIGZlYXR1cmVcclxuICAgICAqIEBwYXJhbSBsYXllciAtIHRoZSBsYXllciBpbiB0aGUgcG9wdXBcclxuICAgICAqIEBwYXJhbSBsYXllckluZGV4IC0gaW5kZXggb2YgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gc2VsZWN0aW9uTGF5ZXIgLSB0aGUgb2wgc2VsZWN0aW9uIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gW2VzcmlMYXllck5hbWU9dW5kZWZpbmVkXSAtIGVzcmkgbGF5ZXIgbmFtZVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihmZWF0dXJlOiBvbC5GZWF0dXJlLCBsYXllcjogTGF5ZXJCYXNlVmVjdG9yfExheWVyRXNyaU1hcFNlcnZlciwgbGF5ZXJJbmRleDogbnVtYmVyLCBzZWxlY3Rpb25MYXllcjogb2wubGF5ZXIuVmVjdG9yLCBlc3JpTGF5ZXJOYW1lPzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5mZWF0dXJlID0gZmVhdHVyZTtcclxuICAgICAgICB0aGlzLmxheWVyID0gbGF5ZXI7XHJcbiAgICAgICAgdGhpcy5sYXllckluZGV4ID0gbGF5ZXJJbmRleDtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbkxheWVyID0gc2VsZWN0aW9uTGF5ZXI7XHJcbiAgICAgICAgdGhpcy5wb3B1cENvbnRlbnQgPSAnJztcclxuICAgICAgICB0aGlzLmVzcmlMYXllck5hbWUgPSB0eXBlb2YgZXNyaUxheWVyTmFtZSA9PSAnc3RyaW5nJyA/IGVzcmlMYXllck5hbWUgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGxheWVyTmFtZSgpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXNyaUxheWVyTmFtZSA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lc3JpTGF5ZXJOYW1lO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxheWVyLm5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogbWFwIHBvcHVwIGNsYXNzXHJcbiAqIEBhdWdtZW50cyBNYXBJbnRlcmFjdGlvbkJhc2VcclxuICovXHJcbmV4cG9ydCBjbGFzcyBNYXBQb3B1cENscyBleHRlbmRzIE1hcEludGVyYWN0aW9uQmFzZSB7XHJcbiAgICBwcml2YXRlIF9wb3B1cE9wZW46IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIF9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5OiBBcnJheTxGZWF0dXJlTGF5ZXJQcm9wZXJ0aWVzPjtcclxuICAgIHByaXZhdGUgX2N1cnJlbnRQb3B1cEluZGV4OiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9wb3B1cENvbnRlbnRMZW5ndGg6IG51bWJlcjtcclxuICAgIHByaXZhdGUgX2VzcmlNYXBTZXJ2aWNlTGF5ZXJzOiBBcnJheTxMYXllckVzcmlNYXBTZXJ2ZXI+O1xyXG4gICAgcHJpdmF0ZSBfJHBvcHVwQ2xvc2VyOiBKUXVlcnk7XHJcbiAgICBwcml2YXRlIF8kcG9wdXBDb250ZW50OiBKUXVlcnk7XHJcbiAgICBwcml2YXRlIF8kcG9wdXBDb250YWluZXI6IEpRdWVyeTtcclxuICAgIHByaXZhdGUgX3BvcHVwT3ZlcmxheTogb2wuT3ZlcmxheTtcclxuICAgIHByaXZhdGUgX2FyclBvcHVwTGF5ZXJzOiBBcnJheTxMYXllckJhc2VWZWN0b3I+O1xyXG4gICAgcHJpdmF0ZSBfcG9wdXBDb29yZGluYXRlOiBvbC5Db29yZGluYXRlO1xyXG4gICAgcHJpdmF0ZSBfcG9wdXBDaGFuZ2VkRnVuY3Rpb25zOiBBcnJheTxwb3B1cENoYW5nZWRGdW5jdGlvbj47XHJcbiAgICBwcml2YXRlIF9tYXBDbGlja0Z1bmN0aW9uczogQXJyYXk8RnVuY3Rpb24+O1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uTGF5ZXJMb29rdXA6IE9iamVjdDtcclxuICAgIHByaXZhdGUgX2FyclBvcHVwTGF5ZXJJZHM6IEFycmF5PHN0cmluZz47XHJcbiAgICBwcml2YXRlIF9hcnJQb3B1cExheWVyTmFtZXM6IEFycmF5PHN0cmluZz47XHJcbiAgICBwcml2YXRlIF9hcnJQb3B1cE9sTGF5ZXJzOiBBcnJheTxvbC5sYXllci5WZWN0b3I+O1xyXG4gICAgcHJpdmF0ZSBfYXJyUG9wdXBDb250ZW50RnVuY3Rpb246IEFycmF5PHBvcHVwQ2FsbGJhY2s+O1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uTGF5ZXJzOiBBcnJheTxvbC5sYXllci5WZWN0b3I+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5pdGlvbiBmb3Igb3BlbmxheWVycyBzdHlsZSBmdW5jdGlvblxyXG4gICAgICogQGNhbGxiYWNrIG9sU3R5bGVGdW5jdGlvblxyXG4gICAgICogJnBhcmFtIGZlYXR1cmUgdGhlIG9wZW5sYXllcnMgdmVjdG9yIGZlYXR1cmVcclxuICAgICAqICRwYXJhbVxyXG4gICAgICovXHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIHBvcHVwIGNvbnN0cnVjdG9yXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCdtYXAgcG9wdXAnKTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cExheWVySWRzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcnMgPSBbXTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb24gPSBbXTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250YWluZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ29udGVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDbG9zZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVycyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVyTG9va3VwID0ge307XHJcbiAgICAgICAgdGhpcy5fbWFwQ2xpY2tGdW5jdGlvbnMgPSBbXTtcclxuXHJcbiAgICAgICAgLy9sZXQgYSA9IGZ1bmN0aW9uKCRqcXVlcnlDb250ZW50KXtjb25zb2xlLmxvZygkanF1ZXJ5Q29udGVudCl9O1xyXG4gICAgICAgIC8vdGhpcy5fcG9wdXBDaGFuZ2VkTG9va3VwID0geydhJzogYX07XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDaGFuZ2VkRnVuY3Rpb25zID0gW107XHJcbiAgICAgICAgdGhpcy5fZXNyaU1hcFNlcnZpY2VMYXllcnMgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5fcG9wdXBPcGVuID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDb29yZGluYXRlID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5fcGFzc1Rocm91Z2hMYXllckZlYXR1cmVBcnJheSA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IC0xO1xyXG4gICAgICAgIHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCA9IDA7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIHBvcHVwIGluaXRpYWxpemF0aW9uXHJcbiAgICAgKiBAcGFyYW0ge29sLk1hcH0gdGhlTWFwIC0gdGhlIG9sIG1hcFxyXG4gICAgICovXHJcbiAgICBpbml0KHRoZU1hcDogb2wuTWFwKSB7XHJcbiAgICAgICAgc3VwZXIuaW5pdCh0aGVNYXApO1xyXG5cclxuICAgICAgICBsZXQgJG1hcDtcclxuICAgICAgICBsZXQgdGFyZ2V0ID0gdGhpcy5tYXAuZ2V0VGFyZ2V0KCk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgICRtYXAgPSAkKCcjJyArIHRhcmdldCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAkbWFwID0gJCh0YXJnZXQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJG1hcC5hcHBlbmQoXHJcbiAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwib2wtcG9wdXBcIj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwib2wtcG9wdXAtY2xvc2VyXCI+WDwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+PC9kaXY+JyArXHJcbiAgICAgICAgICAgICc8L2Rpdj4nXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ29udGFpbmVyID0gJG1hcC5maW5kKCcub2wtcG9wdXAnKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250ZW50ID0gJG1hcC5maW5kKCcucG9wdXAtY29udGVudCcpO1xyXG4gICAgICAgIHRoaXMuXyRwb3B1cENsb3NlciA9ICRtYXAuZmluZCgnLm9sLXBvcHVwLWNsb3NlcicpO1xyXG5cclxuICAgICAgICBsZXQgX2Vhc2UgPSAobjogbnVtYmVyKTogbnVtYmVyID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG9sLmVhc2luZy5pbkFuZE91dChuKTtcclxuICAgICAgICB9O1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5ID0gbmV3IG9sLk92ZXJsYXkoe1xyXG4gICAgICAgICAgICBlbGVtZW50OiB0aGlzLl8kcG9wdXBDb250YWluZXJbMF0sXHJcbiAgICAgICAgICAgIGF1dG9QYW46IHRydWUsXHJcbiAgICAgICAgICAgIGF1dG9QYW5BbmltYXRpb246IHtcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyNTAsXHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IHRoZU1hcC5nZXRWaWV3KCkuZ2V0Q2VudGVyKCksXHJcbiAgICAgICAgICAgICAgICBlYXNpbmc6IF9lYXNlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWFwLmFkZE92ZXJsYXkodGhpcy5fcG9wdXBPdmVybGF5KTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ2xvc2VyLmNsaWNrKChldnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIGRpc3BsYXkgcG9wdXAgb24gY2xpY2tcclxuICAgICAgICB0aGlzLl9tYXAub24oJ3NpbmdsZWNsaWNrJywgKGV2dCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwQ29vcmRpbmF0ZSA9IGV2dFsnY29vcmRpbmF0ZSddO1xyXG5cclxuICAgICAgICAgICAgLy8gZXNyaSBtYXAgc2VydmljZSBsYXllcnNcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2VzcmlNYXBTZXJ2aWNlTGF5ZXJzLmxlbmd0aCA+IDApIHtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgcXVlcnlQYXJhbXMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZ2VvbWV0cnk6IGV2dFsnY29vcmRpbmF0ZSddLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgICAgICBnZW9tZXRyeVR5cGU6ICdlc3JpR2VvbWV0cnlQb2ludCcsXHJcbiAgICAgICAgICAgICAgICAgICAgbGF5ZXJzOiAnYWxsJyxcclxuICAgICAgICAgICAgICAgICAgICBzcjogdGhpcy5fbWFwLmdldFZpZXcoKS5nZXRQcm9qZWN0aW9uKCkuZ2V0Q29kZSgpLnNwbGl0KCc6JylbMV0sXHJcbiAgICAgICAgICAgICAgICAgICAgbWFwRXh0ZW50OiAodGhpcy5fbWFwLmdldFZpZXcoKS5jYWxjdWxhdGVFeHRlbnQodGhpcy5fbWFwLmdldFNpemUoKSkgYXMgbnVtYmVyW10pLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZURpc3BsYXk6ICh0aGlzLl9tYXAuZ2V0U2l6ZSgpIGFzIG51bWJlcltdKS5qb2luKCcsJykgKyAnLDk2JyxcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm5HZW9tZXRyeTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICB0b2xlcmFuY2U6IDE1LFxyXG4gICAgICAgICAgICAgICAgICAgIGY6ICdwanNvbidcclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgbCBvZiB0aGlzLl9lc3JpTWFwU2VydmljZUxheWVycykge1xyXG4gICAgICAgICAgICAgICAgICAgIGwuZ2V0UG9wdXBJbmZvKHF1ZXJ5UGFyYW1zKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IGxheWVyRmVhdHVyZU9iamVjdEFycmF5ID0gdGhpcy5fZmVhdHVyZXNBdFBpeGVsKGV2dFsncGl4ZWwnXSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID0gLTE7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxheWVyRmVhdHVyZU9iamVjdEFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZmVhdE9iaiA9IGxheWVyRmVhdHVyZU9iamVjdEFycmF5W2ldO1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCBwcm9wcyA9IGZlYXRPYmouZmVhdHVyZS5nZXRQcm9wZXJ0aWVzKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHBvcHVwQ29udGVudFJlc3BvbnNlID0gdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb25bZmVhdE9iai5sYXllckluZGV4XShwcm9wcywgdGhpcy5fJHBvcHVwQ29udGVudCk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy9za2lwIGlmIHJldHVybiB3YXMgZmFsc2VcclxuICAgICAgICAgICAgICAgIGlmIChwb3B1cENvbnRlbnRSZXNwb25zZSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL2NvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcG9wdXBDb250ZW50UmVzcG9uc2UgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICBmZWF0T2JqLnBvcHVwQ29udGVudCA9IHBvcHVwQ29udGVudFJlc3BvbnNlIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5LnB1c2goZmVhdE9iaik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGZlYXRPYmouc2VsZWN0aW9uTGF5ZXIuZ2V0U291cmNlKCkuYWRkRmVhdHVyZShmZWF0T2JqLmZlYXR1cmUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cENvbnRlbnRMZW5ndGggPSB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID0gLTE7XHJcblxyXG4gICAgICAgICAgICBsZXQgcG9wdXBIdG1sID0gJzxkaXYgY2xhc3M9XCJvbC1wb3B1cC1uYXZcIj4nO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzxzcGFuIGNsYXNzPVwicHJldmlvdXMtcG9wdXAgb2wtcG9wdXAtbmF2LWFycm93XCI+JiM5NjY0Ozwvc3Bhbj4nO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzxzcGFuIGNsYXNzPVwibmV4dC1wb3B1cCBvbC1wb3B1cC1uYXYtYXJyb3dcIj4mIzk2NTQ7PC9zcGFuPic7XHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSBgPHNwYW4gY2xhc3M9XCJjdXJyZW50LXBvcHVwLWl0ZW0tbnVtYmVyXCIgc3R5bGU9XCJmb250LXdlaWdodDogYm9sZDtcIj48L3NwYW4+YDtcclxuICAgICAgICAgICAgcG9wdXBIdG1sICs9IGA8c3Bhbj4mbmJzcDtvZiZuYnNwOzwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gYDxzcGFuIGNsYXNzPVwicG9wdXAtY29udGVudC1sZW5ndGhcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkO1wiPiR7dGhpcy5fcG9wdXBDb250ZW50TGVuZ3RofTwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gYDxzcGFuPiZuYnNwOyZuYnNwOy0mbmJzcDsmbmJzcDs8L3NwYW4+YDtcclxuICAgICAgICAgICAgcG9wdXBIdG1sICs9IGA8c3BhbiBjbGFzcz1cImN1cnJlbnQtcG9wdXAtbGF5ZXItbmFtZVwiPjwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzwvZGl2Pic7XHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSAnPGRpdiBjbGFzcz1cIm9sLXBvcHVwLWlubmVyXCI+JztcclxuXHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSAnPC9kaXY+JztcclxuXHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuaHRtbChwb3B1cEh0bWwpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fJHBvcHVwQ29udGVudC5maW5kKCcucHJldmlvdXMtcG9wdXAnKS5jbGljaygoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4LS07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyRmVhdFNlbGVjdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGxldCBuZXh0UG9wdXAgPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5uZXh0LXBvcHVwJyk7XHJcblxyXG4gICAgICAgICAgICBuZXh0UG9wdXAuY2xpY2soKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCA9PSAxICYmIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID09IHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IDA7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyRmVhdFNlbGVjdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgbmV4dFBvcHVwLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9wb3B1cE92ZXJsYXkuc2V0UG9zaXRpb24odGhpcy5fcG9wdXBDb29yZGluYXRlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuc2Nyb2xsVG9wKDApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcG9wdXBPcGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvL2NoYW5nZSBtb3VzZSBjdXJzb3Igd2hlbiBvdmVyIG1hcmtlclxyXG4gICAgICAgIHRoaXMuX21hcC5vbigncG9pbnRlcm1vdmUnLCAoZXZ0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChldnRbJ2RyYWdnaW5nJ10pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgcGl4ZWwgPSB0aGlzLm1hcC5nZXRFdmVudFBpeGVsKGV2dFsnb3JpZ2luYWxFdmVudCddKTtcclxuICAgICAgICAgICAgbGV0IGhpdCA9IHRoaXMubWFwLmhhc0ZlYXR1cmVBdFBpeGVsKHBpeGVsLCAobHlyQ2FuZGlkYXRlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBvbExheWVyIG9mIHRoaXMuX2FyclBvcHVwT2xMYXllcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobHlyQ2FuZGlkYXRlID09IG9sTGF5ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGxldCBtYXBFbGVtZW50ID0gdGhpcy5tYXAuZ2V0VGFyZ2V0RWxlbWVudCgpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICBtYXBFbGVtZW50LnN0eWxlLmN1cnNvciA9IGhpdCA/ICdwb2ludGVyJyA6ICcnO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGhlbHBlciB0byBzZWxlY3QgZmVhdHVyZXNcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIF90cmlnZ2VyRmVhdFNlbGVjdCgpIHtcclxuICAgICAgICBsZXQgJGN1cnJlbnRQb3B1cEl0ZW1OdW1iZXIgPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5jdXJyZW50LXBvcHVwLWl0ZW0tbnVtYmVyJyk7XHJcbiAgICAgICAgbGV0ICRpbm5lclBvcHVwID0gdGhpcy5fJHBvcHVwQ29udGVudC5maW5kKCcub2wtcG9wdXAtaW5uZXInKTtcclxuICAgICAgICBsZXQgJGxheWVyTmFtZVNwYW4gPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5jdXJyZW50LXBvcHVwLWxheWVyLW5hbWUnKTtcclxuICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICAgICAgbGV0IGx5ckZlYXRPYmogPSB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5W3RoaXMuX2N1cnJlbnRQb3B1cEluZGV4XTtcclxuICAgICAgICAkY3VycmVudFBvcHVwSXRlbU51bWJlci5odG1sKCh0aGlzLl9jdXJyZW50UG9wdXBJbmRleCArIDEpLnRvRml4ZWQoKSk7XHJcbiAgICAgICAgJGxheWVyTmFtZVNwYW4uaHRtbChseXJGZWF0T2JqLmxheWVyTmFtZSk7XHJcbiAgICAgICAgJGlubmVyUG9wdXAuaHRtbChseXJGZWF0T2JqLnBvcHVwQ29udGVudCk7XHJcbiAgICAgICAgbHlyRmVhdE9iai5zZWxlY3Rpb25MYXllci5nZXRTb3VyY2UoKS5hZGRGZWF0dXJlKGx5ckZlYXRPYmouZmVhdHVyZSk7XHJcbiAgICAgICAgZm9yIChsZXQgZiBvZiB0aGlzLl9wb3B1cENoYW5nZWRGdW5jdGlvbnMpIHtcclxuICAgICAgICAgICAgZih0aGlzLl8kcG9wdXBDb250ZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBmZWF0dXJlIC0gdGhlIG9sIGZlYXR1cmVcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJFc3JpTWFwU2VydmVyfSBseXIgLSB0aGUgbWFwIHNlcnZlciBsYXllclxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHBvcHVwQ29udGVudCAtIHBvcHVwIGNvbnRlbnRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBlc3JpTmFtZSAtIGVzcmkgbGF5ZXIgbmFtZVxyXG4gICAgICovXHJcbiAgICBhZGRNYXBTZXJ2aWNlUG9wdXBDb250ZW50KGZlYXR1cmU6IG9sLkZlYXR1cmUsIGx5cjogTGF5ZXJFc3JpTWFwU2VydmVyLCBwb3B1cENvbnRlbnQ6IHN0cmluZywgZXNyaU5hbWU6IHN0cmluZykge1xyXG5cclxuICAgICAgICBsZXQgZmVhdExheWVyT2JqZWN0ID0gbmV3IEZlYXR1cmVMYXllclByb3BlcnRpZXMoXHJcbiAgICAgICAgICAgIGZlYXR1cmUsIGx5ciwgdGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoLCB0aGlzLl9zZWxlY3Rpb25MYXllckxvb2t1cFtseXIuaWRdLCBlc3JpTmFtZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgZmVhdExheWVyT2JqZWN0LnBvcHVwQ29udGVudCA9IHBvcHVwQ29udGVudDtcclxuXHJcbiAgICAgICAgdGhpcy5fcGFzc1Rocm91Z2hMYXllckZlYXR1cmVBcnJheS5wdXNoKGZlYXRMYXllck9iamVjdCk7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoKys7XHJcblxyXG4gICAgICAgICQoJy5wb3B1cC1jb250ZW50LWxlbmd0aCcpLmh0bWwodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoLnRvRml4ZWQoKSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fcG9wdXBPcGVuKSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuZmluZCgnLm5leHQtcG9wdXAnKS50cmlnZ2VyKCdjbGljaycpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5LnNldFBvc2l0aW9uKHRoaXMuX3BvcHVwQ29vcmRpbmF0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuc2Nyb2xsVG9wKDApO1xyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cE9wZW4gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gIHBpeGVsIC0gdGhlIG9sIHBpeGVsXHJcbiAgICAgKiBAcmV0dXJucyAgZmVhdHVyZSBsYXllciBwcm9wZXJ0aWVzXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBfZmVhdHVyZXNBdFBpeGVsKHBpeGVsOiBvbC5QaXhlbCk6IEFycmF5PEZlYXR1cmVMYXllclByb3BlcnRpZXM+IHtcclxuICAgICAgICBsZXQgbGF5ZXJGZWF0dXJlT2JqZWN0QXJyYXkgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5tYXAuZm9yRWFjaEZlYXR1cmVBdFBpeGVsKHBpeGVsLCAoZmVhdHVyZTogb2wuRmVhdHVyZSwgbGF5ZXI6IG9sLmxheWVyLlZlY3RvcikgPT4ge1xyXG4gICAgICAgICAgICBsZXQgbHlySW5kZXggPSB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzLmluZGV4T2YobGF5ZXIpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGx5ckluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIGxheWVyRmVhdHVyZU9iamVjdEFycmF5LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAgbmV3IEZlYXR1cmVMYXllclByb3BlcnRpZXMoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZlYXR1cmUsIHRoaXMuX2FyclBvcHVwTGF5ZXJzW2x5ckluZGV4XSwgbHlySW5kZXgsIHRoaXMuX3NlbGVjdGlvbkxheWVyc1tseXJJbmRleF0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gbGF5ZXJGZWF0dXJlT2JqZWN0QXJyYXk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VQb3B1cCgpIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICB0aGlzLl9wb3B1cE9wZW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9wb3B1cE92ZXJsYXkuc2V0UG9zaXRpb24odW5kZWZpbmVkKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDbG9zZXJbMF0uYmx1cigpO1xyXG4gICAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24oKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250ZW50Lmh0bWwoJycpO1xyXG5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY2hnRnVuY3Rpb24gLSBwb3B1cCBjaGFuZ2UgZnVuY3Rpb25cclxuICAgICAqL1xyXG4gICAgYWRkUG9wdXBDaGFuZ2VkRnVuY3Rpb24oY2hnRnVuY3Rpb246IHBvcHVwQ2hhbmdlZEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDaGFuZ2VkRnVuY3Rpb25zLnB1c2goY2hnRnVuY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJCYXNlfCp9IGx5ciAtIHRoZSBsYXllciBiZWluZyBhY3RlZCBvblxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtzZWxlY3Rpb25TdHlsZT17fV0gdGhlIHNlbGVjdGlvbiBzdHlsZSBjb25maWd1cmF0aW9uXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3NlbGVjdGlvblN0eWxlLmNvbG9yPXJnYmEoMjU1LDE3MCwwLDAuNSldIHRoZSBzZWxlY3Rpb24gY29sb3JcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc2VsZWN0aW9uU3R5bGUud2lkdGg9MTBdIHRoZSBzZWxlY3Rpb24gd2lkdGggZm9yIGxpbmVhciBmZWF0dXJlc1xyXG4gICAgICogQHBhcmFtIHtvYmplY3R8ZnVuY3Rpb259IFtzZWxlY3Rpb25TdHlsZS5vbFN0eWxlPXVuZGVmaW5lZF0gYW4gb3BlbmxheWVycyBzdHlsZSBvYmplY3Qgb3IgZnVuY3Rpb25cclxuICAgICAqIEByZXR1cm5zICB0aGUgbmV3IHNlbGVjdGlvbiBsYXllclxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgX2FkZFBvcHVwTGF5ZXIobHlyOiBMYXllckJhc2VWZWN0b3IsIHNlbGVjdGlvblN0eWxlOiB7Y29sb3I/OiBzdHJpbmcsIHdpZHRoPzogbnVtYmVyLCBvbFN0eWxlPzogb2wuc3R5bGUuU3R5bGV9KTogb2wubGF5ZXIuVmVjdG9yIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuXHJcbiAgICAgICAgc2VsZWN0aW9uU3R5bGUgPSBzZWxlY3Rpb25TdHlsZSB8fCB7fTtcclxuICAgICAgICBzZWxlY3Rpb25TdHlsZS5jb2xvciA9IHNlbGVjdGlvblN0eWxlLmNvbG9yIHx8ICdyZ2JhKDI1NSwxNzAsMCwwLjUpJztcclxuICAgICAgICBzZWxlY3Rpb25TdHlsZS53aWR0aCA9IHNlbGVjdGlvblN0eWxlLndpZHRoIHx8IDEwO1xyXG5cclxuICAgICAgICBsZXQgdGhlU3R5bGU7XHJcblxyXG4gICAgICAgIGlmIChzZWxlY3Rpb25TdHlsZS5vbFN0eWxlKSB7XHJcbiAgICAgICAgICAgIHRoZVN0eWxlID0gc2VsZWN0aW9uU3R5bGUub2xTdHlsZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGVTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICBzdHJva2U6IG5ldyBvbC5zdHlsZS5TdHJva2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzZWxlY3Rpb25TdHlsZS5jb2xvcixcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogc2VsZWN0aW9uU3R5bGUud2lkdGhcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5DaXJjbGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHJhZGl1czogNyxcclxuICAgICAgICAgICAgICAgICAgICBmaWxsOiBuZXcgb2wuc3R5bGUuRmlsbCh7Y29sb3I6IHNlbGVjdGlvblN0eWxlLmNvbG9yfSksXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiBuZXcgb2wuc3R5bGUuU3Ryb2tlKHtjb2xvcjogc2VsZWN0aW9uU3R5bGUuY29sb3IsIHdpZHRoOiAxfSlcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgZmlsbDogbmV3IG9sLnN0eWxlLkZpbGwoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzZWxlY3Rpb25TdHlsZS5jb2xvclxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgc2VsZWN0aW9uTGF5ZXIgPSBuZXcgb2wubGF5ZXIuVmVjdG9yKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IG5ldyBvbC5zb3VyY2UuVmVjdG9yKCksXHJcbiAgICAgICAgICAgICAgICBzdHlsZTogdGhlU3R5bGVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHNlbGVjdGlvbkxheWVyLnNldFpJbmRleCgxMDApO1xyXG5cclxuICAgICAgICB0aGlzLl9zZWxlY3Rpb25MYXllcnMucHVzaChzZWxlY3Rpb25MYXllcik7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uTGF5ZXJMb29rdXBbbHlyLmlkXSA9IHNlbGVjdGlvbkxheWVyO1xyXG4gICAgICAgIHRoaXMubWFwLmFkZExheWVyKHNlbGVjdGlvbkxheWVyKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHNlbGVjdGlvbkxheWVyO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBwb3B1cCB0byB0aGUgbWFwXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyQmFzZXwqfSBseXIgVGhlIGxheWVyIHRoYXQgdGhlIHBvcHVwIHdpdGggYWN0IG9uXHJcbiAgICAgKiBAcGFyYW0ge3BvcHVwQ2FsbGJhY2t9IHBvcHVwQ29udGVudEZ1bmN0aW9uIC0gcG9wdXAgY29udGVudCBmdW5jdGlvbiB0aGF0IG1ha2VzIHBvcHVwIGluZm9cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbc2VsZWN0aW9uU3R5bGU9e31dIHRoZSBzZWxlY3Rpb24gc3R5bGUgY29uZmlndXJhdGlvblxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzZWxlY3Rpb25TdHlsZS5jb2xvcj1yZ2JhKDI1NSwxNzAsMCwwLjUpXSB0aGUgc2VsZWN0aW9uIGNvbG9yXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3NlbGVjdGlvblN0eWxlLndpZHRoPTEwXSB0aGUgc2VsZWN0aW9uIHdpZHRoIGZvciBsaW5lYXIgZmVhdHVyZXNcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fGZ1bmN0aW9ufSBbc2VsZWN0aW9uU3R5bGUub2xTdHlsZT11bmRlZmluZWRdIGFuIG9wZW5sYXllcnMgc3R5bGUgb2JqZWN0IG9yIGZ1bmN0aW9uXHJcbiAgICAgKiBAcmV0dXJucyB7b2JqZWN0fSBhIHJlZmVyZW5jZSB0byB0aGUgb2wgc2VsZWN0aW9uIGxheWVyXHJcbiAgICAgKi9cclxuICAgIGFkZFZlY3RvclBvcHVwKGx5cjogTGF5ZXJCYXNlVmVjdG9yLCBwb3B1cENvbnRlbnRGdW5jdGlvbjogcG9wdXBDYWxsYmFjayxcclxuICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblN0eWxlPzoge2NvbG9yPzogc3RyaW5nLCB3aWR0aD86IG51bWJlciwgb2xTdHlsZT86IG9sLnN0eWxlLlN0eWxlfSkge1xyXG4gICAgICAgIGxldCBzZWxlY3Rpb25MYXllciA9IHRoaXMuX2FkZFBvcHVwTGF5ZXIobHlyLCBzZWxlY3Rpb25TdHlsZSk7XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcklkcy5wdXNoKGx5ci5pZCk7XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzLnB1c2gobHlyLm5hbWUpO1xyXG4gICAgICAgIHRoaXMuX2FyclBvcHVwTGF5ZXJzLnB1c2gobHlyKTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzLnB1c2gobHlyLm9sTGF5ZXIpO1xyXG4gICAgICAgIHRoaXMuX2FyclBvcHVwQ29udGVudEZ1bmN0aW9uLnB1c2gocG9wdXBDb250ZW50RnVuY3Rpb24pO1xyXG5cclxuICAgICAgICByZXR1cm4gc2VsZWN0aW9uTGF5ZXI7XHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyQmFzZX0gbHlyIC0gbGF5ZXJcclxuICAgICAqL1xyXG4gICAgcmVtb3ZlVmVjdG9yUG9wdXAobHlyKSB7XHJcbiAgICAgICAgbGV0IGlkeCA9IHRoaXMuX2FyclBvcHVwTGF5ZXJJZHMuaW5kZXhPZihseXIuaWQpO1xyXG5cclxuICAgICAgICBpZiAoaWR4ID4gLTEpIHtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcklkcy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzLnNwbGljZShpZHgsIDEpO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJQb3B1cExheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBPbExheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb24uc3BsaWNlKGlkeCwgMSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NlbGVjdGlvbkxheWVyTG9va3VwW2x5ci5pZF07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJFc3JpTWFwU2VydmVyfSBseXIgLSBtYXAgc2VydmVyIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW3NlbGVjdGlvblN0eWxlPXt9XSB0aGUgc2VsZWN0aW9uIHN0eWxlIGNvbmZpZ3VyYXRpb25cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc2VsZWN0aW9uU3R5bGUuY29sb3I9cmdiYSgyNTUsMTcwLDAsMC41KV0gdGhlIHNlbGVjdGlvbiBjb2xvclxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzZWxlY3Rpb25TdHlsZS53aWR0aD0xMF0gdGhlIHNlbGVjdGlvbiB3aWR0aCBmb3IgbGluZWFyIGZlYXR1cmVzXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdHxmdW5jdGlvbn0gW3NlbGVjdGlvblN0eWxlLm9sU3R5bGU9dW5kZWZpbmVkXSBhbiBvcGVubGF5ZXJzIHN0eWxlIG9iamVjdCBvciBmdW5jdGlvblxyXG4gICAgICogQHJldHVybnMge29iamVjdH0gYSByZWZlcmVuY2UgdG8gdGhlIG9sIHNlbGVjdGlvbiBsYXllclxyXG4gICAgICovXHJcbiAgICBhZGRNYXBTZXJ2aWNlUG9wdXAobHlyLCBzZWxlY3Rpb25TdHlsZT86IG9sLnN0eWxlLlN0eWxlfEFycmF5PG9sLnN0eWxlLlN0eWxlPnxvbC5TdHlsZUZ1bmN0aW9uKSB7XHJcbiAgICAgICAgbGV0IHNlbGVjdGlvbkxheWVyID0gdGhpcy5fYWRkUG9wdXBMYXllcihseXIsIHNlbGVjdGlvblN0eWxlKTtcclxuICAgICAgICB0aGlzLl9lc3JpTWFwU2VydmljZUxheWVycy5wdXNoKGx5cik7XHJcblxyXG4gICAgICAgIHJldHVybiBzZWxlY3Rpb25MYXllcjtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhclNlbGVjdGlvbigpIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3NlbGVjdGlvbkxheWVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25MYXllcnNbaV0uZ2V0U291cmNlKCkuY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgZiBvZiB0aGlzLl9tYXBDbGlja0Z1bmN0aW9ucykge1xyXG4gICAgICAgICAgICBmKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBtYXAgaXMgY2xpY2tlZCBidXQgYmVmb3JlIGFueSBwb3B1cHMgYXJlIGltcGxlbWVudGVkXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIC0gdGhlIG1hcCBjbGljayBmdW5jdGlvblxyXG4gICAgICovXHJcbiAgICBhZGRNYXBDbGlja0Z1bmN0aW9uKGZ1bmM6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fbWFwQ2xpY2tGdW5jdGlvbnMucHVzaChmdW5jKTtcclxuICAgIH1cclxufVxyXG5ubS5NYXBQb3B1cENscyA9IE1hcFBvcHVwQ2xzO1xyXG5leHBvcnQgZGVmYXVsdCBNYXBQb3B1cENscztcclxuIl19 /***/ }), /* 13 */ @@ -1681,7 +1681,7 @@ function quickMapBase(options) { exports.quickMapBase = quickMapBase; nm.quickMapBase = quickMapBase; exports.default = quickMapBase; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2tNYXBCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicXVpY2tNYXBCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFFSCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBQ2pDLDBCQUE2QjtBQUM3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBWWhDOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILHNCQUE2QixPQUF5QjtJQUNsRCxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQXFCLENBQUM7SUFDM0MsT0FBTyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztJQUN2QyxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBQyxDQUFDO0lBQzlELE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxPQUFPLENBQUMsSUFBSSxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNsRSxPQUFPLENBQUMsWUFBWSxHQUFHLE9BQU8sT0FBTyxDQUFDLFlBQVksSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDOUYsT0FBTyxDQUFDLFVBQVUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxVQUFVLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBR3pGLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXBDLElBQUksUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVB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RUgsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDckIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUM7QUFDZixDQUFDO0FBNUVELG9DQTRFQztBQUVELEVBQUUsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0FBQy9CLGtCQUFlLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzE1LzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnb2xIZWxwZXJzJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIHF1aWNrTWFwT3B0aW9ucyB7XHJcbiAgICBkaXZJZD86IHN0cmluZztcclxuICAgIGNlbnRlcj86IHt4OiBudW1iZXIsIHk6IG51bWJlcn07XHJcbiAgICB6b29tPzogbnVtYmVyO1xyXG4gICAgbWluWm9vbT86IG51bWJlcjtcclxuICAgIG1heFpvb20/OiBudW1iZXI7XHJcbiAgICBiYXNlU3dpdGNoZXI/OiBib29sZWFuO1xyXG4gICAgZnVsbFNjcmVlbj86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXRzIHVwIGEgbWFwIHdpdGggc29tZSBkZWZhdWx0IHBhcmFtZXRlcnMgYW5kIGluaXRpYWxpemVzXHJcbiAqIG1hcE1vdmUgYW5kIG1hcFBvcHVwXHJcbiAqXHJcbiAqIEBwYXJhbSBbb3B0aW9ucz17fV0gY29uZmlnIG9wdGlvbnNcclxuICogQHBhcmFtIFtvcHRpb25zLmRpdklkPW1hcF0gbWFwIGRpdiBpZFxyXG4gKiBAcGFyYW0gW29wdGlvbnMuY2VudGVyPXt9XSBjZW50ZXIgY29uZmlnIG9iamVjdFxyXG4gKiBAcGFyYW0gW29wdGlvbnMuY2VudGVyLng9LTEwMDE4Mzc4XSBjZW50ZXIgeCwgd2ViIG1lcmNhdG9yIHggb3IgbG9uXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5jZW50ZXIueT01NTc0OTEwXSBjZW50ZXIgeSwgd2ViIG1lcmNhdG9yIHkgb3IgbGF0XHJcbiAqIEBwYXJhbSBbb3B0aW9ucy56b29tPTddIHpvb20gbGV2ZWxcclxuICogQHBhcmFtIFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSBtaW4gem9vbVxyXG4gKiBAcGFyYW0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIG1heCB6b29tXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5iYXNlU3dpdGNoZXI9dHJ1ZV0gaWYgYWRkIGJhc2UgbWFwIHN3aXRjaGVyXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5mdWxsU2NyZWVuPWZhbHNlXSBpZiBhZGQgYmFzZSBtYXAgc3dpdGNoZXJcclxuICogQHJldHVybnMgdGhlIG9sIG1hcFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHF1aWNrTWFwQmFzZShvcHRpb25zPzogcXVpY2tNYXBPcHRpb25zKTogb2wuTWFwIHtcclxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9IGFzIHF1aWNrTWFwT3B0aW9ucztcclxuICAgIG9wdGlvbnMuZGl2SWQgPSBvcHRpb25zLmRpdklkIHx8ICdtYXAnO1xyXG4gICAgb3B0aW9ucy5jZW50ZXIgPSBvcHRpb25zLmNlbnRlciB8fCB7eDogLTEwMDE4Mzc4LCB5OiA1NTc0OTEwfTtcclxuICAgIG9wdGlvbnMuem9vbSA9IHR5cGVvZiBvcHRpb25zLnpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLnpvb20gOiA3O1xyXG4gICAgb3B0aW9ucy5iYXNlU3dpdGNoZXIgPSB0eXBlb2Ygb3B0aW9ucy5iYXNlU3dpdGNoZXIgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5iYXNlU3dpdGNoZXIgOiB0cnVlO1xyXG4gICAgb3B0aW9ucy5mdWxsU2NyZWVuID0gdHlwZW9mIG9wdGlvbnMuZnVsbFNjcmVlbiA9PSAnYm9vbGVhbicgPyBvcHRpb25zLmZ1bGxTY3JlZW4gOiBmYWxzZTtcclxuXHJcblxyXG4gICAgbGV0ICRtYXBEaXYgPSAkKCcjJyArIG9wdGlvbnMuZGl2SWQpO1xyXG4gICAgJG1hcERpdi5jc3MoJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XHJcblxyXG4gICAgbGV0IG9zbUxheWVyID0gbmV3IG9sLmxheWVyLlRpbGUoe3NvdXJjZTogbmV3IG9sLnNvdXJjZS5PU00oKX0pO1xyXG4gICAgLy8gbGV0IHNhdExheWVyID0gbmV3IG9sLmxheWVyLlRpbGUoe3Zpc2libGU6IGZhbHNlLCBzb3VyY2U6IG5ldyBvbC5zb3VyY2UuTWFwUXVlc3Qoe2xheWVyOiAnc2F0J30pfSk7XHJcblxyXG4gICAgbGV0IG9zbUNzcyA9IFwidXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURBQUFBQXdDQU1BQUFCZzNBbTFBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFNQVVFeFVSUUFBQURRMU5EazVPVVJGUkV0TFMxRkhTRmxaV0dKUlZHSmlZV2RtWld4c2JIUm1hWEJwYW5OMGMzVjBkSHA1ZVg1K2ZJVnpkNEYzZWVWMGp1ZDVqdVo4azRhSGhvbUhob3lHaDVlR2o1T1ZsSmlWbFppWWw1cVptSnlkbktPVGxhS1ptcUtkbmFPaW9hcXFxS3V6c2JPdnJyU3lzTGEzdGJXNHVMbTZ1YjI3dWIrL3ZiR1h3YkNad2JDZ3hMS2x4ck9xeUxTdHliTzN5clN4eXJXenpiVzJ5N2ExemJLNHk3VzZ6Ylc4eTc2MHlyVEF6YlRGenJQS3pyTE96clRKenJUT3pyN0N3YlhDMExYSzBMVE8wTDNJMGJQUXo3VFF6N1BTMGJYUTBMblIwYnJXMWJ6VDByN1UwNzdWMUx6YzJkcU5xdGVVc2R5WHNjYXF1dU9IbmVhR211ZUhuT2VKbnVpQmxlaUtuK2VOb09pT29PV1VwT2lSbytpU3BlaVVwZXFZcHVtYXFPbWRyUFN5bmVtZ3J1U3F0T21pc09tbHN1dXF0ZXF1dU9XMXZPdXh1K3V4dk9xMXZlK3h2UEswcHZXM28vVzVwZk81cXZTN3FmQ3d2TU91d2MyL3dOZW54Tnl5ek5lLzBOcTMxTnE1MWR5NzJPeTN3T3U0d091K3hleTR3Tys2eE8yK3hmVEFyL1RDc3ZmRnRQSEx2dlRKdU1QRHdNZkh4Y1hLeWMzRHhNdkZ5TXZMeU0zUHpjRFYwOERWMU1UWDFjYlkxczdYMXNqWjFzcmEyTW5kM003YjJjN2MydGZIMXRuQjF0N0YyZDdNMjlmWDF0TFkxdERkMnRIZTNOVGYzTm5TMTlyWjF0dmEyTm5mM3QzZDI4cmgzdFhnM05uaDN0emozOTNrMzluaTRON2s0TjduNXVYRHlPZkx6K3pBeHUzQ3lPekV5ZXpLemVESjNlTE0zdXZQMHUzUDBlUGYyKzdSMHU3UTF1L1UwKzdVMWV6YzArN2EyZS9kMiszZjN2YkZ6dkxPd2ZITjBQUFF3L1RVeC9MV3l2TFl6UERRMWZQZTB1YmM0dnZlNHVIaDMrbmgzKy9oMnUvaDN2SGoydkhsM3VIbTRlVG40dURwNWVibzQrWG81T0RxNmVicTZPVHY2K25sNCsvajRPN2w0ZTduNXVqcDQrbnA1T3pxNWU3czV1cnQ2Tzd0Nk9ydzZ1N3g2dTN4N3ZQajVQRGw0ZkRvNHZEcTVmRHQ1dkR1NlBEdjdQVHY2ZkR4NnZIeDdmSDE3Zlh3NmZYeTdmYjA3L2J6OGZUMTh2bjM4dnIzOWZyNDgvcjU5UHI2K1AzKysvLysvZ0FBQUxOVFNrMEFBQUVBZEZKT1UvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vd0JUOXdjbEFBQUFDWEJJV1hNQUFBN0RBQUFPd3dISGI2aGtBQUFBR0hSRldIUlRiMlowZDJGeVpRQndZV2x1ZEM1dVpYUWdOQzR3TGpsc00zNU9BQUFGTkVsRVFWUklTMVZWQ1p4VlV4aS85bDBVSVVUMmJNblk0M2JWSTJjMFkwMWtTV0lhUzBqMkpFdGtONDFwaW9tWnJQUEtRMmFRN0pLSW1PWmxubTI0OTNUSnpEdWZ1VTFaaSt2L2ZlZSttWi8vNzkzdm5QT2Q3enZmZXM1ekRCRVprQkJqQWNJamIrSWlvdHFnZGhhdDhBTUswdmw3L1I5TjdHaVd0c2hxSXIrRVo1Z1lLaWJ5VXNYWTFsL21mRnBzc3ZVbFdRMEZrVTNneTQrUkIvK2t3WWNPOHBSU25sZGNPVS9yMmxBSEFSU3drMk9SZ0VtT2RDMUVzdVJpWVNxTVB3d3JvTUlyYVprNVYyZllKUWpDS2ZaclJtaDNnU0FaaTJpNGI3d1N5bFd1OEVxWndTNTlKa0ZVYVc5NkpiTlNjK0NFVW10NHJvcnd1Wm1XZERhb2MrdVpFVHVRbFRDVTV4WXpSN211VW5WVVZvK0JjUmhyZS9Wd1VwYXNnSndoSDdKa1lJWUEwc054aG1Dd1VLK2x3NnZDS0JaZWh3MDFkRWl5dzRRNGFFMFo0YWhEaEthRlFzR25KMkJncUtvVEJzTmpGeTBTbFc2d2hSQVpUZG04REJKbWtCWmhEaTFqNHhKUUJrNnl3cldVVHltYUN4YWM4bFJPY2RhdVJHelFTTnRBN0VIVVloWHlFd2hoZ2pGVXFSdU8rcmF1aEYxYXdGcHpDc213VWJqSUZCUjB1MWJLdHlHcHVsVy9IL2NWVnpreUdhSVdUSVI5cEZBVjZHSzJnUE1YTVg4Z1BrOXp6eFhnSTFraW1jQWx0RVlyK2NqaW8xaW1sS3BFYTlyT2lwTG0rcCtDWjZCdy8vcWQxL2YvTytHd014YlNMcHlvWkVjd2t5aDJqSWtzKzNobWRkMmpXVXc0c2N4Tnlzbkh4VTduU3NwVFJjSmpDWkdMM0lzanNZSk1NZzVtd2d4N2dhSU9MQkZDb2dBZ0JCb05hOXcrREU2SStCczdGVGd3d3JKYkhqV0RncFlvMkt3dEJUY1lFRHVsb0M5Z2VRdytrMlJHblBHcFRhT2xxN0FTK1lJQ1V6NERaVmFYMlRpTkRodVlmVHRZNGdlTGkwSW9DbTNYY2N3TTloeDRrVTI4U3RRRWxqRHMzWkVwRkdBKzhkS3pMbVY5eW1Jd0Y1Rk9HbjJHZEpNOEtMSERKYlh5aVlWTUc5TVJUTGlYR0dnMlFLYXhNM2toUFNScndNOXpFSWFyZHhVMncvRWlBMGdPZVlLSHpEUjBWNy9RR1YzbEtJQTlrdHJEQXJ4TzNnZEErazZTS29CaVZ3Y203TmpaYjkrSG56dGcyODJUdUhWWjlMT0lTRk50OU1neUNldFpWY3pTeG55RGJsMTdQZW5xNm1xcGcxSWhSYUVPMmFWTFVPNC9yMTdIOHRUdjZmMTNoNzFkZHV2WkkzWSt1TWRXa3NOU2F1TG92Snc1aHNxaVBJVXZ0MGt1Ny9pQmVVUjNza3Ntb21ZV3RSYkFqYmlMZnYybFg5L1Y3TFZHNHVZblVaWGhRN2YyT1BDWkV4OXdyWVdUY2VQRVFxUEVNTDhwbDRtTWRyL2psWGx2SGlSaUoyK01TVEZZNFRUU1lTdHV2ejJSL0pYaCtQUGVHWG0wNTVKKzMvWURXdU51M1IzREFyUHV0eWcwWmd5a01WRFU5TmRtMjIrd1lhbHIycnNlNDhDbnNUSUZjTW43M3ZmaE5ya3R4MUVVY1puUHY2YWgzWXk1Y0RUUmRCRW9Hb0JlYWg3MWRxRnlqWkRKTGtXazNOM3Y0dXVrdHNzaldwemNpTVB4UWVIajhuTUt6Y0d1QjB0QXl6RmhkQ0tPWVd2NEh3T1FWd0l4TEc5OWE2dXZIM3NKQ3lPM2grazRFWitHNyt4ajVmNFhYa3NvYUdyZE1SelNjOEFSQTgrY2RPdWsyeDZmZmZOTnQ1eCtSbzFvbVBsclQvQ1FEbGNObHB4NE5CSVdYaGt4N1kzWnAzb2ZOUjdVdjg5T20vYmVXMFRMSXluSHYzdnMxVnNPRnBTV1NYdmZ1UFVmOUJyUkZ5eGdYZEhvS0puUUZlZ1BPb3Z2eno1OW50cnp5ZTI0MGlnOFVRM2xESTJWcXdhZ3JLSVFjTFhORkwzd2dsTjJPSGRCUTYvdkkza0VORFZCd1JiM2sxWHRjekZialduNEV6TVlpN0NGMzEyOStKVFl1UlNkckd1UzkyZzVkcHFuNnFYb0pRczV4bUw4cCtXdDRoTGJ0MG14Mk9MTlpSMmJiUHk4ekpOUUdGTS9mL0NmWFpla1JZRmpHQ1dqSUpwTStXaUN6R0JQV0hob3lhQXNqUlQvQjJHeTV5ellKa3dVQUFBQUFFbEZUa1N1UW1DQycpXCI7XHJcbiAgICBsZXQgYWVyaWFsQ3NzID0gXCJ1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBREFBQUFBd0NBTUFBQUJnM0FtMUFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQU1BVUV4VVJRQUxCZ0lNRFFnT0J3UU9FUWNUQndVU0N3b1ZEQXdkQnc4WkRnVVJFd1lVR0FZWkZRWVpHZ2tURlFvVkdRc1pGQXdaSEJNZURoSWJGQkViSEF3V0lBNGJJUkVjSVE0aENRd2pGdzRsSEJna0RCOHNEeFVpRXhJaUdoQW9HeG9oRlJzaEdSb3JIUWNyS1FzaUlRd21LZ29vSkEwcEtRODFKdzh5TFJNaUl4SW1LeFVySlJFdUtoc2xKQjBySWhvb0tSVXVNQk15TGhrd0pob3pLaDQ4THhVek1STTlNQnd6TWlVdkZDTXRHaU13RWl3ekZDZ3pIREkrR1NJc0lTa3ZKU1F4SWlNMkxpWTVKaWMrTHlrMEpTbzBLeTQ5SlNzOUtTVTFOU003TkNzMk5TOCtORE0xSnpVOUxqZzdJREpDSFMxRExTTkFNaXRDTVN4SU9qUkVJVFpMSURaSktEbEZJanBGS3p0S0pUMUxLekpCTXpwSE1EMUpNanBLUEQxUktqbFFOQzFEUWo1UVFFQThNRUpHSmtCS0pVSk5LMGxMTEVKTU1rVk1QRXBPTkVOU0xVZFpMMHBUTGtwYUxrUlVNa1JTUEVWWk1rdFVNMHBWT2tsWk1rbFpORXBjTlUxWk1rMVpOVXhmTWs1ZE5reGNPVkZVTTFSVU9GSmJOVkZaT1ZOWVBWRmRPVkpkUEZWYU9WVmFQVlZkT2xWZFBWcGFObHBkTzBwaE4wMWhPbEJpTjFOaFBGTm9QMXBpUFdGYlBtUmpQRU5PUUV0UFNVUlRRa0pWUzB4VlFrMVZTa3hiUWt4Y1MwaGVVVkZYUkZSY1FsSmZURnhlUWxwZVMwNWxRazFrU0ZSalFWUmpTbFpwUTF0a1FseGxTbHhwUkYxclNWVm5VVnRsVTFsbFhGOXRVMXhvWGx4d1NsOXJhbVJmUW1KbFEyRmhTV0ZsU1dGbFRtVmxTV1JtVEdGb1FXRnBSV0ZzUm1WcFJXVnRSbU5zU210bFJHcHFSbXBzUzJCbVdHUnNVbUZyVzJwdFVtWnlSMlJ4VEdweFRXVnlVMlJ5VzJkNVYydHpVbXQwV1cxNVZHMTVXWEZ1VEhOdFZuRnhUWEY0VDNoMFRuSnpVbkoxWEhKNFZYTjZXbnAwVkh4MVczMTVWWHA4WEdSMFlHeDBZSFZ6WlhKMGFIUjlaWFYrYUhsOVlIT0NYWHFCWFhlQ1lIeUNZM2lFYUh5SVluK0phWHFLY1lCNVdJTjZZNFNDWG9DRFpJR0VhWUNJWm9PTGE0aUNhSW1KYklPT2RZdU1jbzZPZUl1VmNwT0tiWktQYzVhUWI1ZVhlNXVmZzZLamhBQUFBQUFBQUFBQUFBQUFBT0dDZVFnQUFBRUFkRkpPVS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy93QlQ5d2NsQUFBQUNYQklXWE1BQUE3REFBQU93d0hIYjZoa0FBQUFHSFJGV0hSVGIyWjBkMkZ5WlFCd1lXbHVkQzV1WlhRZ05DNHdMamxzTTM1T0FBQUg4MGxFUVZSSVN5MVdiWFFVVnhtKzZ3cW5rM1ptcHhsMkZHMkVHZzkyQzhHRGxXcHRWVHdhK3VGM3hjS21EZkZ6Q1V6RHNKTnN1blhpcGdsSlhKYnJ0Sldtd1pOU25IRDNqb2pSZ1VJbTJVdW1JWjBKWjdKQnlyQUxiTVdXMElCVzhhUmE0K2NmNzZUZVgzTm0zdWMrei9zKzcvdnVnbDRyL2FNVHJUNGUxcFBUcW5ubUpObjVBeVV6Um5yUmxlL3FFMzNkc3ZyQnRBUVZveHRwWk5LM3pTellqVWp2aVdPMkFnK1I3N2RsN1czNm4vMUVwOUtCUEcvUytQeTBQa2pVL2dQS1FHcXdUSHJ5aVdZRkFYU3ZNYWlyc2lvN1NqeU5zbkN6aDBxS0ltVjkvN21oZkhRWngyeU4xTys3clhVbTMzTVVQYWJvT2tBSkhhb0lkWGZKajJ4V2V5RDhqTUZFWGt2SXU1cXpwVTk4OGdXQjV6bCtHUytzRmU1NXRyRVZQZFdaQjJtaXE4YkJWa05GTzJSMHFucmZraVhoY0podEROWEU2dGJXOTcvczlPOS83WmZWaHg4Ni9Dd3JST3BmdnZ4Ym9NcWVMc3VxUHIxajQ0cUV3RE5NT0J4aW1VaVlvVThzdzdCQy9hN1Q3MnVFbnlKRGxHeFo5S2NnbFpSeXVxcXJ2L3RTWkVyZ09JNE5nUkJUSXc5RW1IQW9GR1pabnA2YUdhSjJHVHhmeFlzOGtLVlVRaDdXQjVoUWVDM0xzVXhveFZLVzE0bDNCWDJXY29VWVBpWnlMTGU4dGVaK2l1VDRHR2h2VjVLcEtXa3B5enhFcjJNWmdRMXhkUmpmUkJvSCsyazZsSUhqS1RIUFBCbzhDU0pJU3FxcTR3R0dPY1d5bElHbGd2Z05YMUdkOHZGNWYrSVVJd2IzMG5nK0dnMlFmQlJJTXZ5MGpHOFNWa1lvNE4wenZVWFZSenRiSi9MNnhMN2xVWkVYQkVIa3VacWxTNmdFQVVnS0p1cm5oRnRmcEFDT1lkOGIvaFZiSlBxd2k0NGE2S0Ewc1BWaklpL1NJeXhiM3U4S2xBSjBTOGpSVmdybFcrblZIUGRyaGlYQ3h1NDJkODZCeWtzRGM4MFAzTWtKRkJGUThIbzFsUWVncFdKUldGR3NEc1J3d3Y3cEl5dnVRVzBaa3JYNk5EVkZicWN2YVFJOHZieXF6dDVBQVJyc2JLeDV5aFFFR3Mrd1BPNTZiT0srMHJjd01yT0trcFViWldZeFYwNFVlWlp2L2NCS0ZoUkw2UWR2OXk0TGZFREE3L3RoZzd0VG12MWE1L0duTzB3bDBkUWc4MHdnbFphSFVteFJ2andBSE9meU4wbXhycHFMVXBjanNLM05IWU1vNFIxbzZlaG8yWnlJYjJGb2VPQzNJTEs4a1oySFFNT3VXeXdHWFVrSkJDZVRiWUZTMCt5bTFoMi82VWdtdm5ydktZWlp0SUVYR2Y3NUMyY0lBcDVMSE5kNzF4N3VQb1RqYWtyV0g5ZTNLRnBhYXRqVXZKVXlzRncwS3JMTVlNVzJsVGc0UGVVUXg2a0pFQUx2eFhFbUNkVnlQTEh0Q1NqQmhjMDFYQ2pJZ2FmeG91K1BFNktDMWRoeFNDd29CQ2MrTjRQM2J0TTg0cG1kU1NqSm5qTy9udlk0TFFmVnl6NS9JK3Y2SXdqVU9NankrTVZDeEliS3VwVEphRWt0cDdjVEtVNDJQdmpoMm0vOGNTcEM2YVBzYVgvTUhTdVVRTFZWc0lhNFJVVHMvci9CVkFleE5kamRuc05HN2ovclY5M3hoZUxNektuRnJQZVRFUWNoQ3lDY0tiMjVhQUluN2xyQWVydHJad3lOWE04TjZ6ZldyRm8zZDJTbU9FY0Y4M3gvcitPT0ZnckFIWVdGN2NFTGpoVjdVUW8vNldBSVVWbDlKRmw4YS8vSFo2NlZwYlkzSTlRS1pxUHJ1NzdsQStpT1dBSXIwaEt4SENtbXIwb3RoU3llSWw1eTNxdDR4VDhnU05yS0Vab3pzOEVsczY3cmdzTE9aK3lnendNZmJ0TmhvYmZnenBFeUduejdodFB0elVpNlB1T29qN0swV0YvTVhpVUZ4d0dhalJEMWhqWVhIWEk5cDQwNnFPeWlucDUvdGlXY0RIWTBqSXU0bjY0UWZxN2tsaUIyZ2VtYWc5UWJPaWEwUGJiRE1iZDQzU0h1dnhGeHJBb2N4aW5zN01YNUtxYmUxUWl4S0J4b1Y0Ly9QZkFnR0N1K1JsbTRTdlppenlESCswcmVESHA5MmlPMEJ1WDNiQ2ZJdGwwUEV3dllMcXB3WEcyTUhsR3NRNFM4cE1KWnYxSkdtSGlFb0hRRGRPandtVmxFUC9uRTlBREtqSTh4TEkwT09HSVRmeTBTYmVHL0MyaktVREdTbERoTTlJM0lwSzlpdXA2WG5iUk5DN3lxdWVOc0pDQ0lpWHpkUWhuYUdOKzQ2dW1uRWR5NVU1VWJVSjQ4TEZNOUdrSm84QmRET2lBWjdaSVFiS2hZTE1xdmhVMndtTnhqRUFzUzJBSTd5NG5XRjY0ZHVlUGJrN1lWM3p2QVZMRU1EOUF4SlJOYTNLRFVpYlY3RGpua3Vwck1FWWpTY0ZOY2FSMmNlUDJ1OVIvNWsxMDUyUnltZTVwaEFGUnN3bEhqQXVkaVA0ZE95N0NheExnZEpoOXZVbFUxNzAyLytMUGExVTlmdlBpOXFsQTRYRVVCSmMzZEZscHNSNDU3SURsMWlQcUxwN284MU5RZ3lWMTlpWVUzOHVUaXY5NzVQZDNTaXdRY3NHangrdjQvNmZsNVQ3RU9PTVRDdHBiS3hmZW1zUXEvM29sUVpjbWluQURBQUkwY3VHTEhhSE9GeGJ1R3ZSay9aOXU3Q1VMcW9WUjZORTB5eDFhdmozMG9SaGMvaldVb0lBTEd4a3owZGcxRGw5aWFJN0xxT09YS3NYSkZ3aml1RUFpNzBKcmEyblcxUEwwOHpMQmhac01BQnBXNWNzSTdUUGZldzlpcEZLY241azFpKzFLeUNXS2pDM1cvOGRGMWQ2NjYrUmFhYkJWVEZUSGFjam9vakJORGgwTkR4aytJUFRsd2ZxSmtXcGJucEZIWEliTGJtcHhFUTNmZi9aMGcvbWF1WHNvbG45d0RSankvTkhzUUZ3M1A2dld1VEo0My8rRlpyazJjdkFGUmlwQ0tkZkQ5eTIrcGpSajc4czBLZENVREtKdmRWOTFDaG5nVjM4VDIwVE0rZ2doanBKYVBscEZyMnhiRXo1ZzRBL05HdDVyTndkd21ZR2VlZU1YQlNMSEhVSWMrNlJzb2pSSDlWVFVtMy9tTGYvNjRiNDcwWHZveG9US2hsTUJRMmpNRXpvMlBqeGRHTXBwbW4xUk0yNGJXRkpxYVF2NEJjdUphMlNhbTdab2txMWxkQ3N6MDZOQ0JIcmh3cVZRWXBmRmo0Mk5aZXh6MUVXOVNSL2tUNThuRWVRS0piMmZQWGpqcDB1L1lVa3dIRWdMZU9uZjJuT3VmMVRSVE0wMkNMS0xUUHk2MC94MUNDenRxbjdFditCZHNDM20rMzBkZWNRdlcvd0JOVHdVK0NmVVFBUUFBQUFCSlJVNUVya0pnZ2c9PScpXCI7XHJcblxyXG4gICAgaWYgKG9wdGlvbnMuYmFzZVN3aXRjaGVyKSB7XHJcbiAgICAgICAgLy8gIGxldCBzd2l0Y2hlckNvbnRlbnQgPSAnPGRpdiBjbGFzcz1cImJhc2UtbWFwLXN3aXRjaGVyXCIgdGl0bGU9XCJUb2dnbGUgQmFzZSBMYXllclwiIHN0eWxlPVwiJztcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9ICdwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNzBweDsgbGVmdDogNHB4OyBib3JkZXI6IHNvbGlkIGJsYWNrIDFweDsgJztcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9IGBoZWlnaHQ6IDUwcHg7IHdpZHRoOiA1MHB4OyB6LWluZGV4OiAxMDsgYm9yZGVyLXJhZGl1czogNHB4OyBiYWNrZ3JvdW5kOiAke2FlcmlhbENzc307YDtcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9ICdcIj48L2Rpdj4nO1xyXG4gICAgICAgIC8vICAkbWFwRGl2LmFwcGVuZChzd2l0Y2hlckNvbnRlbnQpO1xyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gJG1hcERpdi5maW5kKCcuYmFzZS1tYXAtc3dpdGNoZXInKS5jbGljayhmdW5jdGlvbigpIHtcclxuICAgICAgICAvLyAgICAgIFwidXNlIHN0cmljdFwiO1xyXG4gICAgICAgIC8vICAgICAgb3NtTGF5ZXIuc2V0VmlzaWJsZSghb3NtTGF5ZXIuZ2V0VmlzaWJsZSgpKTtcclxuICAgICAgICAvLyAgICAgIHNhdExheWVyLnNldFZpc2libGUoIXNhdExheWVyLmdldFZpc2libGUoKSk7XHJcbiAgICAgICAgLy9cclxuICAgICAgICAvLyAgICAgIGlmIChvc21MYXllci5nZXRWaXNpYmxlKCkpe1xyXG4gICAgICAgIC8vICAgICAgICAgICQodGhpcykuY3NzKCdiYWNrZ3JvdW5kJywgYWVyaWFsQ3NzKTtcclxuICAgICAgICAvLyAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgJCh0aGlzKS5jc3MoJ2JhY2tncm91bmQnLCBvc21Dc3MpO1xyXG4gICAgICAgIC8vICAgICAgfVxyXG4gICAgICAgIC8vICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0aW9ucy56b29tIDwgMCB8fCBvcHRpb25zLnpvb20gPiAyOCkge1xyXG4gICAgICAgIHRocm93ICd6b29tIG91dCBvZiByYW5nZSc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9wdGlvbnMuY2VudGVyLnggPj0gLTE4MCAmJiBvcHRpb25zLmNlbnRlci54IDw9IDE4MCAmJiBvcHRpb25zLmNlbnRlci55ID49IC05MCAmJiBvcHRpb25zLmNlbnRlci55IDw9IDkwKSB7XHJcbiAgICAgICAgbGV0IHAgPSBuZXcgb2wuZ2VvbS5Qb2ludChbb3B0aW9ucy5jZW50ZXIueCwgb3B0aW9ucy5jZW50ZXIueV0pO1xyXG4gICAgICAgIG5ldyBvbC5wcm9qLlByb2plY3Rpb24oe2NvZGU6IFwiRVBTRzo0MzI2XCJ9KTtcclxuXHJcbiAgICAgICAgcC50cmFuc2Zvcm0obmV3IG9sLnByb2ouUHJvamVjdGlvbih7Y29kZTogXCJFUFNHOjQzMjZcIn0pLCBuZXcgb2wucHJvai5Qcm9qZWN0aW9uKHtjb2RlOiBcIkVQU0c6Mzg1N1wifSkpO1xyXG4gICAgICAgIGxldCBjb29yZGluYXRlcyA9IHAuZ2V0Q29vcmRpbmF0ZXMoKTtcclxuICAgICAgICBvcHRpb25zLmNlbnRlci54ID0gY29vcmRpbmF0ZXNbMF07XHJcbiAgICAgICAgb3B0aW9ucy5jZW50ZXIueSA9IGNvb3JkaW5hdGVzWzFdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xzID0gb2wuY29udHJvbC5kZWZhdWx0cyh7XHJcbiAgICAgICAgICAgIGF0dHJpYnV0aW9uT3B0aW9uczoge2NvbGxhcHNpYmxlOiBmYWxzZX1cclxuICAgICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IHZpZXcgPSBuZXcgb2wuVmlldyh7XHJcbiAgICAgICAgY2VudGVyOiBbb3B0aW9ucy5jZW50ZXIueCwgb3B0aW9ucy5jZW50ZXIueV0sXHJcbiAgICAgICAgem9vbTogb3B0aW9ucy56b29tLFxyXG4gICAgICAgIG1pblpvb206IG9wdGlvbnMubWluWm9vbSxcclxuICAgICAgICBtYXhab29tOiBvcHRpb25zLm1heFpvb21cclxuICAgIH0pO1xyXG5cclxuICAgIGxldCBtYXAgPSBuZXcgb2wuTWFwKHtcclxuICAgICAgICBsYXllcnM6IFtvc21MYXllcl0sXHJcbiAgICAgICAgdGFyZ2V0OiBvcHRpb25zLmRpdklkLFxyXG4gICAgICAgIGNvbnRyb2xzOiBjb250cm9scyxcclxuICAgICAgICB2aWV3OiB2aWV3XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAob3B0aW9ucy5mdWxsU2NyZWVuKSB7XHJcbiAgICAgICAgbWFwLmFkZENvbnRyb2wobmV3IG9sLmNvbnRyb2wuRnVsbFNjcmVlbih7fSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtYXA7XHJcbn1cclxuXHJcbm5tLnF1aWNrTWFwQmFzZSA9IHF1aWNrTWFwQmFzZTtcclxuZXhwb3J0IGRlZmF1bHQgcXVpY2tNYXBCYXNlO1xyXG4iXX0= /***/ }), /* 14 */ @@ -1763,7 +1763,7 @@ function resolutionToZoom(resolution) { } exports.resolutionToZoom = resolutionToZoom; nm.resolutionToZoom = resolutionToZoom; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbVJlc29sdXRpb25Db252ZXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiem9vbVJlc29sdXRpb25Db252ZXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFFSCwyQ0FBc0M7QUFDdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBRXRELElBQUksY0FBYyxHQUFHO0lBQ2pCLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLHFCQUFxQjtJQUNyQixxQkFBcUIsQ0FBQyxJQUFJO0NBQzdCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsMEJBQWlDLFNBQVM7SUFDdEMsWUFBWSxDQUFDO0lBRWIsRUFBRSxDQUFDLENBQUMsT0FBTyxTQUFTLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMvQixFQUFFLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLElBQUksQ0FBQyxJQUFJLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNELE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBZ0MsU0FBVyxDQUFDLENBQUM7WUFFekQsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNyQixDQUFDO0lBQ0wsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUNyQixDQUFDO0FBQ0wsQ0FBQztBQWRELDRDQWNDO0FBQ0QsRUFBRSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0FBR3ZDOzs7O0dBSUc7QUFDSCwwQkFBaUMsVUFBVTtJQUN2QyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUMsQ0FBQztRQUM1QyxFQUFFLENBQUMsQ0FBQyxVQUFVLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUEsQ0FBQztZQUNsQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2IsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ2IsQ0FBQztBQVJELDRDQVFDO0FBRUQsRUFBRSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTQvMjAxNS5cclxuICovXHJcblxyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycy56b29tUmVzb2x1dGlvbkNvbnZlcnQnKTtcclxuXHJcbmxldCBfem9vbVJlc0xvb2t1cCA9IFtcclxuICAgIDE1NjU0My4wMzM5MjgwNDA5NywgLy8wXHJcbiAgICA3ODI3MS41MTY5NjQwMjA0OCwgLy8xXHJcbiAgICAzOTEzNS43NTg0ODIwMTAyNCwgLy8yXHJcbiAgICAxOTU2Ny44NzkyNDEwMDUxMiwgLy8zXHJcbiAgICA5NzgzLjkzOTYyMDUwMjU2LCAvLzRcclxuICAgIDQ4OTEuOTY5ODEwMjUxMjgsIC8vNVxyXG4gICAgMjQ0NS45ODQ5MDUxMjU2NCwgLy82XHJcbiAgICAxMjIyLjk5MjQ1MjU2MjgyLCAvLzdcclxuICAgIDYxMS40OTYyMjYyODE0MSwgLy84XHJcbiAgICAzMDUuNzQ4MTEzMTQwNzA1LCAvLzlcclxuICAgIDE1Mi44NzQwNTY1NzAzNTI1LCAvLzEwXHJcbiAgICA3Ni40MzcwMjgyODUxNzYyNSwgLy8xMVxyXG4gICAgMzguMjE4NTE0MTQyNTg4MTMsIC8vMTJcclxuICAgIDE5LjEwOTI1NzA3MTI5NDA2MywgLy8xM1xyXG4gICAgOS41NTQ2Mjg1MzU2NDcwMzIsIC8vMTRcclxuICAgIDQuNzc3MzE0MjY3ODIzNTE2LCAvLzE1XHJcbiAgICAyLjM4ODY1NzEzMzkxMTc1OCwgLy8xNlxyXG4gICAgMS4xOTQzMjg1NjY5NTU4NzksIC8vMTdcclxuICAgIDAuNTk3MTY0MjgzNDc3OTM5NSwgLy8xOFxyXG4gICAgMC4yOTg1ODIxNDE3Mzg5Njk3NCwgLy8xOVxyXG4gICAgMC4xNDkyOTEwNzA4Njk0ODQ4NywgLy8yMFxyXG4gICAgMC4wNzQ2NDU1MzU0MzQ3NDI0NCwgLy8yMVxyXG4gICAgMC4wMzczMjI3Njc3MTczNzEyMiwgLy8yMlxyXG4gICAgMC4wMTg2NjEzODM4NTg2ODU2MSwgLy8yM1xyXG4gICAgMC4wMDkzMzA2OTE5MjkzNDI4MDQsIC8vMjRcclxuICAgIDAuMDA0NjY1MzQ1OTY0NjcxNDAyLCAvLzI1XHJcbiAgICAwLjAwMjMzMjY3Mjk4MjMzNTcwMSwgLy8yNlxyXG4gICAgMC4wMDExNjYzMzY0OTExNjc4NTA2LCAvLzI3XHJcbiAgICAwLjAwMDU4MzE2ODI0NTU4MzkyNTMgLy8yOFxyXG5dO1xyXG5cclxuLyoqXHJcbiAqIEdldCB0aGUgcmVzb2x1dGlvbiBnaXZlbiB0aGUgem9vbSBsZXZlbFxyXG4gKiBAcGFyYW0ge251bWJlcn0gem9vbUxldmVsIC0gdGhlIHpvb20gbGV2ZWxcclxuICogQHJldHVybnMge251bWJlcnwqfSB0aGUgbWFwIHJlc29sdXRpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB6b29tVG9SZXNvbHV0aW9uKHpvb21MZXZlbCkge1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB6b29tTGV2ZWwgPT0gJ251bWJlcicpIHtcclxuICAgICAgICBpZiAoem9vbUxldmVsICUgMSA9PT0gMCAmJiB6b29tTGV2ZWwgPj0gMCAmJiB6b29tTGV2ZWwgPD0gMjgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIF96b29tUmVzTG9va3VwW3pvb21MZXZlbF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYGludmFsaWQgem9vbSBsZXZlbCBwcm92aWRlZDogJHt6b29tTGV2ZWx9YCk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxufVxyXG5ubS56b29tVG9SZXNvbHV0aW9uID0gem9vbVRvUmVzb2x1dGlvbjtcclxuXHJcblxyXG4vKipcclxuICogR2V0IHJlc29sdXRpb24gZnJvbSB0aGUgem9vbSBsZXZlbFxyXG4gKiBAcGFyYW0ge251bWJlcn0gcmVzb2x1dGlvbiAtIHRoZSByZXNvbHV0aW9uXHJcbiAqIEByZXR1cm5zIHtudW1iZXJ8Kn0gdGhlIHpvb20gbGV2ZWxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZXNvbHV0aW9uVG9ab29tKHJlc29sdXRpb24pe1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBfem9vbVJlc0xvb2t1cC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgaWYgKHJlc29sdXRpb24gPj0gX3pvb21SZXNMb29rdXBbaV0gKXtcclxuICAgICAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAwO1xyXG59XHJcblxyXG5ubS5yZXNvbHV0aW9uVG9ab29tID0gcmVzb2x1dGlvblRvWm9vbTtcclxuIl19 /***/ }), /* 15 */ @@ -2142,7 +2142,7 @@ function makeMapServiceLegend(esriResponse) { } exports.makeMapServiceLegend = makeMapServiceLegend; nm.makeMapServiceLegend = makeMapServiceLegend; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNyaVRvT2xTdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVzcmlUb09sU3R5bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0dBRUc7QUFDSCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBQ2pDLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUU5Qzs7Ozs7R0FLRztBQUVIOzs7Ozs7R0FNRztBQUNILDJCQUEyQixVQUFVLEVBQUUsT0FBTztJQUMxQyxZQUFZLENBQUM7SUFFYixNQUFNLENBQUMsVUFBUSxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBSSxPQUFPLE1BQUcsQ0FBQztBQUNqRixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILG9CQUFvQixHQUFHO0lBQ25CLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1NBQ2IsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7U0FDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUM7U0FDdkIsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7U0FDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7U0FDckIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsRUFBRSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7QUE0QjNCO0lBTUk7Ozs7T0FJRztJQUNILHNCQUFZLFNBQXFCLEVBQUUsT0FBZTtRQUM5QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lB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Q29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxLzQvMjAxNi5cclxuICovXHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycy5lc3JpVG9PbFN0eWxlJyk7XHJcblxyXG4vKipcclxuICogVGhpcyBjYWxsYmFjayBpcyBkaXNwbGF5ZWQgYXMgcGFydCBvZiB0aGUgUmVxdWVzdGVyIGNsYXNzLlxyXG4gKiBAY2FsbGJhY2sgc3R5bGVGdW5jXHJcbiAqIEBwYXJhbSB7b2wuRmVhdHVyZX0gZmVhdCAtIG9wZW5sYXllcnMgZmVhdHVyZVxyXG4gKiBAcGFyYW0ge251bWJlcn0gcmVzb2x1dGlvbiAtIG1hcCByZXNvbHV0aW9uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSB7QXJyYXk8bnVtYmVyPn0gY29sb3JBcnJheSAtIGlucHV0IGNvbG9yIGFycmF5XHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBvcGFjaXR5IC0gdGhlIG9wYWNpdHkgMCB0byAxXHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHJnYmEgc3RyaW5nXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5mdW5jdGlvbiBfY29sb3JBcnJheVRvUmdiYShjb2xvckFycmF5LCBvcGFjaXR5KSB7XHJcbiAgICBcInVzZSBzdHJpY3RcIjtcclxuXHJcbiAgICByZXR1cm4gYHJnYmEoJHtjb2xvckFycmF5WzBdfSwke2NvbG9yQXJyYXlbMV19LCR7Y29sb3JBcnJheVsyXX0sJHtvcGFjaXR5fSlgO1xyXG59XHJcblxyXG4vKipcclxuICogZXNjYXBlIGh0bWwgY2hhcmN0ZXJzXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgLSBpbnB1dCBzdHJpbmdcclxuICogQHJldHVybnMge3N0cmluZ30gZXNjYXBlZCBzdHJpbmdcclxuICovXHJcbmZ1bmN0aW9uIGh0bWxFc2NhcGUoc3RyKSB7XHJcbiAgICByZXR1cm4gU3RyaW5nKHN0cilcclxuICAgICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxyXG4gICAgICAgIC5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7JylcclxuICAgICAgICAucmVwbGFjZSgvJy9nLCAnJiMzOTsnKVxyXG4gICAgICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JylcclxuICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpO1xyXG59XHJcblxyXG5ubS5odG1sRXNjYXBlID0gaHRtbEVzY2FwZTtcclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVzcmlSZXNwb25zZXtcclxuICAgIGRyYXdpbmdJbmZvOiB7XHJcbiAgICAgICAgcmVuZGVyZXI6IEVzcmlSZW5kZXJlclxyXG4gICAgfSxcclxuICAgIGdlb21ldHJ5VHlwZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXNyaVJlbmRlcmVye1xyXG4gICAgdHlwZTogc3RyaW5nO1xyXG4gICAgc3ltYm9sOiBFc3JpU3ltYm9sO1xyXG4gICAgdW5pcXVlVmFsdWVJbmZvczogQXJyYXk8e2xhYmVsOiBzdHJpbmcsIHZhbHVlOiBhbnksIHN5bWJvbDogRXNyaVN5bWJvbH0+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVzcmlTeW1ib2x7XHJcbiAgICBzaXplOiBudW1iZXI7XHJcbiAgICB0eXBlOiBzdHJpbmc7XHJcbiAgICBvdXRsaW5lOntcclxuICAgICAgICBjb2xvcjogc3RyaW5nO1xyXG4gICAgICAgIHdpZHRoOiBudW1iZXI7XHJcbiAgICB9LFxyXG4gICAgY29sb3I6IHN0cmluZztcclxuICAgIHdpZHRoOiBudW1iZXI7XHJcbn1cclxuXHJcblxyXG5jbGFzcyBDb21tb25TeW1ib2wge1xyXG4gICAgbGVnZW5kSHRtbDogc3RyaW5nO1xyXG4gICAgb3BhY2l0eTogbnVtYmVyO1xyXG4gICAgc3ltYm9sT2JqOiBFc3JpU3ltYm9sO1xyXG4gICAgb2xTdHlsZTogb2wuc3R5bGUuU3R5bGV8QXJyYXk8b2wuc3R5bGUuU3R5bGU+fG9sLlN0eWxlRnVuY3Rpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHN5bWJvbE9ialxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG9wYWNpdHlcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3Ioc3ltYm9sT2JqOiBFc3JpU3ltYm9sLCBvcGFjaXR5OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnN5bWJvbE9iaiA9IHN5bWJvbE9iajtcclxuICAgICAgICB0aGlzLm9wYWNpdHkgPSBvcGFjaXR5O1xyXG4gICAgICAgIHRoaXMub2xTdHlsZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgPSAnJztcclxuICAgIH1cclxufVxyXG5cclxuaW50ZXJmYWNlIElDb21tb25TeW1ib2x7XHJcbiAgICBuZXcgKHN5bWJvbE9iajogRXNyaVN5bWJvbCwgb3BhY2l0eTogbnVtYmVyKTogQ29tbW9uU3ltYm9sXHJcbn1cclxuXHJcblxyXG5jbGFzcyBQb2ludFN5bWJvbCBleHRlbmRzIENvbW1vblN5bWJvbCB7XHJcbiAgICBjb25zdHJ1Y3RvcihzeW1ib2xPYmo6IEVzcmlTeW1ib2wsIG9wYWNpdHk6IG51bWJlcikge1xyXG4gICAgICAgIHN1cGVyKHN5bWJvbE9iaiwgb3BhY2l0eSk7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnN5bWJvbE9iai50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2VzcmlTTVMnOlxyXG4gICAgICAgICAgICAgICAgbGV0IGlubmVyQ29sb3IgPSBfY29sb3JBcnJheVRvUmdiYSh0aGlzLnN5bWJvbE9iai5jb2xvciwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgICAgIGxldCBvdXRlckNvbG9yID0gX2NvbG9yQXJyYXlUb1JnYmEodGhpcy5zeW1ib2xPYmoub3V0bGluZS5jb2xvciwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgICAgIGxldCBvdXRsaW5lV2lkdGggPSB0aGlzLnN5bWJvbE9iai5vdXRsaW5lLndpZHRoO1xyXG4gICAgICAgICAgICAgICAgbGV0IHJhZGl1cyA9IHRoaXMuc3ltYm9sT2JqLnNpemU7XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMub2xTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5DaXJjbGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogbmV3IG9sLnN0eWxlLkZpbGwoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGlubmVyQ29sb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sLnN0eWxlLlN0cm9rZSh7Y29sb3I6IG91dGVyQ29sb3IsIHdpZHRoOiBvdXRsaW5lV2lkdGh9KVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgc3R5bGU9XCJjb2xvcjogJHtpbm5lckNvbG9yfVwiPiYjOTY3OTs8L3NwYW4+YDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdlc3JpUE1TJzpcclxuICAgICAgICAgICAgICAgIHRoaXMub2xTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5JY29uKHtzcmM6IGBkYXRhOmltYWdlL3BuZztiYXNlNjQsJHt0aGlzLnN5bWJvbE9ialsnaW1hZ2VEYXRhJ119YH0pXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IGA8aW1nIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBoZWlnaHQ9XCIxN1wiIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwke3RoaXMuc3ltYm9sT2JqWydpbWFnZURhdGEnXX1cIj5gO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnN5bWJvbE9iaik7XHJcbiAgICAgICAgICAgICAgICBhbGVydCgnUG9pbnQgc3ltYm9sIGRvZXMgbm90IGhhbmRsZSBzeW1ib2wgdHlwZTogJyArIHRoaXMuc3ltYm9sT2JqWyd0eXBlJ10pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgTGluZVN5bWJvbCBleHRlbmRzIENvbW1vblN5bWJvbCB7XHJcbiAgICBjb25zdHJ1Y3RvcihzeW1ib2xPYmo6IEVzcmlTeW1ib2wsIG9wYWNpdHk6IG51bWJlcikge1xyXG4gICAgICAgIHN1cGVyKHN5bWJvbE9iaiwgb3BhY2l0eSk7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnN5bWJvbE9iai50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2VzcmlTTFMnOlxyXG4gICAgICAgICAgICAgICAgbGV0IGlubmVyQ29sb3IgPSBfY29sb3JBcnJheVRvUmdiYSh0aGlzLnN5bWJvbE9iai5jb2xvciwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgICAgIGxldCBsaW5lV2lkdGggPSB0aGlzLnN5bWJvbE9iai53aWR0aDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9sU3R5bGUgPSBuZXcgb2wuc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sLnN0eWxlLlN0cm9rZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbm5lckNvbG9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2xpbmVEYXNoOiBbNF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBsaW5lV2lkdGhcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sID0gYDxzcGFuIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGBzdHlsZT1cImA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGJhY2tncm91bmQtY29sb3I6ICR7aW5uZXJDb2xvcn07YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgd2lkdGg6IDQwcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgaGVpZ2h0OiA0cHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgcG9zaXRpb246IHJlbGF0aXZlO2A7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGRpc3BsYXk6IGlubGluZS1ibG9jaztgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGB0b3A6IC0xcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgXCI+PC9zcGFuPmA7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc3ltYm9sT2JqKTtcclxuICAgICAgICAgICAgICAgIGFsZXJ0KCdMaW5lIHN5bWJvbCBkb2VzIG5vdCBoYW5kbGUgc3ltYm9sIHR5cGU6ICcgKyB0aGlzLnN5bWJvbE9ialsndHlwZSddKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFBvbHlnb25TeW1ib2wgZXh0ZW5kcyBDb21tb25TeW1ib2wge1xyXG4gICAgY29uc3RydWN0b3Ioc3ltYm9sT2JqOiBFc3JpU3ltYm9sLCBvcGFjaXR5OiBudW1iZXIpIHtcclxuICAgICAgICBzdXBlcihzeW1ib2xPYmosIG9wYWNpdHkpO1xyXG4gICAgICAgIHN3aXRjaCAodGhpcy5zeW1ib2xPYmpbJ3R5cGUnXSkge1xyXG4gICAgICAgICAgICBjYXNlICdlc3JpU0ZTJzpcclxuICAgICAgICAgICAgICAgIGxldCBpbm5lckNvbG9yID0gX2NvbG9yQXJyYXlUb1JnYmEodGhpcy5zeW1ib2xPYmouY29sb3IsIHRoaXMub3BhY2l0eSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgb3V0ZXJDb2xvciA9IF9jb2xvckFycmF5VG9SZ2JhKHRoaXMuc3ltYm9sT2JqLm91dGxpbmUuY29sb3IsIHRoaXMub3BhY2l0eSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgb3V0bGluZVdpZHRoID0gdGhpcy5zeW1ib2xPYmoub3V0bGluZS53aWR0aDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9sU3R5bGUgPSBuZXcgb2wuc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sLnN0eWxlLlN0cm9rZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBvdXRlckNvbG9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2xpbmVEYXNoOiBbNF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBvdXRsaW5lV2lkdGhcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICBmaWxsOiBuZXcgb2wuc3R5bGUuRmlsbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbm5lckNvbG9yXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgYDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgc3R5bGU9XCJgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGBiYWNrZ3JvdW5kLWNvbG9yOiAke2lubmVyQ29sb3J9O2A7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGJvcmRlcjogc29saWQgJHtvdXRlckNvbG9yfSAxcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgd2lkdGg6IDQwcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgaGVpZ2h0OiA5cHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgcG9zaXRpb246IHJlbGF0aXZlO2A7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGRpc3BsYXk6IGlubGluZS1ibG9jaztgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGB0b3A6IDJweDtgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGBcIj48L3NwYW4+YDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc3ltYm9sT2JqKTtcclxuICAgICAgICAgICAgICAgIGFsZXJ0KCdQb2x5Z29uIHN5bWJvbCBkb2VzIGhhbmRsZSBzeW1ib2wgdHlwZTogJyArIHRoaXMuc3ltYm9sT2JqWyd0eXBlJ10pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgU3ltYm9sR2VuZXJhdG9yIHtcclxuICAgIG9wYWNpdHk6IG51bWJlcjtcclxuICAgIHJlbmRlcmVyOiBFc3JpUmVuZGVyZXI7XHJcbiAgICBsZWdlbmRIdG1sOiBzdHJpbmc7XHJcbiAgICBvbFN0eWxlOiBvbC5zdHlsZS5TdHlsZXxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuU3R5bGVGdW5jdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihlc3JpUmVzcG9uc2U6IEVzcmlSZXNwb25zZSkge1xyXG4gICAgICAgIHRoaXMub3BhY2l0eSA9ICgxMDAgLSAoZXNyaVJlc3BvbnNlWydkcmF3aW5nSW5mbyddWyd0cmFuc3BhcmVuY3knXSB8fCAwKSkgLyAxMDA7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IGVzcmlSZXNwb25zZS5kcmF3aW5nSW5mby5yZW5kZXJlcjtcclxuICAgICAgICB0aGlzLm9sU3R5bGUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5sZWdlbmRIdG1sID0gJyc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFNpbmdsZVN5bWJvbCBleHRlbmRzIFN5bWJvbEdlbmVyYXRvciB7XHJcbiAgICBzeW1ib2w6IEVzcmlTeW1ib2w7XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZXNyaVJlc3BvbnNlIC0gbGF5ZXIgaW5mb1xyXG4gICAgICogQHBhcmFtIFN5bWJvbENsYXNzIC0gdGhlIHN5bWJvbCBjbGFzcyB0byB1c2VcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoZXNyaVJlc3BvbnNlLCBTeW1ib2xDbGFzczogSUNvbW1vblN5bWJvbCkge1xyXG4gICAgICAgIHN1cGVyKGVzcmlSZXNwb25zZSk7XHJcbiAgICAgICAgdGhpcy5zeW1ib2wgPSB0aGlzLnJlbmRlcmVyLnN5bWJvbDtcclxuICAgICAgICBsZXQgc3ltYm9sT2JqID0gbmV3IFN5bWJvbENsYXNzKHRoaXMuc3ltYm9sLCB0aGlzLm9wYWNpdHkpO1xyXG4gICAgICAgIHRoaXMub2xTdHlsZSA9IHN5bWJvbE9iai5vbFN0eWxlO1xyXG4gICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IHN5bWJvbE9iai5sZWdlbmRIdG1sO1xyXG4gICAgfVxyXG59XHJcblxyXG5jbGFzcyBVbmlxdWVWYWx1ZVN5bWJvbCBleHRlbmRzIFN5bWJvbEdlbmVyYXRvciB7XHJcblxyXG4gICAgcHJvcGVydHlOYW1lOiBzdHJpbmc7XHJcbiAgICBkZWZhdWx0U3ltYm9sOiBFc3JpU3ltYm9sO1xyXG4gICAgZGVmYXVsdFN0eWxlOiBvbC5zdHlsZS5TdHlsZXxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuU3R5bGVGdW5jdGlvbjtcclxuICAgIGRlZmF1bHRMYWJlbEh0bWw6IHN0cmluZztcclxuICAgIGxhYmVsQXJyYXk6IEFycmF5PHN0cmluZz47XHJcbiAgICBsZWdlbmRBcnJheTogQXJyYXk8c3RyaW5nPjtcclxuICAgIHByb3BlcnR5U3R5bGVMb29rdXA6IE9iamVjdDtcclxuICAgIHZhbHVlQXJyYXk6IEFycmF5PGFueT47XHJcbiAgICB1bmlxdWVWYWx1ZUluZm9zOiBBcnJheTx7bGFiZWw6IHN0cmluZywgdmFsdWU6IGFueSwgc3ltYm9sOiBFc3JpU3ltYm9sfT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGVzcmlSZXNwb25zZSAtIGxheWVyIGluZm9cclxuICAgICAqIEBwYXJhbSBTeW1ib2xDbGFzcyAtIHRoZSBTeW1ib2wgY2xhc3MgZGVmaW5pdGlvblxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcihlc3JpUmVzcG9uc2U6IEVzcmlSZXNwb25zZSwgU3ltYm9sQ2xhc3M6IElDb21tb25TeW1ib2wpIHtcclxuICAgICAgICBzdXBlcihlc3JpUmVzcG9uc2UpO1xyXG4gICAgICAgIHRoaXMudW5pcXVlVmFsdWVJbmZvcyA9IHRoaXMucmVuZGVyZXJbJ3VuaXF1ZVZhbHVlSW5mb3MnXTtcclxuICAgICAgICB0aGlzLnByb3BlcnR5TmFtZSA9IHRoaXMucmVuZGVyZXJbJ2ZpZWxkMSddO1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdFN5bWJvbCA9IHRoaXMucmVuZGVyZXJbJ2RlZmF1bHRTeW1ib2wnXTtcclxuXHJcblxyXG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRTeW1ib2wpIHtcclxuICAgICAgICAgICAgbGV0IHN5bWJvbE9iaiA9IG5ldyBTeW1ib2xDbGFzcyh0aGlzLmRlZmF1bHRTeW1ib2wsIHRoaXMub3BhY2l0eSk7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFN0eWxlID0gc3ltYm9sT2JqLm9sU3R5bGU7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdExhYmVsSHRtbCA9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtodG1sRXNjYXBlKHRoaXMucmVuZGVyZXJbJ2RlZmF1bHRMYWJlbCddKX08L3NwYW4+YCArIHN5bWJvbE9iai5sZWdlbmRIdG1sO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFN0eWxlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRMYWJlbEh0bWwgPSAnb3RoZXInO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy52YWx1ZUFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sYWJlbEFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sZWdlbmRBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMucHJvcGVydHlTdHlsZUxvb2t1cCA9IHt9O1xyXG5cclxuICAgICAgICBmb3IgKGxldCB1bmlxdWVWYWwgb2YgdGhpcy51bmlxdWVWYWx1ZUluZm9zKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGFiZWxBcnJheS5wdXNoKHVuaXF1ZVZhbFsnbGFiZWwnXSk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVBcnJheS5wdXNoKHVuaXF1ZVZhbFsndmFsdWUnXSk7XHJcbiAgICAgICAgICAgIGxldCB1bmlxdWVTeW0gPSBuZXcgU3ltYm9sQ2xhc3ModW5pcXVlVmFsLnN5bWJvbCwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgdGhpcy5sZWdlbmRBcnJheS5wdXNoKGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtodG1sRXNjYXBlKHVuaXF1ZVZhbFsnbGFiZWwnXSl9PC9zcGFuPmAgKyB1bmlxdWVTeW0ubGVnZW5kSHRtbCk7XHJcbiAgICAgICAgICAgIHRoaXMucHJvcGVydHlTdHlsZUxvb2t1cFt1bmlxdWVWYWxbJ3ZhbHVlJ11dID0gdW5pcXVlU3ltLm9sU3R5bGU7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgdGhpcy5vbFN0eWxlID0gKGZlYXR1cmU6IG9sLkZlYXR1cmUpID0+IHtcclxuICAgICAgICAgICAgbGV0IGNoZWNrUHJvcGVydGllcyA9IGZlYXR1cmUuZ2V0UHJvcGVydGllcygpO1xyXG4gICAgICAgICAgICBsZXQgY2hlY2tQcm9wZXJ0eSA9IGNoZWNrUHJvcGVydGllc1t0aGlzLnByb3BlcnR5TmFtZV07XHJcblxyXG4gICAgICAgICAgICBsZXQgcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BlcnR5U3R5bGVMb29rdXBbY2hlY2tQcm9wZXJ0eV0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBbdGhpcy5wcm9wZXJ0eVN0eWxlTG9va3VwW2NoZWNrUHJvcGVydHldXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBbdGhpcy5kZWZhdWx0U3R5bGVdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdExhYmVsSHRtbCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmxlZ2VuZEFycmF5LnB1c2godGhpcy5kZWZhdWx0TGFiZWxIdG1sKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubGVnZW5kSHRtbCA9ICc8dWw+JztcclxuICAgICAgICBmb3IgKGxldCBoIG9mIHRoaXMubGVnZW5kQXJyYXkpIHtcclxuICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGA8bGk+JHtofTwvbGk+YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9ICc8L3VsPic7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4vKipcclxuICogc3R5bGUgYW5kIGxlZ2VuZCBvYmplY3RcclxuICogQHR5cGVkZWYge29iamVjdH0gc3R5bGVBbmRMZWdlbmRcclxuICogQHByb3BlcnR5IHtzdHlsZUZ1bmN9IHN0eWxlIC0gc3R5bGUgZnVuY3Rpb25cclxuICogQHByb3BlcnR5IHtzdHJpbmd9IGxlZ2VuZCAtIGxlZ2VuZCBjb250ZW50XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBlc3JpUmVzcG9uc2UgLSBsYXllciBpbmZvXHJcbiAqIEByZXR1cm5zIHtzdHlsZUFuZExlZ2VuZH0gc3R5bGUgYW5kIGxlZ2VuZCBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBtYWtlRmVhdHVyZVNlcnZpY2VMZWdlbmRBbmRTeW1ib2woZXNyaVJlc3BvbnNlOiBFc3JpUmVzcG9uc2UpIHtcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG4gICAgbGV0IHJlbmRlcmVyID0gZXNyaVJlc3BvbnNlLmRyYXdpbmdJbmZvLnJlbmRlcmVyO1xyXG4gICAgbGV0IHN5bWJvbExlZ2VuZE91dDogU3ltYm9sR2VuZXJhdG9yID0gbnVsbDtcclxuXHJcbiAgICBzd2l0Y2ggKHJlbmRlcmVyLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdzaW1wbGUnOlxyXG4gICAgICAgICAgICBzd2l0Y2ggKGVzcmlSZXNwb25zZS5nZW9tZXRyeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2VzcmlHZW9tZXRyeVBvaW50JzpcclxuICAgICAgICAgICAgICAgICAgICBzeW1ib2xMZWdlbmRPdXQgPSBuZXcgU2luZ2xlU3ltYm9sKGVzcmlSZXNwb25zZSwgUG9pbnRTeW1ib2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZXNyaUdlb21ldHJ5UG9seWxpbmUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbExlZ2VuZE91dCA9IG5ldyBTaW5nbGVTeW1ib2woZXNyaVJlc3BvbnNlLCBMaW5lU3ltYm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2VzcmlHZW9tZXRyeVBvbHlnb24nOlxyXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbExlZ2VuZE91dCA9IG5ldyBTaW5nbGVTeW1ib2woZXNyaVJlc3BvbnNlLCBQb2x5Z29uU3ltYm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXNyaVJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICBhbGVydChlc3JpUmVzcG9uc2UuZ2VvbWV0cnlUeXBlICsgJyBub3QgaGFuZGxlZCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3VuaXF1ZVZhbHVlJzpcclxuICAgICAgICAgICAgc3dpdGNoIChlc3JpUmVzcG9uc2UuZ2VvbWV0cnlUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdlc3JpR2VvbWV0cnlQb2ludCc6XHJcbiAgICAgICAgICAgICAgICAgICAgc3ltYm9sTGVnZW5kT3V0ID0gbmV3IFVuaXF1ZVZhbHVlU3ltYm9sKGVzcmlSZXNwb25zZSwgUG9pbnRTeW1ib2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZXNyaUdlb21ldHJ5UG9seWxpbmUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbExlZ2VuZE91dCA9IG5ldyBVbmlxdWVWYWx1ZVN5bWJvbChlc3JpUmVzcG9uc2UsIExpbmVTeW1ib2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZXNyaUdlb21ldHJ5UG9seWdvbic6XHJcbiAgICAgICAgICAgICAgICAgICAgc3ltYm9sTGVnZW5kT3V0ID0gbmV3IFVuaXF1ZVZhbHVlU3ltYm9sKGVzcmlSZXNwb25zZSwgUG9seWdvblN5bWJvbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVzcmlSZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxlcnQoZXNyaVJlc3BvbnNlWydnZW9tZXRyeVR5cGUnXSArICcgbm90IGhhbmRsZWQnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBhbGVydCgnbm90IGhhbmRsZWQgcmVuZGVyZXIgdHlwZTogJyArIHJlbmRlcmVyWyd0eXBlJ10pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzeW1ib2xMZWdlbmRPdXQgPT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiB7c3R5bGU6IHVuZGVmaW5lZCwgbGVnZW5kOiAnJ307XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB7c3R5bGU6IHN5bWJvbExlZ2VuZE91dC5vbFN0eWxlLCBsZWdlbmQ6IHN5bWJvbExlZ2VuZE91dC5sZWdlbmRIdG1sfTtcclxuICAgIH1cclxufVxyXG5cclxubm0ubWFrZUZlYXR1cmVTZXJ2aWNlTGVnZW5kQW5kU3ltYm9sID0gbWFrZUZlYXR1cmVTZXJ2aWNlTGVnZW5kQW5kU3ltYm9sO1xyXG5cclxuXHJcbi8qKlxyXG4gKlxyXG4gKiBAcGFyYW0ge29iamVjdH0gbHlyT2JqZWN0IC0gdGhlIGxheWVyIGFzIGRlZmluZWQgaW4gdGhlIHJlc3BvbnNlXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3NraXBMYXllck5hbWVBbmRFeHBhbmRlcj1mYWxzZV0gdXNlIG9ubHkgaWNvbnNcclxuICogQHJldHVybnMge3N0cmluZ30gbGVnZW5kIGh0bWxcclxuICovXHJcbmZ1bmN0aW9uIG1hcFNlcnZpY2VMZWdlbmRJdGVtKGx5ck9iamVjdCwgc2tpcExheWVyTmFtZUFuZEV4cGFuZGVyOiBib29sZWFuID0gZmFsc2UpIHtcclxuXHJcblxyXG4gICAgc2tpcExheWVyTmFtZUFuZEV4cGFuZGVyID0gdHlwZW9mIHNraXBMYXllck5hbWVBbmRFeHBhbmRlciA9PSAnYm9vbGVhbicgPyBza2lwTGF5ZXJOYW1lQW5kRXhwYW5kZXIgOiBmYWxzZTtcclxuICAgIGxldCBsYXllck5hbWUgPSBseXJPYmplY3RbJ2xheWVyTmFtZSddO1xyXG4gICAgbGV0IGxlZ2VuZEl0ZW1zID0gbHlyT2JqZWN0WydsZWdlbmQnXTtcclxuICAgIGxldCBsZWdlbmRIdG1sID0gJyc7XHJcblxyXG4gICAgaWYgKCFza2lwTGF5ZXJOYW1lQW5kRXhwYW5kZXIpIHtcclxuICAgICAgICBsZWdlbmRIdG1sICs9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtsYXllck5hbWV9PC9zcGFuPmA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGxlZ2VuZEl0ZW1zLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgbGVnZW5kSHRtbCA9IGA8aW1nIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBoZWlnaHQ9XCIxN1wiIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwke2xlZ2VuZEl0ZW1zWzBdWydpbWFnZURhdGEnXX1cIj5gO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoIXNraXBMYXllck5hbWVBbmRFeHBhbmRlcikge1xyXG4gICAgICAgICAgICBsZWdlbmRIdG1sICs9ICc8c3BhbiBjbGFzcz1cImxlZ2VuZC1pdGVtcy1leHBhbmRlclwiIHRpdGxlPVwiRXhwYW5kL0NvbGxhcHNlXCI+JiM5NjYwOzwvc3Bhbj4nO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZWdlbmRIdG1sICs9ICc8dWw+JztcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlZ2VuZEl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxlZ2VuZEh0bWwgKz0gYDxsaT5gO1xyXG4gICAgICAgICAgICBsZWdlbmRIdG1sICs9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtodG1sRXNjYXBlKGxlZ2VuZEl0ZW1zW2ldWydsYWJlbCddKX08L3NwYW4+YDtcclxuICAgICAgICAgICAgbGVnZW5kSHRtbCArPSBgPGltZyBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgaGVpZ2h0PVwiMTdcIiBzcmM9XCJkYXRhOmltYWdlL3BuZztiYXNlNjQsJHtsZWdlbmRJdGVtc1tpXVsnaW1hZ2VEYXRhJ119XCI+YDtcclxuICAgICAgICAgICAgbGVnZW5kSHRtbCArPSBgPC9saT5gO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZWdlbmRIdG1sICs9ICc8L3VsPic7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFza2lwTGF5ZXJOYW1lQW5kRXhwYW5kZXIpIHtcclxuICAgICAgICBsZWdlbmRIdG1sID0gYDxzcGFuIGNsYXNzPVwibGVnZW5kLWxheWVyLXN1Yml0ZW1cIj4ke2xheWVyTmFtZX08L3NwYW4+YCArIGxlZ2VuZEh0bWw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGxlZ2VuZEh0bWw7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBtYWtlIG1hcCBzZXJ2aWNlIGxlZ2VudFxyXG4gKiBAcGFyYW0ge29iamVjdH0gZXNyaVJlc3BvbnNlIC0gbGF5ZXIgaW5mb1xyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBsZWdlbmQgY29udGVudFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VNYXBTZXJ2aWNlTGVnZW5kKGVzcmlSZXNwb25zZSkge1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG4gICAgbGV0IG5ld0xlZ2VuZEh0bWwgPSAnJztcclxuXHJcbiAgICBsZXQgbGF5ZXJzID0gZXNyaVJlc3BvbnNlWydsYXllcnMnXTtcclxuXHJcbiAgICBpZiAobGF5ZXJzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgbmV3TGVnZW5kSHRtbCArPSBtYXBTZXJ2aWNlTGVnZW5kSXRlbShsYXllcnNbMF0sIHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdMZWdlbmRIdG1sICs9ICc8dWw+JztcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxheWVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBuZXdMZWdlbmRIdG1sICs9ICc8bGk+JyArIG1hcFNlcnZpY2VMZWdlbmRJdGVtKGxheWVyc1tpXSkgKyAnPC9saT4nO1xyXG4gICAgICAgIH1cclxuICAgICAgICBuZXdMZWdlbmRIdG1sICs9ICc8L3VsPic7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5ld0xlZ2VuZEh0bWw7XHJcbn1cclxuXHJcbm5tLm1ha2VNYXBTZXJ2aWNlTGVnZW5kID0gbWFrZU1hcFNlcnZpY2VMZWdlbmQ7XHJcbiJdfQ== /***/ }), /* 16 */ @@ -2435,7 +2435,7 @@ var LayerLegend = (function () { }()); nm.LayerLegend = LayerLegend; exports.default = LayerLegend; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJMZWdlbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJMYXllckxlZ2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsMkNBQXNDO0FBQ3RDLDZDQUF3QztBQUN4QyxnREFBMkM7QUFFM0MsSUFBSSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNoQywwQkFBNkI7QUFFN0I7SUFpQkk7Ozs7Ozs7T0FPRztJQUNILG9CQUFZLFdBQVksRUFBRSxNQUFPO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUV0QixFQUFFLENBQUMsQ0FBQyxPQUFPLFdBQVcsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFD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RSxPQUFPLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUwsa0JBQUM7QUFBRCxDQUFDLEFBbEpELElBa0pDO0FBRUQsRUFBRSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDN0Isa0JBQWUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTYvMjAxNS5cclxuICovXHJcblxyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFrZUd1aWQgZnJvbSAnLi4vdXRpbC9tYWtlR3VpZCc7XHJcbmltcG9ydCBtYXBNb3ZlIGZyb20gJy4uL29sSGVscGVycy9tYXBNb3ZlJztcclxuXHJcbmxldCBubSA9IHByb3ZpZGUoJ2NvbGxlY3Rpb25zJyk7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcblxyXG5jbGFzcyBMYXllckdyb3VwIHtcclxuICAgIGdyb3VwTGF5ZXJzOiBhbnk7XHJcbiAgICBncm91cExheWVyc0xvb2t1cDogYW55O1xyXG4gICAgZ3JvdXBHcm91cHNMb29rdXA6IGFueTtcclxuICAgIGdyb3VwR3JvdXBzOiBhbnk7XHJcbiAgICBpdGVtSWRBcnJheTogYW55O1xyXG4gICAgZ3JvdXBJZDogYW55O1xyXG4gICAgZ3JvdXBOYW1lOiBhbnk7XHJcbiAgICBhbGxMYXllckFycmF5OiBhbnk7XHJcbiAgICBwYXJlbnQ6IGFueTtcclxuICAgIGFsbEdyb3VwQXJyYXk6IGFueTtcclxuICAgIGFsbEdyb3VwTG9va3VwOiBhbnk7XHJcbiAgICBhbGxMYXllckxvb2t1cDogYW55O1xyXG4gICAgY29sbGFwc2U6IGFueTtcclxuICAgIGFkZENoZWNrOiBhbnk7XHJcbiAgICBsYXllclBhcmVudExvb2t1cDogYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbZ3JvdXBDb25maWc9e31dIC0gZ3JvdXAgY29uZmlndXJhdGlvbiBvYmplY3RcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBncm91cENvbmZpZy5ncm91cE5hbWUgLSB0aGUgZ3JvdXAgbmFtZVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZ3JvdXBDb25maWcuY29sbGFwc2U9ZmFsc2VdIC0gaWYgdGhlIGdyb3VwIHNob3VsZCBiZSBjb2xsYXBzZWQgaW5pdGlhbGx5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtncm91cENvbmZpZy5hZGRDaGVjaz10cnVlXSAtIGlmIHRoZSBncm91cCBzaG91bGQgaGF2ZSBhIGNoZWNrYm94IGNvbnRyb2xsaW5nIHZpc2liaWxpdHkgb2YgYWxsIGxheWVyc1xyXG4gICAgICogQHBhcmFtIHtMYXllckdyb3VwfSBbcGFyZW50PXVuZGVmaW5lZF0gLSB0aGUgcGFyZW50IGdyb3VwXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGdyb3VwQ29uZmlnPywgcGFyZW50Pykge1xyXG4gICAgICAgIHRoaXMuZ3JvdXBMYXllcnMgPSBbXTtcclxuICAgICAgICB0aGlzLmdyb3VwTGF5ZXJzTG9va3VwID0ge307XHJcbiAgICAgICAgdGhpcy5ncm91cEdyb3VwcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuZ3JvdXBHcm91cHNMb29rdXAgPSB7fTtcclxuICAgICAgICB0aGlzLml0ZW1JZEFycmF5ID0gW107XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgZ3JvdXBDb25maWcgPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnQgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLmdyb3VwSWQgPSAncm9vdCc7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBOYW1lID0gJ3Jvb3QnO1xyXG4gICAgICAgICAgICB0aGlzLmFsbEdyb3VwTG9va3VwID0ge3Jvb3Q6IHRoaXN9O1xyXG4gICAgICAgICAgICB0aGlzLmFsbEdyb3VwQXJyYXkgPSBbdGhpc107XHJcbiAgICAgICAgICAgIHRoaXMuYWxsTGF5ZXJBcnJheSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmFsbExheWVyTG9va3VwID0ge307XHJcbiAgICAgICAgICAgIHRoaXMubGF5ZXJQYXJlbnRMb29rdXAgPSB7fTtcclxuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmFkZENoZWNrID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cElkID0gbWFrZUd1aWQoKTtcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBOYW1lID0gZ3JvdXBDb25maWcuZ3JvdXBOYW1lO1xyXG4gICAgICAgICAgICB0aGlzLmNvbGxhcHNlID0gdHlwZW9mICBncm91cENvbmZpZy5jb2xsYXBzZSA9PSAnYm9vbGVhbicgPyBncm91cENvbmZpZy5jb2xsYXBzZSA6IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmFkZENoZWNrID0gdHlwZW9mICBncm91cENvbmZpZy5hZGRDaGVjayA9PSAnYm9vbGVhbicgPyBncm91cENvbmZpZy5hZGRDaGVjayA6IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBncm91cENvbmZpZyAtIGNvbmZpZ3VyYXRpb24gb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZ3JvdXBDb25maWcuZ3JvdXBOYW1lIC0gdGhlIGdyb3VwIG5hbWVcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZ3JvdXBDb25maWcuY29sbGFwc2UgaWYgdGhlIGdyb3VwIHNob3VsZCBiZSBjb2xsYXBzZWQgaW5pdGlhbGx5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGdyb3VwQ29uZmlnLmFkZENoZWNrIGlmIHRoZSBncm91cCBzaG91bGQgaGF2ZSBhIGNoZWNrYm94IGNvbnRyb2xsaW5nIHZpc2liaWxpdHkgb2YgYWxsIGxheWVyc1xyXG4gICAgICogQHBhcmFtIHtBcnJheTxMYXllckdyb3VwPn0gcGFyZW50cyBwYXJlbnQgZ3JvdXBzXHJcbiAgICAgKiBAcmV0dXJucyB7TGF5ZXJHcm91cH0gdGhlIGxheWVyIGdyb3VwIGp1c3QgYWRkZWRcclxuICAgICAqL1xyXG4gICAgYWRkR3JvdXAoZ3JvdXBDb25maWcsIHBhcmVudHMpIHtcclxuICAgICAgICBsZXQgcGFyZW50O1xyXG4gICAgICAgIGlmIChwYXJlbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50c1twYXJlbnRzLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHBhcmVudCA9ICdyb290JztcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAdHlwZSB7TGF5ZXJHcm91cH1cclxuICAgICAgICAgKi9cclxuICAgICAgICBsZXQgcGFyZW50R3JvdXAgPSB0aGlzLmFsbEdyb3VwTG9va3VwW3BhcmVudF07XHJcbiAgICAgICAgbGV0IG5ld0dyb3VwID0gbmV3IExheWVyR3JvdXAoZ3JvdXBDb25maWcsIHBhcmVudEdyb3VwKTtcclxuICAgICAgICB0aGlzLmFsbEdyb3VwTG9va3VwW25ld0dyb3VwLmdyb3VwSWRdID0gbmV3R3JvdXA7XHJcbiAgICAgICAgdGhpcy5hbGxHcm91cEFycmF5LnB1c2gobmV3R3JvdXApO1xyXG5cclxuICAgICAgICBwYXJlbnRHcm91cC5ncm91cEdyb3Vwcy5wdXNoKG5ld0dyb3VwKTtcclxuICAgICAgICBwYXJlbnRHcm91cC5ncm91cEdyb3Vwc0xvb2t1cFtuZXdHcm91cC5ncm91cElkXSA9IG5ld0dyb3VwO1xyXG5cclxuICAgICAgICBpZiAocGFyZW50R3JvdXAuaXRlbUlkQXJyYXkuaW5kZXhPZihuZXdHcm91cC5ncm91cElkKSA+IDApIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2cobmV3R3JvdXAuZ3JvdXBJZCk7XHJcbiAgICAgICAgICAgIHRocm93ICdsYXllciBhbmQgZ3JvdXAgaWRzIG11c3QgYmUgdW5pcXVlJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcGFyZW50R3JvdXAuaXRlbUlkQXJyYXkucHVzaChuZXdHcm91cC5ncm91cElkKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ld0dyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJCYXNlfSBuZXdMYXllciB0aGUgbGF5ZXIgdG8gYmUgYWRkZWRcclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHBhcmVudHMgYXJyYXlcclxuICAgICAqL1xyXG4gICAgYWRkTGVnZW5kTGF5ZXIobmV3TGF5ZXIsIHBhcmVudHMpIHtcclxuICAgICAgICBsZXQgcGFyZW50O1xyXG4gICAgICAgIGlmIChwYXJlbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50c1twYXJlbnRzLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHBhcmVudCA9ICdyb290JztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWxsTGF5ZXJMb29rdXBbbmV3TGF5ZXIuaWRdID0gbmV3TGF5ZXI7XHJcbiAgICAgICAgdGhpcy5hbGxMYXllckFycmF5LnB1c2gobmV3TGF5ZXIpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAdHlwZSB7TGF5ZXJHcm91cH1cclxuICAgICAgICAgKi9cclxuICAgICAgICBsZXQgcGFyZW50R3JvdXAgPSB0aGlzLmFsbEdyb3VwTG9va3VwW3BhcmVudF07XHJcblxyXG4gICAgICAgIHBhcmVudEdyb3VwLmdyb3VwTGF5ZXJzLnB1c2gobmV3TGF5ZXIpO1xyXG4gICAgICAgIHBhcmVudEdyb3VwLmdyb3VwTGF5ZXJzTG9va3VwW25ld0xheWVyLmlkXSA9IG5ld0xheWVyO1xyXG4gICAgICAgIGlmIChwYXJlbnRHcm91cC5pdGVtSWRBcnJheS5pbmRleE9mKG5ld0xheWVyLmlkKSA+IDApIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2cobmV3TGF5ZXIuaWQpO1xyXG4gICAgICAgICAgICB0aHJvdyAnbGF5ZXIgYW5kIGdyb3VwIGlkcyBtdXN0IGJlIHVuaXF1ZSc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBhcmVudEdyb3VwLml0ZW1JZEFycmF5LnB1c2gobmV3TGF5ZXIuaWQpO1xyXG5cclxuICAgICAgICB0aGlzLmxheWVyUGFyZW50TG9va3VwW25ld0xheWVyLmlkXSA9IHBhcmVudEdyb3VwO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBnZXRMZWdlbmRIdG1sKGxlZ2VuZElkLCBvcHRpb25zKSB7XHJcblxyXG5cclxuICAgICAgICBsZXQgbGVnZW5kSHRtbCA9IGA8dWwgaWQ9XCIke2xlZ2VuZElkfVwiIGNsYXNzPVwibGVnZW5kLWNvbnRhaW5lclwiPmA7XHJcblxyXG4gICAgICAgIGxlZ2VuZEh0bWwgKz0gYDxsaT4ke29wdGlvbnMubGVnZW5kVGl0bGV9PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNoZWNrZWQgaWQ9XCJzdXBwcmVzcy1ieS1leHRlbnQtJHtsZWdlbmRJZH1cIiBjbGFzcz1cInN1cHByZXNzLWJ5LWV4dGVudFwiPmAgK1xyXG4gICAgICAgICAgICBgPGxhYmVsIHRpdGxlPVwiU3VwcHJlc3MgbGF5ZXJzIG5vdCB2aXNpYmxlIGF0IHRoaXMgem9vbSBsZXZlbFwiIGZvcj1cInN1cHByZXNzLWJ5LWV4dGVudC0ke2xlZ2VuZElkfVwiPmAgK1xyXG4gICAgICAgICAgICBgPHNwYW4+PC9zcGFuPmAgK1xyXG4gICAgICAgICAgICBgPC9sYWJlbD48L2xpPmA7XHJcblxyXG4gICAgICAgIGxlZ2VuZEh0bWwgKz0gdGhpcy5fYnVpbGRMZWdlbmQodGhpcy5pdGVtSWRBcnJheSwgdGhpcywgb3B0aW9ucy5sYXllckRpdkNsYXNzZXMpICsgJzwvdWw+JztcclxuXHJcbiAgICAgICAgcmV0dXJuIGxlZ2VuZEh0bWw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBpdGVtSWRzIHRoZSBpdGVtcyB0byBwcm9jZXNzXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyR3JvdXB9IHRoZUdyb3VwIG5ldyBncm91cFxyXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2xheWVyRGl2Q2xhc3Nlcz1bXV0gb3B0aW9uYWwgY2xhc3NlcyB0byBhcHBseSB0byB0aGUgbGF5ZXIgZGl2c1xyXG4gICAgICogQHN0YXRpY1xyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gaHRtbCBzdHJpbmdcclxuICAgICAqL1xyXG4gICAgX2J1aWxkTGVnZW5kKGl0ZW1JZHMsIHRoZUdyb3VwLCBsYXllckRpdkNsYXNzZXMpIHtcclxuXHJcbiAgICAgICAgaWYgKGl0ZW1JZHMubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHRoZUhtbCA9ICcnO1xyXG5cclxuICAgICAgICBsZXQgaXRlbUlkID0gaXRlbUlkc1swXTtcclxuXHJcbiAgICAgICAgaWYgKHRoZUdyb3VwLmdyb3VwTGF5ZXJzTG9va3VwW2l0ZW1JZF0pIHtcclxuXHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBAdHlwZSB7TGF5ZXJCYXNlfVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgbGV0IGx5ciA9IHRoZUdyb3VwLmdyb3VwTGF5ZXJzTG9va3VwW2l0ZW1JZF07XHJcbiAgICAgICAgICAgIHRoZUhtbCArPSBgPGxpIGlkPVwiJHtseXIuaWR9LWxheWVyLWxpXCIgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbGkgJHtsYXllckRpdkNsYXNzZXMuam9pbignICcpfVwiPmAgKyBseXIuZ2V0TGVnZW5kRGl2KCkgKyAnPC9saT4nO1xyXG5cclxuXHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGVHcm91cC5ncm91cEdyb3Vwc0xvb2t1cFtpdGVtSWRdKSB7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiB0eXBlIHtMYXllckdyb3VwfVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgbGV0IG90aGVyR3JvdXAgPSB0aGVHcm91cC5ncm91cEdyb3Vwc0xvb2t1cFtpdGVtSWRdO1xyXG5cclxuICAgICAgICAgICAgdGhlSG1sICs9IGA8bGk+YDtcclxuICAgICAgICAgICAgdGhlSG1sICs9IGA8ZGl2IGlkPVwiJHtvdGhlckdyb3VwLmdyb3VwSWR9LWxlZ2VuZC1sYXllci1kaXZcIiBgICtcclxuICAgICAgICAgICAgICAgIGBjbGFzcz1cImxlZ2VuZC1sYXllci1ncm91cCAgJHtsYXllckRpdkNsYXNzZXMuam9pbignICcpfVwiPmA7XHJcblxyXG4gICAgICAgICAgICBpZiAob3RoZXJHcm91cC5hZGRDaGVjaykge1xyXG4gICAgICAgICAgICAgICAgdGhlSG1sICs9IGA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2hlY2tlZCBpZD1cIiR7b3RoZXJHcm91cC5ncm91cElkfS1ncm91cC1jaGNrXCI+YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYDxsYWJlbCBmb3I9XCIke290aGVyR3JvdXAuZ3JvdXBJZH0tZ3JvdXAtY2hja1wiIHRpdGxlPVwiQ2xpY2sgYXJyb3cgdG8gZXhwYW5kIG9yIGNvbGxhcHNlXCI+JHtvdGhlckdyb3VwLmdyb3VwTmFtZX08L2xhYmVsPmA7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGVIbWwgKz0gYDxsYWJlbCB0aXRsZT1cIkNsaWNrIGFycm93IHRvIGV4cGFuZCBvciBjb2xsYXBzZVwiPiR7b3RoZXJHcm91cC5ncm91cE5hbWV9PC9sYWJlbD5gO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGVIbWwgKz0gYDxzcGFuIHRpdGxlPVwiRXhwYW5kL0NvbGxhcHNlXCIgY2xhc3M9XCJsYXllci1ncm91cC1leHBhbmRlcmA7XHJcbiAgICAgICAgICAgIHRoZUhtbCArPSBgJHtvdGhlckdyb3VwLmNvbGxhcHNlID8gJyBsZWdlbmQtbGF5ZXItZ3JvdXAtaW5pdGlhbC1jb2xsYXBzZScgOiAnJ31cIj5gO1xyXG4gICAgICAgICAgICB0aGVIbWwgKz0gb3RoZXJHcm91cC5jb2xsYXBzZSA/ICcmIzk2NTQ7JyA6ICcmIzk2NjA7JztcclxuICAgICAgICAgICAgdGhlSG1sICs9ICc8L3NwYW4+JztcclxuXHJcbiAgICAgICAgICAgIC8vcGFyZW50cy5wdXNoKGdyb3VwSWQpO1xyXG4gICAgICAgICAgICB0aGVIbWwgKz0gJzx1bD4nICsgdGhpcy5fYnVpbGRMZWdlbmQob3RoZXJHcm91cC5pdGVtSWRBcnJheSwgb3RoZXJHcm91cCwgbGF5ZXJEaXZDbGFzc2VzKSArICc8L3VsPic7XHJcbiAgICAgICAgICAgIHRoZUhtbCArPSAnPC9kaXY+JztcclxuICAgICAgICAgICAgdGhlSG1sICs9ICc8L2xpPic7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhlSG1sICsgdGhpcy5fYnVpbGRMZWdlbmQoaXRlbUlkcy5zbGljZSgxKSwgdGhlR3JvdXAsIGxheWVyRGl2Q2xhc3Nlcyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBhIHdyYXBwZXIgdG8gbWFrZSBhIGxlZ2VuZFxyXG4gKi9cclxuY2xhc3MgTGF5ZXJMZWdlbmQge1xyXG5cclxuICAgICRkaXZFbGVtZW50OiBhbnk7XHJcbiAgICBfbGVnZW5kSXRlbXM6IGFueTtcclxuICAgIGxheWVyR3JvdXA6IGFueTtcclxuICAgIGxlZ2VuZElkOiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtBcnJheX0gbGVnZW5kSXRlbXMgYXJyYXkgb2YgbGF5ZXJzIG9yIG9iamVjdHMgd2l0aCB7Z3JvdXBOYW1lOiAge3N0cmluZ30sIGNvbGxhcHNlOiB7Ym9vbGVhbn0sIGFkZENoZWNrOiB7Ym9vbGVhbn0sIGl0ZW1zOiB7QXJyYXl9fVxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGRpdklkIHRoZSBkaXYgd2hlcmUgdGhlIGxlZ2VuZCBzaG91bGQgYmUgYWRkZWRcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIGZvciBsZWdlbmRcclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtvcHRpb25zLmxheWVyRGl2Q2xhc3Nlcz1bXV0gb3B0aW9uYWwgYXJyYXkgb2YgY2xhc3NlcyB0byBiZSBhcHBsaWVkIHRvIHRoZSBsYXllciBsZWdlbmQgZGl2cyBmb3IgY3VzdG9tIHN0eWxpbmdcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5sZWdlbmRUaXRsZT1MZWdlbmRdIHRoZSBsZWdlbmQgdGl0bGVcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuc2NhbGVEZXBlbmRlbnQ9dHJ1ZV0gaWYgbGVnZW5kIGRpc3BsYXkgaXMgc2NhbGUgZGVwZW5kZW50XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGxlZ2VuZEl0ZW1zLCBkaXZJZCwgb3B0aW9ucykge1xyXG4gICAgICAgIGZvciAobGV0IGkgb2YgbGVnZW5kSXRlbXMpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBpID09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyAndW5kZWZpbmVkIGl0ZW0gcGFzc2VkIGluIGFycmF5IHRvIGxlZ2VuZCBjb25zdHJ1Y3Rvcic7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xyXG5cclxuICAgICAgICBvcHRpb25zLmxlZ2VuZFRpdGxlID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kVGl0bGUgPT0gJ3N0cmluZycgPyBvcHRpb25zLmxlZ2VuZFRpdGxlIDogJ0xlZ2VuZCc7XHJcbiAgICAgICAgb3B0aW9ucy5zY2FsZURlcGVuZGVudCA9IHR5cGVvZiBvcHRpb25zLnNjYWxlRGVwZW5kZW50ID09ICdib29sZWFuJyA/IG9wdGlvbnMuc2NhbGVEZXBlbmRlbnQgOiB0cnVlO1xyXG4gICAgICAgIG9wdGlvbnMubGF5ZXJEaXZDbGFzc2VzID0gb3B0aW9ucy5sYXllckRpdkNsYXNzZXMgfHwgW107XHJcblxyXG4gICAgICAgIC8vIGlmIGxlZ2VuZCBkaXNwbGF5IGlzIHNjYWxlIGRlcGVuZGVudCwgbWFrZSBzdXJlIHRoZSBtYXBNb3ZlIG9iamVjdCBpcyBpbml0aWFsaXplZCBmaXJzdFxyXG4gICAgICAgIGlmIChvcHRpb25zLnNjYWxlRGVwZW5kZW50KSB7XHJcbiAgICAgICAgICAgIG1hcE1vdmUuY2hlY2tJbml0KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLiRkaXZFbGVtZW50ID0gJCgnIycgKyBkaXZJZCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZEl0ZW1zID0gbGVnZW5kSXRlbXM7XHJcblxyXG4gICAgICAgIHRoaXMubGF5ZXJHcm91cCA9IG5ldyBMYXllckdyb3VwKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2J1aWxkVHJlZShsZWdlbmRJdGVtcyk7XHJcblxyXG4gICAgICAgIHRoaXMubGVnZW5kSWQgPSBtYWtlR3VpZCgpO1xyXG5cclxuICAgICAgICB0aGlzLiRkaXZFbGVtZW50LmFwcGVuZCh0aGlzLmxheWVyR3JvdXAuZ2V0TGVnZW5kSHRtbCh0aGlzLmxlZ2VuZElkLCBvcHRpb25zKSk7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGwgb2YgdGhpcy5sYXllckdyb3VwLmFsbExheWVyQXJyYXkpe1xyXG4gICAgICAgICAgICBsLmFwcGx5Q29sbGFwc2UoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgLy8vLyBpZiBsZWdlbmQgZGlzcGxheSBpcyBzY2FsZSBkZXBlbmRlbnQsIG1ha2Ugc3VyZSB0aGUgbWFwTW92ZSBvYmplY3QgaXMgaW5pdGlhbGl6ZWQgZmlyc3RcclxuICAgICAgICBpZiAob3B0aW9ucy5zY2FsZURlcGVuZGVudCkge1xyXG4gICAgICAgICAgICBtYXBNb3ZlLmNoZWNrSW5pdCgpO1xyXG5cclxuICAgICAgICAgICAgbWFwTW92ZS5hZGRDYWxsYmFjayhmdW5jdGlvbiAoZXh0LCB6b29tLCBldnQpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGV2dCA9PSAndW5kZWZpbmVkJyB8fCBldnQgPT0gJ2NoYW5nZTpyZXNvbHV0aW9uJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGx5ciBvZiB0aGlzLmxheWVyR3JvdXAuYWxsTGF5ZXJBcnJheSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgJGx5ckxpID0gJCgnIycgKyBseXIuaWQgKyAnLWxheWVyLWxpJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh6b29tID4gbHlyLm1heFpvb20gfHwgem9vbSA8IGx5ci5taW5ab29tKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbHlyTGkuYWRkQ2xhc3MoJ2xheWVyLW5vdC12aXNpYmxlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbHlyTGkucmVtb3ZlQ2xhc3MoJ2xheWVyLW5vdC12aXNpYmxlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sIHRoaXMsIDEwMCwgdHJ1ZSwgJ2xlZ2VuZDEnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIDxlZGl0b3ItZm9sZCBkZXNjPVwiYWRkIGV2ZW50IGxpc3RlbmVyc1wiPlxyXG5cclxuICAgICAgICB0aGlzLiRkaXZFbGVtZW50LmZpbmQoXCIuc3VwcHJlc3MtYnktZXh0ZW50XCIpLmNoYW5nZShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGxldCBsZWdlbmRMYXllckxpcyA9ICQoJy5sZWdlbmQtbGF5ZXItbGknKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tlZCkge1xyXG4gICAgICAgICAgICAgICAgbGVnZW5kTGF5ZXJMaXMucmVtb3ZlQ2xhc3MoJ2xheWVyLWZvcmNlLXNob3cnKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGxlZ2VuZExheWVyTGlzLmFkZENsYXNzKCdsYXllci1mb3JjZS1zaG93Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuJGRpdkVsZW1lbnQuZmluZCgnLmxlZ2VuZC1jaGVjaycpLmNoYW5nZShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGxldCBseXJJZCA9IHRoaXMuaWQucmVwbGFjZSgnLWxlZ2VuZC1sYXllci1jaGVjaycsICcnKTtcclxuICAgICAgICAgICAgX3RoaXMubGF5ZXJHcm91cC5hbGxMYXllckxvb2t1cFtseXJJZF0udmlzaWJsZSA9IHRoaXMuY2hlY2tlZDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy4kZGl2RWxlbWVudC5maW5kKCcubGVnZW5kLWxheWVyLWdyb3VwID4gaW5wdXRbdHlwZT1jaGVja2JveF0nKS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAkKHRoaXMpLnNpYmxpbmdzKCd1bCcpLmZpbmQoJ2lucHV0W3R5cGU9Y2hlY2tib3hdJykucHJvcCgnY2hlY2tlZCcsIHRoaXMuY2hlY2tlZCkudHJpZ2dlcignY2hhbmdlJyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuJGRpdkVsZW1lbnQuZmluZCgnLmxheWVyLWdyb3VwLWV4cGFuZGVyJykuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBsZXQgJHRoaXMgPSAkKHRoaXMpO1xyXG4gICAgICAgICAgICAkdGhpcy5yZW1vdmVDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWluaXRpYWwtY29sbGFwc2UnKTtcclxuXHJcbiAgICAgICAgICAgICR0aGlzLnNpYmxpbmdzKCd1bCcpLnNsaWRlVG9nZ2xlKCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoJHRoaXMuaGFzQ2xhc3MoJ2xlZ2VuZC1sYXllci1ncm91cC1jb2xsYXBzZWQnKSl7XHJcbiAgICAgICAgICAgICAgICAkdGhpcy5yZW1vdmVDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpO1xyXG4gICAgICAgICAgICAgICAgJHRoaXMuaHRtbCgnJiM5NjYwOycpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgJHRoaXMuYWRkQ2xhc3MoJ2xlZ2VuZC1sYXllci1ncm91cC1jb2xsYXBzZWQnKTtcclxuICAgICAgICAgICAgICAgICR0aGlzLmh0bWwoJyYjOTY1NDsnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLiRkaXZFbGVtZW50LmZpbmQoJy5sZWdlbmQtbGF5ZXItZ3JvdXAtaW5pdGlhbC1jb2xsYXBzZScpLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgLy8gPC9lZGl0b3ItZm9sZD5cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbbGVnZW5kSXRlbXM9dGhpcy5fbGF5ZXJDb25maWddIHRoZSBsZWdlbmQgaXRlbXNcclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtwYXJlbnRzPVtdXSB0aGUgb3JkZXJlZCBsaXN0IG9mIGdyb3VwcyBpbiB3aGljaCB0aGlzIGl0ZW0gaXMgYSBtZW1iZXJcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIF9idWlsZFRyZWUobGVnZW5kSXRlbXMsIHBhcmVudHM/KSB7XHJcblxyXG4gICAgICAgIGlmIChsZWdlbmRJdGVtcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgb25lSXRlbSA9IGxlZ2VuZEl0ZW1zWzBdO1xyXG5cclxuICAgICAgICAvL3Jlc2V0IHRoZSBwYXJlbnQgaWYgdGhlIGl0ZW0gaXMgaW4gdGhlIGJhc2UgYXJyYXlcclxuICAgICAgICBpZiAodGhpcy5fbGVnZW5kSXRlbXMuaW5kZXhPZihvbmVJdGVtKSA+IC0xIHx8IHR5cGVvZiBwYXJlbnRzID09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIHBhcmVudHMgPSBbXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb25lSXRlbVsnZ3JvdXBOYW1lJ10gIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIGxldCBncm91cEl0ZW0gPSBsZWdlbmRJdGVtc1swXTtcclxuICAgICAgICAgICAgbGV0IG5ld0dyb3VwID0gdGhpcy5sYXllckdyb3VwLmFkZEdyb3VwKGdyb3VwSXRlbSwgcGFyZW50cyk7XHJcbiAgICAgICAgICAgIHBhcmVudHMucHVzaChuZXdHcm91cC5ncm91cElkKTtcclxuICAgICAgICAgICAgdGhpcy5fYnVpbGRUcmVlKGdyb3VwSXRlbS5pdGVtcywgcGFyZW50cyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEB0eXBlIHtMYXllckJhc2V9XHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBsZXQgbGF5ZXJJdGVtID0gbGVnZW5kSXRlbXNbMF07XHJcblxyXG4gICAgICAgICAgICB0aGlzLmxheWVyR3JvdXAuYWRkTGVnZW5kTGF5ZXIobGF5ZXJJdGVtLCBwYXJlbnRzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2J1aWxkVHJlZShsZWdlbmRJdGVtcy5zbGljZSgxKSwgcGFyZW50cyk7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5ubS5MYXllckxlZ2VuZCA9IExheWVyTGVnZW5kO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckxlZ2VuZDtcclxuIl19 /***/ }), /* 17 */, @@ -2461,8 +2461,7 @@ exports.default = LayerLegend; /* 37 */, /* 38 */, /* 39 */, -/* 40 */, -/* 41 */ +/* 40 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2492,7 +2491,7 @@ var layerArray = [ // } ]; var legend = new LayerLegend_1.default(layerArray, 'legend-container', {}); - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlX21hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNpbXBsZV9tYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7R0FFRztBQUNILHlEQUFzRDtBQUN0RCwwRUFBdUU7QUFDdkUsaUVBQTREO0FBRzVELElBQUksR0FBRyxHQUFHLG1CQUFRLEVBQUUsQ0FBQztBQUVyQixJQUFJLGFBQWEsR0FBRyxJQUFJLHVDQUFrQixDQUN0Qyw4R0FBOEcsQ0FBQyxDQUFDO0FBRXBILElBQUksV0FBVyxHQUFHLElBQUksdUNBQWtCLENBQ3BDLHNHQUFzRyxFQUFFLEVBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztBQUUzSixHQUFHLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNwQyxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUVsQyxJQUFJLFVBQVUsR0FBRztJQUNiLGFBQWE7SUFDYixXQUFXO0lBQ1gsNkJBQTZCO0lBQzdCLGlDQUFpQztJQUNqQyxJQUFJO0lBQ0oseUNBQXlDO0lBQ3pDLHNCQUFzQjtJQUN0Qix1QkFBdUI7SUFDdkIsaURBQWlEO0lBQ2pELElBQUk7Q0FDUCxDQUFDO0FBRUYsSUFBSSxNQUFNLEdBQUcsSUFBSSxxQkFBVyxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDkvMjMvMjAxNi5cclxuICovXHJcbmltcG9ydCB7cXVpY2tNYXB9IGZyb20gJy4uLy4uL3NyYy9vbEhlbHBlcnMvcXVpY2tNYXAnO1xyXG5pbXBvcnQge0xheWVyRXNyaU1hcFNlcnZlcn0gZnJvbSBcIi4uLy4uL3NyYy9sYXllcnMvTGF5ZXJFc3JpTWFwU2VydmVyXCI7XHJcbmltcG9ydCBMYXllckxlZ2VuZCBmcm9tICcuLi8uLi9zcmMvY29sbGVjdGlvbnMvTGF5ZXJMZWdlbmQnO1xyXG5cclxuXHJcbmxldCBtYXAgPSBxdWlja01hcCgpO1xyXG5cclxubGV0IHdpc0RvdFJlZ2lvbnMgPSBuZXcgTGF5ZXJFc3JpTWFwU2VydmVyKFxyXG4gICAgJ2h0dHA6Ly90cmFuc3BvcnRhbC5jZWUud2lzYy5lZHUvYXBwbGljYXRpb25zL2FyY2dpczIvcmVzdC9zZXJ2aWNlcy9NZXRhTWFuYWdlci9NZXRhbWFuYWdlcl9yZWdpb25zL01hcFNlcnZlcicpO1xyXG5cclxubGV0IHNpeFllYXJQbGFuID0gbmV3IExheWVyRXNyaU1hcFNlcnZlcihcclxuICAgICdodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2FwcGxpY2F0aW9ucy9hcmNnaXMyL3Jlc3Qvc2VydmljZXMvTWV0YU1hbmFnZXIvU2l4WWVhclBsYW4vTWFwU2VydmVyJywge25hbWU6ICdTaXggWWVhciBQbGFuJywgbGVnZW5kQ29sbGFwc2U6IHRydWV9KTtcclxuXHJcbm1hcC5hZGRMYXllcih3aXNEb3RSZWdpb25zLm9sTGF5ZXIpO1xyXG5tYXAuYWRkTGF5ZXIoc2l4WWVhclBsYW4ub2xMYXllcik7XHJcblxyXG5sZXQgbGF5ZXJBcnJheSA9IFtcclxuICAgIHdpc0RvdFJlZ2lvbnMsXHJcbiAgICBzaXhZZWFyUGxhblxyXG4gICAgLy8gdGlwQ29uZmlnLnRpcFNlZ21lbnRMYXllcixcclxuICAgIC8vIHRpcENvbmZpZy5tZXRhbWFuYWdlclNlZ21lbnRzLFxyXG4gICAgLy8ge1xyXG4gICAgLy8gICAgIGdyb3VwTmFtZTogJ0lUUyBJbnZlbnRvcnkgTGF5ZXJzJyxcclxuICAgIC8vICAgICBjb2xsYXBzZTogdHJ1ZSxcclxuICAgIC8vICAgICBhZGRDaGVjazogZmFsc2UsXHJcbiAgICAvLyAgICAgaXRlbXM6IHRpcENvbmZpZy5pdHNMYXllckNvbGxlY3Rpb24ubGF5ZXJzXHJcbiAgICAvLyB9XHJcbl07XHJcblxyXG5sZXQgbGVnZW5kID0gbmV3IExheWVyTGVnZW5kKGxheWVyQXJyYXksICdsZWdlbmQtY29udGFpbmVyJywge30pO1xyXG5cclxuXHJcblxyXG4iXX0= /***/ }) /******/ ]); diff --git a/test/serve/js/simple_map.js.map b/test/serve/js/simple_map.js.map index 04868a7..c5a4e92 100644 --- a/test/serve/js/simple_map.js.map +++ b/test/serve/js/simple_map.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap b4e25e5e5539f3f3f6dd?fe66**","webpack:///./src/util/provide.ts?5c82**","webpack:///external \"$\"?57aa**","webpack:///external \"ol\"?81ed**","webpack:///./src/util/makeGuid.ts?e80e**","webpack:///./src/olHelpers/mapPopup.ts?5d6c**","webpack:///./src/olHelpers/mapInteractionBase.ts?f419**","webpack:///./src/olHelpers/mapMove.ts?6a2b**","webpack:///./src/olHelpers/quickMap.ts?1069**","webpack:///./src/layers/LayerBase.ts?bf94**","webpack:///./src/util/checkDefined.ts?bcd7**","webpack:///./src/layers/LayerEsriMapServer.ts?9c85*","webpack:///./src/olHelpers/mapMoveCls.ts?cd45**","webpack:///./src/olHelpers/mapPopupCls.ts?e3f7**","webpack:///./src/olHelpers/quickMapBase.ts?fb65**","webpack:///./src/olHelpers/zoomResolutionConvert.ts?dd4b**","webpack:///./src/olHelpers/esriToOlStyle.ts?9363*","webpack:///./src/collections/LayerLegend.ts?9de6","webpack:///./test/demo/simple_map.ts"],"names":[],"mappings":"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","file":"simple_map.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\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 41);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap b4e25e5e5539f3f3f6dd","/**\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","module.exports = $;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"$\"\n// module id = 1\n// module chunks = 0 1 2 3 4 5 6","module.exports = ol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ol\"\n// module id = 2\n// module chunks = 0 1 2 3","/**\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","/**\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\nexport const mapPopup = new MapPopupCls() as MapPopupCls;\r\nexport default mapPopup;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/olHelpers/mapPopup.ts","/**\r\n * Created by gavorhes on 12/8/2015.\r\n */\r\nimport provide from '../util/provide';\r\nimport ol = require('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","/**\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","/**\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 = require('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 {ol.Map} 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 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","import * as zoomResolutionConvert from '../olHelpers/zoomResolutionConvert';\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport makeGuid from '../util/makeGuid';\r\nimport $ = require('jquery');\r\n\r\nconst nm = provide('layers');\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 protected _legendCheckbox: boolean;\r\n protected _url: string;\r\n protected _opacity: number;\r\n protected _minZoom: number;\r\n protected _maxZoom: number;\r\n protected _visible: boolean;\r\n protected _loaded: boolean;\r\n protected _zIndex: number;\r\n protected _legendContent: string;\r\n protected _params: any;\r\n protected _id: string;\r\n protected _name: string;\r\n protected _source: ol.source.Source;\r\n protected _animate: boolean;\r\n protected _legendCollapse: boolean;\r\n protected _maxResolution: number;\r\n protected _minResolution: number;\r\n protected _$legendDiv: JQuery;\r\n loadCallback: Function;\r\n protected _olLayer: ol.layer.Layer;\r\n protected _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 additionalContent - additional content to add to legend\r\n * @private\r\n */\r\n _addLegendContent(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 get id(): string{\r\n return this._id;\r\n }\r\n\r\n set id(newId: string){\r\n this._id = newId;\r\n }\r\n\r\n get animate(): boolean{\r\n return this._animate;\r\n }\r\n\r\n set animate(animate: boolean){\r\n this._animate = animate;\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","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","/**\r\n * Created by gavorhes on 12/7/2015.\r\n */\r\nimport {LayerBase, LayerBaseOptions} from './LayerBase';\r\nimport * as esriToOl from '../olHelpers/esriToOlStyle';\r\nimport mapPopup from '../olHelpers/mapPopup';\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport $ = require('jquery');\r\n\r\nconst nm = provide('layers');\r\n\r\n\r\nexport interface LayerEsriMapServerOptions extends LayerBaseOptions {\r\n addPopup?: boolean;\r\n showLayers?: Array<number>;\r\n}\r\n\r\n/**\r\n * esri mapserver layer\r\n * @augments LayerBase\r\n */\r\nexport class LayerEsriMapServer extends LayerBase {\r\n _esriFormat: ol.format.EsriJSON;\r\n _popupRequest: JQueryXHR;\r\n\r\n /**\r\n * The base layer for all others\r\n * @param {string} url - resource url\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.addPopup=false] if a popup should be added\r\n * @param {undefined|Array<number>} [options.showLayers=undefined] if a popup should be added\r\n */\r\n constructor(url, options: LayerEsriMapServerOptions = {}) {\r\n\r\n super(url, options);\r\n this._source = new ol.source.TileArcGISRest(\r\n {\r\n url: this.url == '' ? undefined : this.url,\r\n params: typeof options.showLayers == 'undefined' ? undefined : {layers: 'show:' + options.showLayers.join(',')}\r\n }\r\n );\r\n\r\n this._olLayer = new ol.layer.Tile({\r\n source: this._source as ol.source.Tile,\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 options.addPopup = typeof options.addPopup == 'boolean' ? options.addPopup : false;\r\n\r\n this._esriFormat = new ol.format.EsriJSON();\r\n this._popupRequest = null;\r\n\r\n this.addLegendContent();\r\n\r\n if (options.addPopup) {\r\n mapPopup.addMapServicePopup(this);\r\n }\r\n }\r\n\r\n /**\r\n * add additional content to the legend\r\n * @param {string} [additionalContent=''] additional content for legend\r\n */\r\n addLegendContent(additionalContent?: string) {\r\n let urlCopy = this.url;\r\n\r\n if (urlCopy[urlCopy.length - 1] !== '/') {\r\n urlCopy += '/';\r\n }\r\n\r\n urlCopy += 'legend?f=pjson&callback=?';\r\n\r\n $.get(urlCopy, {}, (d) => {\r\n let newHtml = esriToOl.makeMapServiceLegend(d);\r\n super.addLegendContent(newHtml);\r\n }, 'json');\r\n }\r\n\r\n\r\n getPopupInfo(queryParams) {\r\n if (!this.visible) {\r\n return;\r\n }\r\n\r\n let urlCopy = this.url;\r\n\r\n if (urlCopy[urlCopy.length - 1] != '/') {\r\n urlCopy += '/';\r\n }\r\n\r\n urlCopy += 'identify?callback=?';\r\n\r\n let __this = this;\r\n\r\n if (this._popupRequest != null) {\r\n this._popupRequest.abort();\r\n }\r\n\r\n\r\n this._popupRequest = $.get(urlCopy, queryParams, function (d) {\r\n for (let r of d['results']) {\r\n\r\n let popupHtml = '<table class=\"esri-popup-table\">';\r\n\r\n for (let a in r['attributes']) {\r\n if (r['attributes'].hasOwnProperty(a)) {\r\n let attrVal = r['attributes'][a];\r\n\r\n if (attrVal == null || attrVal.toString().toLowerCase() == 'null') {\r\n continue;\r\n }\r\n\r\n let attr = a;\r\n if (attr.length > 14) {\r\n attr = attr.slice(0, 11) + '...';\r\n }\r\n\r\n popupHtml += `<tr><td>${attr}</td><td>${attrVal}</td></tr>`;\r\n }\r\n }\r\n\r\n popupHtml += '</table>';\r\n\r\n mapPopup.addMapServicePopupContent(__this._esriFormat.readFeature(r), __this, popupHtml, r['layerName']);\r\n }\r\n }, 'json');\r\n\r\n this._popupRequest.always(function () {\r\n __this._popupRequest = null;\r\n });\r\n\r\n }\r\n\r\n /**\r\n *\r\n * @returns {ol.source.TileArcGISRest} the vector source\r\n */\r\n get source(): ol.source.TileArcGISRest {\r\n return super.getSource() as ol.source.TileArcGISRest;\r\n }\r\n\r\n /**\r\n *\r\n * @returns the ol layer\r\n */\r\n get olLayer(): ol.layer.Tile {\r\n return super.getOlLayer() as ol.layer.Tile;\r\n }\r\n}\r\nnm.LayerEsriMapServer = LayerEsriMapServer;\r\nexport default LayerEsriMapServer;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/layers/LayerEsriMapServer.ts","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 = require('custom-ol');\r\nimport $ = 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<number>;\r\n _mapMoveCallbackTimeout: Array<number>;\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","/**\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 = require('custom-ol');\r\nimport {LayerBaseVector} from \"../layers/LayerBaseVector\";\r\nimport LayerEsriMapServer from \"../layers/LayerEsriMapServer\";\r\nimport $ = 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 private _popupOpen: boolean;\r\n private _passThroughLayerFeatureArray: Array<FeatureLayerProperties>;\r\n private _currentPopupIndex: number;\r\n private _popupContentLength: number;\r\n private _esriMapServiceLayers: Array<LayerEsriMapServer>;\r\n private _$popupCloser: JQuery;\r\n private _$popupContent: JQuery;\r\n private _$popupContainer: JQuery;\r\n private _popupOverlay: ol.Overlay;\r\n private _arrPopupLayers: Array<LayerBaseVector>;\r\n private _popupCoordinate: ol.Coordinate;\r\n private _popupChangedFunctions: Array<popupChangedFunction>;\r\n private _mapClickFunctions: Array<Function>;\r\n private _selectionLayerLookup: Object;\r\n private _arrPopupLayerIds: Array<string>;\r\n private _arrPopupLayerNames: Array<string>;\r\n private _arrPopupOlLayers: Array<ol.layer.Vector>;\r\n private _arrPopupContentFunction: Array<popupCallback>;\r\n private _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: LayerBaseVector, selectionStyle: {color?: string, width?: number, olStyle?: ol.style.Style}): 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?: {color?: string, width?: number, olStyle?: ol.style.Style}) {\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","/**\r\n * Created by gavorhes on 12/15/2015.\r\n */\r\n\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport $ = require('jquery');\r\nconst nm = provide('olHelpers');\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 const controls = ol.control.defaults({\r\n attributionOptions: {collapsible: false}\r\n }\r\n );\r\n\r\n const 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 let map = new ol.Map({\r\n layers: [osmLayer],\r\n target: options.divId,\r\n controls: controls,\r\n view: view\r\n });\r\n\r\n if (options.fullScreen) {\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","/**\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","/**\r\n * Created by gavorhes on 1/4/2016.\r\n */\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nconst nm = provide('olHelpers.esriToOlStyle');\r\n\r\n/**\r\n * This callback is displayed as part of the Requester class.\r\n * @callback styleFunc\r\n * @param {ol.Feature} feat - openlayers feature\r\n * @param {number} resolution - map resolution\r\n */\r\n\r\n/**\r\n *\r\n * @param {Array<number>} colorArray - input color array\r\n * @param {number} opacity - the opacity 0 to 1\r\n * @returns {string} rgba string\r\n * @private\r\n */\r\nfunction _colorArrayToRgba(colorArray, opacity) {\r\n \"use strict\";\r\n\r\n return `rgba(${colorArray[0]},${colorArray[1]},${colorArray[2]},${opacity})`;\r\n}\r\n\r\n/**\r\n * escape html charcters\r\n * @param {string} str - input string\r\n * @returns {string} escaped string\r\n */\r\nfunction htmlEscape(str) {\r\n return String(str)\r\n .replace(/&/g, '&')\r\n .replace(/\"/g, '"')\r\n .replace(/'/g, ''')\r\n .replace(/</g, '<')\r\n .replace(/>/g, '>');\r\n}\r\n\r\nnm.htmlEscape = htmlEscape;\r\n\r\n\r\nexport interface EsriResponse{\r\n drawingInfo: {\r\n renderer: EsriRenderer\r\n },\r\n geometryType: string\r\n}\r\n\r\nexport interface EsriRenderer{\r\n type: string;\r\n symbol: EsriSymbol;\r\n uniqueValueInfos: Array<{label: string, value: any, symbol: EsriSymbol}>;\r\n}\r\n\r\nexport interface EsriSymbol{\r\n size: number;\r\n type: string;\r\n outline:{\r\n color: string;\r\n width: number;\r\n },\r\n color: string;\r\n width: number;\r\n}\r\n\r\n\r\nclass CommonSymbol {\r\n legendHtml: string;\r\n opacity: number;\r\n symbolObj: EsriSymbol;\r\n olStyle: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction;\r\n\r\n /**\r\n *\r\n * @param symbolObj\r\n * @param {number} opacity\r\n */\r\n constructor(symbolObj: EsriSymbol, opacity: number) {\r\n this.symbolObj = symbolObj;\r\n this.opacity = opacity;\r\n this.olStyle = undefined;\r\n this.legendHtml = '';\r\n }\r\n}\r\n\r\ninterface ICommonSymbol{\r\n new (symbolObj: EsriSymbol, opacity: number): CommonSymbol\r\n}\r\n\r\n\r\nclass PointSymbol extends CommonSymbol {\r\n constructor(symbolObj: EsriSymbol, opacity: number) {\r\n super(symbolObj, opacity);\r\n switch (this.symbolObj.type) {\r\n case 'esriSMS':\r\n let innerColor = _colorArrayToRgba(this.symbolObj.color, this.opacity);\r\n let outerColor = _colorArrayToRgba(this.symbolObj.outline.color, this.opacity);\r\n let outlineWidth = this.symbolObj.outline.width;\r\n let radius = this.symbolObj.size;\r\n\r\n\r\n this.olStyle = new ol.style.Style({\r\n image: new ol.style.Circle({\r\n radius: radius,\r\n fill: new ol.style.Fill({\r\n color: innerColor\r\n }),\r\n stroke: new ol.style.Stroke({color: outerColor, width: outlineWidth})\r\n })\r\n });\r\n this.legendHtml = `<span class=\"legend-layer-icon\" style=\"color: ${innerColor}\">●</span>`;\r\n break;\r\n case 'esriPMS':\r\n this.olStyle = new ol.style.Style({\r\n image: new ol.style.Icon({src: `data:image/png;base64,${this.symbolObj['imageData']}`})\r\n });\r\n this.legendHtml = `<img class=\"legend-layer-icon\" height=\"17\" src=\"data:image/png;base64,${this.symbolObj['imageData']}\">`;\r\n break;\r\n default:\r\n console.log(this.symbolObj);\r\n alert('Point symbol does not handle symbol type: ' + this.symbolObj['type']);\r\n }\r\n }\r\n}\r\n\r\nclass LineSymbol extends CommonSymbol {\r\n constructor(symbolObj: EsriSymbol, opacity: number) {\r\n super(symbolObj, opacity);\r\n switch (this.symbolObj.type) {\r\n case 'esriSLS':\r\n let innerColor = _colorArrayToRgba(this.symbolObj.color, this.opacity);\r\n let lineWidth = this.symbolObj.width;\r\n\r\n this.olStyle = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: innerColor,\r\n //lineDash: [4],\r\n width: lineWidth\r\n })\r\n });\r\n\r\n this.legendHtml = `<span class=\"legend-layer-icon\" `;\r\n this.legendHtml += `style=\"`;\r\n this.legendHtml += `background-color: ${innerColor};`;\r\n this.legendHtml += `width: 40px;`;\r\n this.legendHtml += `height: 4px;`;\r\n this.legendHtml += `position: relative;`;\r\n this.legendHtml += `display: inline-block;`;\r\n this.legendHtml += `top: -1px;`;\r\n this.legendHtml += `\"></span>`;\r\n break;\r\n default:\r\n console.log(this.symbolObj);\r\n alert('Line symbol does not handle symbol type: ' + this.symbolObj['type']);\r\n }\r\n }\r\n}\r\n\r\nclass PolygonSymbol extends CommonSymbol {\r\n constructor(symbolObj: EsriSymbol, opacity: number) {\r\n super(symbolObj, opacity);\r\n switch (this.symbolObj['type']) {\r\n case 'esriSFS':\r\n let innerColor = _colorArrayToRgba(this.symbolObj.color, this.opacity);\r\n let outerColor = _colorArrayToRgba(this.symbolObj.outline.color, this.opacity);\r\n let outlineWidth = this.symbolObj.outline.width;\r\n\r\n this.olStyle = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: outerColor,\r\n //lineDash: [4],\r\n width: outlineWidth\r\n }),\r\n fill: new ol.style.Fill({\r\n color: innerColor\r\n })\r\n });\r\n\r\n this.legendHtml = `<span class=\"legend-layer-icon\" `;\r\n this.legendHtml += `style=\"`;\r\n this.legendHtml += `background-color: ${innerColor};`;\r\n this.legendHtml += `border: solid ${outerColor} 1px;`;\r\n this.legendHtml += `width: 40px;`;\r\n this.legendHtml += `height: 9px;`;\r\n this.legendHtml += `position: relative;`;\r\n this.legendHtml += `display: inline-block;`;\r\n this.legendHtml += `top: 2px;`;\r\n this.legendHtml += `\"></span>`;\r\n break;\r\n\r\n default:\r\n console.log(this.symbolObj);\r\n alert('Polygon symbol does handle symbol type: ' + this.symbolObj['type']);\r\n }\r\n }\r\n}\r\n\r\nclass SymbolGenerator {\r\n opacity: number;\r\n renderer: EsriRenderer;\r\n legendHtml: string;\r\n olStyle: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction;\r\n\r\n constructor(esriResponse: EsriResponse) {\r\n this.opacity = (100 - (esriResponse['drawingInfo']['transparency'] || 0)) / 100;\r\n this.renderer = esriResponse.drawingInfo.renderer;\r\n this.olStyle = undefined;\r\n this.legendHtml = '';\r\n }\r\n}\r\n\r\nclass SingleSymbol extends SymbolGenerator {\r\n symbol: EsriSymbol;\r\n /**\r\n *\r\n * @param {object} esriResponse - layer info\r\n * @param SymbolClass - the symbol class to use\r\n */\r\n constructor(esriResponse, SymbolClass: ICommonSymbol) {\r\n super(esriResponse);\r\n this.symbol = this.renderer.symbol;\r\n let symbolObj = new SymbolClass(this.symbol, this.opacity);\r\n this.olStyle = symbolObj.olStyle;\r\n this.legendHtml = symbolObj.legendHtml;\r\n }\r\n}\r\n\r\nclass UniqueValueSymbol extends SymbolGenerator {\r\n\r\n propertyName: string;\r\n defaultSymbol: EsriSymbol;\r\n defaultStyle: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction;\r\n defaultLabelHtml: string;\r\n labelArray: Array<string>;\r\n legendArray: Array<string>;\r\n propertyStyleLookup: Object;\r\n valueArray: Array<any>;\r\n uniqueValueInfos: Array<{label: string, value: any, symbol: EsriSymbol}>;\r\n\r\n /**\r\n *\r\n * @param {object} esriResponse - layer info\r\n * @param SymbolClass - the Symbol class definition\r\n */\r\n constructor(esriResponse: EsriResponse, SymbolClass: ICommonSymbol) {\r\n super(esriResponse);\r\n this.uniqueValueInfos = this.renderer['uniqueValueInfos'];\r\n this.propertyName = this.renderer['field1'];\r\n this.defaultSymbol = this.renderer['defaultSymbol'];\r\n\r\n\r\n if (this.defaultSymbol) {\r\n let symbolObj = new SymbolClass(this.defaultSymbol, this.opacity);\r\n this.defaultStyle = symbolObj.olStyle;\r\n this.defaultLabelHtml = `<span class=\"legend-layer-subitem\">${htmlEscape(this.renderer['defaultLabel'])}</span>` + symbolObj.legendHtml;\r\n } else {\r\n this.defaultStyle = undefined;\r\n this.defaultLabelHtml = 'other';\r\n }\r\n\r\n this.valueArray = [];\r\n this.labelArray = [];\r\n this.legendArray = [];\r\n this.propertyStyleLookup = {};\r\n\r\n for (let uniqueVal of this.uniqueValueInfos) {\r\n this.labelArray.push(uniqueVal['label']);\r\n this.valueArray.push(uniqueVal['value']);\r\n let uniqueSym = new SymbolClass(uniqueVal.symbol, this.opacity);\r\n this.legendArray.push(`<span class=\"legend-layer-subitem\">${htmlEscape(uniqueVal['label'])}</span>` + uniqueSym.legendHtml);\r\n this.propertyStyleLookup[uniqueVal['value']] = uniqueSym.olStyle;\r\n }\r\n\r\n\r\n this.olStyle = (feature: ol.Feature) => {\r\n let checkProperties = feature.getProperties();\r\n let checkProperty = checkProperties[this.propertyName];\r\n\r\n let returnValue;\r\n if (this.propertyStyleLookup[checkProperty] !== undefined) {\r\n returnValue = [this.propertyStyleLookup[checkProperty]];\r\n } else {\r\n returnValue = [this.defaultStyle];\r\n }\r\n\r\n return returnValue;\r\n };\r\n\r\n if (this.defaultLabelHtml !== null) {\r\n this.legendArray.push(this.defaultLabelHtml);\r\n }\r\n\r\n this.legendHtml = '<ul>';\r\n for (let h of this.legendArray) {\r\n this.legendHtml += `<li>${h}</li>`;\r\n }\r\n this.legendHtml += '</ul>';\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * style and legend object\r\n * @typedef {object} styleAndLegend\r\n * @property {styleFunc} style - style function\r\n * @property {string} legend - legend content\r\n */\r\n\r\n/**\r\n *\r\n * @param {object} esriResponse - layer info\r\n * @returns {styleAndLegend} style and legend object\r\n */\r\nexport function makeFeatureServiceLegendAndSymbol(esriResponse: EsriResponse) {\r\n \"use strict\";\r\n let renderer = esriResponse.drawingInfo.renderer;\r\n let symbolLegendOut: SymbolGenerator = null;\r\n\r\n switch (renderer.type) {\r\n case 'simple':\r\n switch (esriResponse.geometryType) {\r\n case 'esriGeometryPoint':\r\n symbolLegendOut = new SingleSymbol(esriResponse, PointSymbol);\r\n break;\r\n case 'esriGeometryPolyline':\r\n symbolLegendOut = new SingleSymbol(esriResponse, LineSymbol);\r\n break;\r\n case 'esriGeometryPolygon':\r\n symbolLegendOut = new SingleSymbol(esriResponse, PolygonSymbol);\r\n break;\r\n default:\r\n console.log(esriResponse);\r\n alert(esriResponse.geometryType + ' not handled');\r\n }\r\n break;\r\n case 'uniqueValue':\r\n switch (esriResponse.geometryType) {\r\n case 'esriGeometryPoint':\r\n symbolLegendOut = new UniqueValueSymbol(esriResponse, PointSymbol);\r\n break;\r\n case 'esriGeometryPolyline':\r\n symbolLegendOut = new UniqueValueSymbol(esriResponse, LineSymbol);\r\n break;\r\n case 'esriGeometryPolygon':\r\n symbolLegendOut = new UniqueValueSymbol(esriResponse, PolygonSymbol);\r\n break;\r\n default:\r\n console.log(esriResponse);\r\n alert(esriResponse['geometryType'] + ' not handled');\r\n }\r\n break;\r\n default:\r\n alert('not handled renderer type: ' + renderer['type']);\r\n }\r\n\r\n if (symbolLegendOut == null) {\r\n return {style: undefined, legend: ''};\r\n } else {\r\n return {style: symbolLegendOut.olStyle, legend: symbolLegendOut.legendHtml};\r\n }\r\n}\r\n\r\nnm.makeFeatureServiceLegendAndSymbol = makeFeatureServiceLegendAndSymbol;\r\n\r\n\r\n/**\r\n *\r\n * @param {object} lyrObject - the layer as defined in the response\r\n * @param {boolean} [skipLayerNameAndExpander=false] use only icons\r\n * @returns {string} legend html\r\n */\r\nfunction mapServiceLegendItem(lyrObject, skipLayerNameAndExpander: boolean = false) {\r\n\r\n\r\n skipLayerNameAndExpander = typeof skipLayerNameAndExpander == 'boolean' ? skipLayerNameAndExpander : false;\r\n let layerName = lyrObject['layerName'];\r\n let legendItems = lyrObject['legend'];\r\n let legendHtml = '';\r\n\r\n if (!skipLayerNameAndExpander) {\r\n legendHtml += `<span class=\"legend-layer-subitem\">${layerName}</span>`;\r\n }\r\n\r\n if (legendItems.length == 1) {\r\n legendHtml = `<img class=\"legend-layer-icon\" height=\"17\" src=\"data:image/png;base64,${legendItems[0]['imageData']}\">`;\r\n } else {\r\n if (!skipLayerNameAndExpander) {\r\n legendHtml += '<span class=\"legend-items-expander\" title=\"Expand/Collapse\">▼</span>';\r\n }\r\n legendHtml += '<ul>';\r\n for (let i = 0; i < legendItems.length; i++) {\r\n legendHtml += `<li>`;\r\n legendHtml += `<span class=\"legend-layer-subitem\">${htmlEscape(legendItems[i]['label'])}</span>`;\r\n legendHtml += `<img class=\"legend-layer-icon\" height=\"17\" src=\"data:image/png;base64,${legendItems[i]['imageData']}\">`;\r\n legendHtml += `</li>`;\r\n }\r\n legendHtml += '</ul>';\r\n }\r\n\r\n if (!skipLayerNameAndExpander) {\r\n legendHtml = `<span class=\"legend-layer-subitem\">${layerName}</span>` + legendHtml;\r\n }\r\n\r\n return legendHtml;\r\n}\r\n\r\n/**\r\n * make map service legent\r\n * @param {object} esriResponse - layer info\r\n * @returns {string} legend content\r\n */\r\nexport function makeMapServiceLegend(esriResponse) {\r\n \"use strict\";\r\n\r\n let newLegendHtml = '';\r\n\r\n let layers = esriResponse['layers'];\r\n\r\n if (layers.length == 1) {\r\n newLegendHtml += mapServiceLegendItem(layers[0], true);\r\n } else {\r\n newLegendHtml += '<ul>';\r\n for (let i = 0; i < layers.length; i++) {\r\n newLegendHtml += '<li>' + mapServiceLegendItem(layers[i]) + '</li>';\r\n }\r\n newLegendHtml += '</ul>';\r\n }\r\n\r\n return newLegendHtml;\r\n}\r\n\r\nnm.makeMapServiceLegend = makeMapServiceLegend;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/olHelpers/esriToOlStyle.ts","/**\r\n * Created by gavorhes on 12/16/2015.\r\n */\r\n\r\nimport provide from '../util/provide';\r\nimport makeGuid from '../util/makeGuid';\r\nimport mapMove from '../olHelpers/mapMove';\r\n\r\nlet nm = provide('collections');\r\nimport $ = require('jquery');\r\n\r\nclass LayerGroup {\r\n groupLayers: any;\r\n groupLayersLookup: any;\r\n groupGroupsLookup: any;\r\n groupGroups: any;\r\n itemIdArray: any;\r\n groupId: any;\r\n groupName: any;\r\n allLayerArray: any;\r\n parent: any;\r\n allGroupArray: any;\r\n allGroupLookup: any;\r\n allLayerLookup: any;\r\n collapse: any;\r\n addCheck: any;\r\n layerParentLookup: any;\r\n\r\n /**\r\n *\r\n * @param {object} [groupConfig={}] - group configuration object\r\n * @param {string} groupConfig.groupName - the group name\r\n * @param {boolean} [groupConfig.collapse=false] - if the group should be collapsed initially\r\n * @param {boolean} [groupConfig.addCheck=true] - if the group should have a checkbox controlling visibility of all layers\r\n * @param {LayerGroup} [parent=undefined] - the parent group\r\n */\r\n constructor(groupConfig?, parent?) {\r\n this.groupLayers = [];\r\n this.groupLayersLookup = {};\r\n this.groupGroups = [];\r\n this.groupGroupsLookup = {};\r\n this.itemIdArray = [];\r\n\r\n if (typeof groupConfig == 'undefined') {\r\n this.parent = null;\r\n this.groupId = 'root';\r\n this.groupName = 'root';\r\n this.allGroupLookup = {root: this};\r\n this.allGroupArray = [this];\r\n this.allLayerArray = [];\r\n this.allLayerLookup = {};\r\n this.layerParentLookup = {};\r\n this.collapse = false;\r\n this.addCheck = false;\r\n } else {\r\n this.groupId = makeGuid();\r\n this.parent = parent;\r\n this.groupName = groupConfig.groupName;\r\n this.collapse = typeof groupConfig.collapse == 'boolean' ? groupConfig.collapse : false;\r\n this.addCheck = typeof groupConfig.addCheck == 'boolean' ? groupConfig.addCheck : true;\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {object} groupConfig - configuration object\r\n * @param {string} groupConfig.groupName - the group name\r\n * @param {boolean} groupConfig.collapse if the group should be collapsed initially\r\n * @param {boolean} groupConfig.addCheck if the group should have a checkbox controlling visibility of all layers\r\n * @param {Array<LayerGroup>} parents parent groups\r\n * @returns {LayerGroup} the layer group just added\r\n */\r\n addGroup(groupConfig, parents) {\r\n let parent;\r\n if (parents.length > 0) {\r\n parent = parents[parents.length - 1];\r\n } else {\r\n parent = 'root';\r\n }\r\n\r\n\r\n /**\r\n * @type {LayerGroup}\r\n */\r\n let parentGroup = this.allGroupLookup[parent];\r\n let newGroup = new LayerGroup(groupConfig, parentGroup);\r\n this.allGroupLookup[newGroup.groupId] = newGroup;\r\n this.allGroupArray.push(newGroup);\r\n\r\n parentGroup.groupGroups.push(newGroup);\r\n parentGroup.groupGroupsLookup[newGroup.groupId] = newGroup;\r\n\r\n if (parentGroup.itemIdArray.indexOf(newGroup.groupId) > 0) {\r\n console.log(newGroup.groupId);\r\n throw 'layer and group ids must be unique';\r\n }\r\n parentGroup.itemIdArray.push(newGroup.groupId);\r\n\r\n return newGroup;\r\n }\r\n\r\n /**\r\n *\r\n * @param {LayerBase} newLayer the layer to be added\r\n * @param {Array} parents array\r\n */\r\n addLegendLayer(newLayer, parents) {\r\n let parent;\r\n if (parents.length > 0) {\r\n parent = parents[parents.length - 1];\r\n } else {\r\n parent = 'root';\r\n }\r\n\r\n this.allLayerLookup[newLayer.id] = newLayer;\r\n this.allLayerArray.push(newLayer);\r\n\r\n /**\r\n * @type {LayerGroup}\r\n */\r\n let parentGroup = this.allGroupLookup[parent];\r\n\r\n parentGroup.groupLayers.push(newLayer);\r\n parentGroup.groupLayersLookup[newLayer.id] = newLayer;\r\n if (parentGroup.itemIdArray.indexOf(newLayer.id) > 0) {\r\n console.log(newLayer.id);\r\n throw 'layer and group ids must be unique';\r\n }\r\n parentGroup.itemIdArray.push(newLayer.id);\r\n\r\n this.layerParentLookup[newLayer.id] = parentGroup;\r\n\r\n }\r\n\r\n getLegendHtml(legendId, options) {\r\n\r\n\r\n let legendHtml = `<ul id=\"${legendId}\" class=\"legend-container\">`;\r\n\r\n legendHtml += `<li>${options.legendTitle}<input type=\"checkbox\" checked id=\"suppress-by-extent-${legendId}\" class=\"suppress-by-extent\">` +\r\n `<label title=\"Suppress layers not visible at this zoom level\" for=\"suppress-by-extent-${legendId}\">` +\r\n `<span></span>` +\r\n `</label></li>`;\r\n\r\n legendHtml += this._buildLegend(this.itemIdArray, this, options.layerDivClasses) + '</ul>';\r\n\r\n return legendHtml;\r\n }\r\n\r\n /**\r\n * @param {Array} itemIds the items to process\r\n * @param {LayerGroup} theGroup new group\r\n * @param {Array} [layerDivClasses=[]] optional classes to apply to the layer divs\r\n * @static\r\n * @returns {string} html string\r\n */\r\n _buildLegend(itemIds, theGroup, layerDivClasses) {\r\n\r\n if (itemIds.length == 0) {\r\n return '';\r\n }\r\n\r\n let theHml = '';\r\n\r\n let itemId = itemIds[0];\r\n\r\n if (theGroup.groupLayersLookup[itemId]) {\r\n\r\n /**\r\n * @type {LayerBase}\r\n */\r\n let lyr = theGroup.groupLayersLookup[itemId];\r\n theHml += `<li id=\"${lyr.id}-layer-li\" class=\"legend-layer-li ${layerDivClasses.join(' ')}\">` + lyr.getLegendDiv() + '</li>';\r\n\r\n\r\n } else if (theGroup.groupGroupsLookup[itemId]) {\r\n /**\r\n * type {LayerGroup}\r\n */\r\n let otherGroup = theGroup.groupGroupsLookup[itemId];\r\n\r\n theHml += `<li>`;\r\n theHml += `<div id=\"${otherGroup.groupId}-legend-layer-div\" ` +\r\n `class=\"legend-layer-group ${layerDivClasses.join(' ')}\">`;\r\n\r\n if (otherGroup.addCheck) {\r\n theHml += `<input type=\"checkbox\" checked id=\"${otherGroup.groupId}-group-chck\">` +\r\n `<label for=\"${otherGroup.groupId}-group-chck\" title=\"Click arrow to expand or collapse\">${otherGroup.groupName}</label>`;\r\n } else {\r\n theHml += `<label title=\"Click arrow to expand or collapse\">${otherGroup.groupName}</label>`;\r\n }\r\n\r\n theHml += `<span title=\"Expand/Collapse\" class=\"layer-group-expander`;\r\n theHml += `${otherGroup.collapse ? ' legend-layer-group-initial-collapse' : ''}\">`;\r\n theHml += otherGroup.collapse ? '▶' : '▼';\r\n theHml += '</span>';\r\n\r\n //parents.push(groupId);\r\n theHml += '<ul>' + this._buildLegend(otherGroup.itemIdArray, otherGroup, layerDivClasses) + '</ul>';\r\n theHml += '</div>';\r\n theHml += '</li>';\r\n }\r\n\r\n return theHml + this._buildLegend(itemIds.slice(1), theGroup, layerDivClasses);\r\n }\r\n}\r\n\r\n/**\r\n * a wrapper to make a legend\r\n */\r\nclass LayerLegend {\r\n\r\n $divElement: any;\r\n _legendItems: any;\r\n layerGroup: any;\r\n legendId: any;\r\n\r\n /**\r\n *\r\n * @param {Array} legendItems array of layers or objects with {groupName: {string}, collapse: {boolean}, addCheck: {boolean}, items: {Array}}\r\n * @param {string} divId the div where the legend should be added\r\n * @param {object} options for legend\r\n * @param {Array} [options.layerDivClasses=[]] optional array of classes to be applied to the layer legend divs for custom styling\r\n * @param {string} [options.legendTitle=Legend] the legend title\r\n * @param {boolean} [options.scaleDependent=true] if legend display is scale dependent\r\n */\r\n constructor(legendItems, divId, options) {\r\n for (let i of legendItems) {\r\n if (typeof i == 'undefined') {\r\n throw 'undefined item passed in array to legend constructor';\r\n }\r\n }\r\n\r\n options = options || {};\r\n\r\n options.legendTitle = typeof options.legendTitle == 'string' ? options.legendTitle : 'Legend';\r\n options.scaleDependent = typeof options.scaleDependent == 'boolean' ? options.scaleDependent : true;\r\n options.layerDivClasses = options.layerDivClasses || [];\r\n\r\n // if legend display is scale dependent, make sure the mapMove object is initialized first\r\n if (options.scaleDependent) {\r\n mapMove.checkInit();\r\n }\r\n\r\n this.$divElement = $('#' + divId);\r\n\r\n this._legendItems = legendItems;\r\n\r\n this.layerGroup = new LayerGroup();\r\n\r\n this._buildTree(legendItems);\r\n\r\n this.legendId = makeGuid();\r\n\r\n this.$divElement.append(this.layerGroup.getLegendHtml(this.legendId, options));\r\n\r\n for (let l of this.layerGroup.allLayerArray){\r\n l.applyCollapse();\r\n }\r\n\r\n let _this = this;\r\n //// if legend display is scale dependent, make sure the mapMove object is initialized first\r\n if (options.scaleDependent) {\r\n mapMove.checkInit();\r\n\r\n mapMove.addCallback(function (ext, zoom, evt) {\r\n\r\n if (typeof evt == 'undefined' || evt == 'change:resolution') {\r\n for (let lyr of this.layerGroup.allLayerArray) {\r\n let $lyrLi = $('#' + lyr.id + '-layer-li');\r\n if (zoom > lyr.maxZoom || zoom < lyr.minZoom) {\r\n $lyrLi.addClass('layer-not-visible');\r\n } else {\r\n $lyrLi.removeClass('layer-not-visible');\r\n }\r\n }\r\n }\r\n }, this, 100, true, 'legend1');\r\n }\r\n\r\n // <editor-fold desc=\"add event listeners\">\r\n\r\n this.$divElement.find(\".suppress-by-extent\").change(function () {\r\n let legendLayerLis = $('.legend-layer-li');\r\n if (this.checked) {\r\n legendLayerLis.removeClass('layer-force-show');\r\n } else {\r\n legendLayerLis.addClass('layer-force-show');\r\n }\r\n });\r\n\r\n\r\n this.$divElement.find('.legend-check').change(function () {\r\n let lyrId = this.id.replace('-legend-layer-check', '');\r\n _this.layerGroup.allLayerLookup[lyrId].visible = this.checked;\r\n });\r\n\r\n this.$divElement.find('.legend-layer-group > input[type=checkbox]').change(function () {\r\n $(this).siblings('ul').find('input[type=checkbox]').prop('checked', this.checked).trigger('change');\r\n });\r\n\r\n this.$divElement.find('.layer-group-expander').click(function () {\r\n let $this = $(this);\r\n $this.removeClass('legend-layer-group-initial-collapse');\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 this.$divElement.find('.legend-layer-group-initial-collapse').trigger('click');\r\n // </editor-fold>\r\n }\r\n\r\n\r\n /**\r\n * @param {Array} [legendItems=this._layerConfig] the legend items\r\n * @param {Array} [parents=[]] the ordered list of groups in which this item is a member\r\n * @private\r\n */\r\n _buildTree(legendItems, parents?) {\r\n\r\n if (legendItems.length == 0) {\r\n return;\r\n }\r\n\r\n let oneItem = legendItems[0];\r\n\r\n //reset the parent if the item is in the base array\r\n if (this._legendItems.indexOf(oneItem) > -1 || typeof parents == 'undefined') {\r\n parents = [];\r\n }\r\n\r\n if (typeof oneItem['groupName'] !== 'undefined') {\r\n let groupItem = legendItems[0];\r\n let newGroup = this.layerGroup.addGroup(groupItem, parents);\r\n parents.push(newGroup.groupId);\r\n this._buildTree(groupItem.items, parents);\r\n } else {\r\n /**\r\n * @type {LayerBase}\r\n */\r\n let layerItem = legendItems[0];\r\n\r\n this.layerGroup.addLegendLayer(layerItem, parents);\r\n }\r\n\r\n this._buildTree(legendItems.slice(1), parents);\r\n }\r\n\r\n}\r\n\r\nnm.LayerLegend = LayerLegend;\r\nexport default LayerLegend;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/collections/LayerLegend.ts","/**\r\n * Created by gavorhes on 9/23/2016.\r\n */\r\nimport {quickMap} from '../../src/olHelpers/quickMap';\r\nimport {LayerEsriMapServer} from \"../../src/layers/LayerEsriMapServer\";\r\nimport LayerLegend from '../../src/collections/LayerLegend';\r\n\r\n\r\nlet map = quickMap();\r\n\r\nlet wisDotRegions = new LayerEsriMapServer(\r\n 'http://transportal.cee.wisc.edu/applications/arcgis2/rest/services/MetaManager/Metamanager_regions/MapServer');\r\n\r\nlet sixYearPlan = new LayerEsriMapServer(\r\n 'http://transportal.cee.wisc.edu/applications/arcgis2/rest/services/MetaManager/SixYearPlan/MapServer', {name: 'Six Year Plan', legendCollapse: true});\r\n\r\nmap.addLayer(wisDotRegions.olLayer);\r\nmap.addLayer(sixYearPlan.olLayer);\r\n\r\nlet layerArray = [\r\n wisDotRegions,\r\n sixYearPlan\r\n // tipConfig.tipSegmentLayer,\r\n // tipConfig.metamanagerSegments,\r\n // {\r\n // groupName: 'ITS Inventory Layers',\r\n // collapse: true,\r\n // addCheck: false,\r\n // items: tipConfig.itsLayerCollection.layers\r\n // }\r\n];\r\n\r\nlet legend = new LayerLegend(layerArray, 'legend-container', {});\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./test/demo/simple_map.ts"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 1b9d70c904b3cb6688ad?eabd**","webpack:///./src/util/provide.ts?76dd**","webpack:///external \"$\"?57aa**","webpack:///external \"ol\"?81ed**","webpack:///./src/util/makeGuid.ts?ca11**","webpack:///./src/olHelpers/mapPopup.ts?2889**","webpack:///./src/olHelpers/mapInteractionBase.ts?6975**","webpack:///./src/olHelpers/mapMove.ts?7a9b**","webpack:///./src/olHelpers/quickMap.ts?b6a4**","webpack:///./src/layers/LayerBase.ts?3803**","webpack:///./src/util/checkDefined.ts?b100**","webpack:///./src/layers/LayerEsriMapServer.ts?77b1*","webpack:///./src/olHelpers/mapMoveCls.ts?3191**","webpack:///./src/olHelpers/mapPopupCls.ts?a22b**","webpack:///./src/olHelpers/quickMapBase.ts?b605**","webpack:///./src/olHelpers/zoomResolutionConvert.ts?d53b**","webpack:///./src/olHelpers/esriToOlStyle.ts?420c*","webpack:///./src/collections/LayerLegend.ts?e3b1","webpack:///./test/demo/simple_map.ts"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;AChEA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,2wE;;;;;;AC7B3C,mB;;;;;;ACAA,oB;;;;;;;ACAA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,2CAA2C,u/C;;;;;;;ACpB3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,2CAA2C,mtB;;;;;;;ACZ3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,++H;;;;;;;AC5E3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,2CAA2C,2rB;;;;;;;ACZ3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO,YAAY;AAC9B,WAAW,OAAO;AAClB,WAAW,OAAO,mBAAmB;AACrC,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,u7E;;;;;;;ACnC3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,wBAAwB;AACnE;AACA;AACA,oGAAoG;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,2m0B;;;;;;;AClZ3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uqD;;;;;;;AC1B3C;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,wBAAwB;AACvC;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA,4EAA4E;AAC5E,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,qBAAqB,yBAAyB;AAC9C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,24Y;;;;;;;ACxJ3C;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,m6uB;;;;;;;AC9O3C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,gBAAgB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF,6EAA6E;AAC7E,8FAA8F;AAC9F,sCAAsC,QAAQ;AAC9C,yFAAyF;AACzF,sCAAsC,MAAM,OAAO,MAAM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,6CAA6C,8BAA8B;AAC3E,iDAAiD,wCAAwC;AACzF,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,cAAc;AAC7B,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,gBAAgB;AAC/B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,OAAO,mBAAmB;AACzC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,gBAAgB;AAC/B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,mn1C;;;;;;;AC5a3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,sCAAsC,8BAA8B;AACpE,yCAAyC,gDAAgD,aAAa,EAAE;AACxG,sCAAsC;AACtC,yCAAyC;AACzC;AACA;AACA,mDAAmD,WAAW,WAAW,yBAAyB;AAClG,6CAA6C,aAAa,aAAa,oBAAoB,eAAe,WAAW;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD,4CAA4C,oBAAoB,2BAA2B,oBAAoB;AAC/G;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,+inB;;;;;;;AC3F3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,2uJ;;;;;;;AC3E3C;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,OAAO;AAClB;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,6BAA6B;AAC7B,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qDAAqD,yCAAyC;AAC9F,qBAAqB;AACrB,iBAAiB;AACjB,iHAAiH;AACjH;AACA;AACA;AACA,8CAA8C,sBAAsB,yCAAyC;AAC7G,iBAAiB;AACjB,wGAAwG;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,0EAA0E;AAC1E,iDAAiD;AACjD,iDAAiD;AACjD,wDAAwD;AACxD,2DAA2D;AAC3D,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,0EAA0E;AAC1E,0EAA0E;AAC1E,iDAAiD;AACjD,iDAAiD;AACjD,wDAAwD;AACxD,2DAA2D;AAC3D,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,aAAa,OAAO;AACpB,cAAc,UAAU;AACxB,cAAc,OAAO;AACrB;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,8CAA8C,kCAAkC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA,8FAA8F;AAC9F;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA,+FAA+F;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,u5lC;;;;;;;ACpX3C;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO,gBAAgB;AACtC,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,kBAAkB;AACjC,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,WAAW;AAC1B,eAAe,MAAM;AACrB;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,YAAY;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM,8CAA8C,aAAa,OAAO,aAAa,QAAQ,aAAa,QAAQ,UAAU;AAC3I,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA;AACA,qDAAqD,2BAA2B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,gBAAgB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,gBAAgB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,mCAAmC;AACnC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,2CAA2C,u66B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9R3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uKAAuK,8CAA8C;AACrN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE,2CAA2C,28E","file":"simple_map.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\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 40);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1b9d70c904b3cb6688ad","/**\r\n * Created by gavorhes on 12/10/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\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 var parts = namespace.split('.');\r\n var nameSpace = window['gv'];\r\n for (var i = 0; i < parts.length; i++) {\r\n var newObject = nameSpace[parts[i]];\r\n if (typeof newObject == 'undefined') {\r\n nameSpace[parts[i]] = {};\r\n }\r\n nameSpace = nameSpace[parts[i]];\r\n }\r\n return nameSpace;\r\n}\r\nprovide('util');\r\nwindow['gv'].util.provide = provide;\r\nexports.default = provide;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3ZpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUdIOzs7O0dBSUc7QUFDSCxpQkFBaUIsU0FBUztJQUN0QixZQUFZLENBQUM7SUFDYixFQUFFLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDO1FBQ2hDLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwQyxFQUFFLENBQUMsQ0FBQyxPQUFPLFNBQVMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1lBQ2pDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUVELFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFFcEMsa0JBQWUsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTAvMjAxNS5cclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIGNyZWF0ZSBhIG5hbWVzcGFjZSBvbiB0aGUgZ3Ygb2JqZWN0XHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UgdG8gY3JlYXRlXHJcbiAqIEByZXR1cm5zIHtvYmplY3R9IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5hbWVzcGFjZVxyXG4gKi9cclxuZnVuY3Rpb24gcHJvdmlkZShuYW1lc3BhY2Upe1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvd1snZ3YnXSA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgd2luZG93WydndiddID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBhcnRzID0gbmFtZXNwYWNlLnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgbmFtZVNwYWNlID0gd2luZG93WydndiddO1xyXG5cclxuICAgIGZvciAobGV0IGk9MDsgaTwgcGFydHMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGxldCBuZXdPYmplY3QgPSBuYW1lU3BhY2VbcGFydHNbaV1dO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG5ld09iamVjdCA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgICAgIG5hbWVTcGFjZVtwYXJ0c1tpXV0gPSB7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5hbWVTcGFjZSA9IG5hbWVTcGFjZVtwYXJ0c1tpXV07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5hbWVTcGFjZTtcclxufVxyXG5cclxucHJvdmlkZSgndXRpbCcpO1xyXG53aW5kb3dbJ2d2J10udXRpbC5wcm92aWRlID0gcHJvdmlkZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHByb3ZpZGU7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/util/provide.ts\n// module id = 0\n// module chunks = 0 1 2 3 4 5 6","module.exports = $;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"$\"\n// module id = 1\n// module chunks = 0 1 2 3 4 5 6","module.exports = ol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ol\"\n// module id = 2\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"./provide\");\r\nvar nm = provide_1.default('util');\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 var r = Math.random() * 16 | 0, v = c == 'x' ? r : r & 0x3 | 0x8;\r\n return v.toString(16);\r\n });\r\n}\r\nnm.makeGuid = makeGuid;\r\nexports.default = makeGuid;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUd1aWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYWtlR3VpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgscUNBQWdDO0FBQ2hDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFHekI7OztHQUdHO0FBQ0g7SUFDUSxNQUFNLENBQUMsc0NBQXNDO1NBQ3hDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUVqRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztBQUVmLENBQUM7QUFDRCxFQUFFLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUN2QixrQkFBZSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8zLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi9wcm92aWRlJztcclxubGV0IG5tID0gcHJvdmlkZSgndXRpbCcpO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBndWlkcyBhcmUgdXNlZCB0byB1bmlxdWVseSBpZGVudGlmeSBncm91cHMgYW5kIGZlYXR1cmVzXHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IGEgbmV3IGd1aWRcclxuICovXHJcbmZ1bmN0aW9uIG1ha2VHdWlkKCkge1xyXG4gICAgICAgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4J1xyXG4gICAgICAgICAgICAucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbiAoYykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHIgPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwLCB2ID0gYyA9PSAneCcgPyByIDogciAmIDB4MyB8IDB4ODtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxufVxyXG5ubS5tYWtlR3VpZCA9IG1ha2VHdWlkO1xyXG5leHBvcnQgZGVmYXVsdCBtYWtlR3VpZDtcclxuXHJcblxyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/util/makeGuid.ts\n// module id = 3\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar mapPopupCls_1 = require(\"./mapPopupCls\");\r\n/**\r\n * The single popup object catch is that it is common to multimap pages\r\n * @type {MapPopupCls}\r\n */\r\nexports.mapPopup = new mapPopupCls_1.default();\r\nexports.default = exports.mapPopup;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwUG9wdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBQb3B1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsNkNBQXdDO0FBRXhDOzs7R0FHRztBQUNVLFFBQUEsUUFBUSxHQUFHLElBQUkscUJBQVcsRUFBaUIsQ0FBQztBQUN6RCxrQkFBZSxnQkFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMy8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBNYXBQb3B1cENscyBmcm9tICcuL21hcFBvcHVwQ2xzJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2luZ2xlIHBvcHVwIG9iamVjdCBjYXRjaCBpcyB0aGF0IGl0IGlzIGNvbW1vbiB0byBtdWx0aW1hcCBwYWdlc1xyXG4gKiBAdHlwZSB7TWFwUG9wdXBDbHN9XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgbWFwUG9wdXAgPSBuZXcgTWFwUG9wdXBDbHMoKSBhcyBNYXBQb3B1cENscztcclxuZXhwb3J0IGRlZmF1bHQgbWFwUG9wdXA7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapPopup.ts\n// module id = 4\n// module chunks = 0 1 2 3","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Created by gavorhes on 12/8/2015.\r\n */\r\nvar provide_1 = require(\"../util/provide\");\r\nvar nm = provide_1.default('olHelpers');\r\n/**\r\n * base interaction\r\n */\r\nvar MapInteractionBase = (function () {\r\n /**\r\n * map interaction base\r\n * @param subtype - the interaction subtype\r\n */\r\n function MapInteractionBase(subtype) {\r\n this._map = null;\r\n this._initialized = false;\r\n this._subtype = subtype;\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 MapInteractionBase.prototype.init = function (theMap) {\r\n if (!this._initialized) {\r\n this._map = theMap;\r\n this._initialized = true;\r\n }\r\n };\r\n Object.defineProperty(MapInteractionBase.prototype, \"map\", {\r\n /**\r\n * get reference to the ol map object\r\n * @returns {ol.Map} the map object\r\n */\r\n get: function () {\r\n return this._map;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(MapInteractionBase.prototype, \"initialized\", {\r\n /**\r\n * get if is initialized\r\n * @returns {boolean} is initialized\r\n */\r\n get: function () {\r\n return this._initialized;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Check the initialization status and throw exception if not valid yet\r\n * @protected\r\n */\r\n MapInteractionBase.prototype._checkInit = function () {\r\n if (!this.initialized) {\r\n var 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 * Check the initialization status and throw exception if not valid yet\r\n */\r\n MapInteractionBase.prototype.checkInit = function () {\r\n this._checkInit();\r\n };\r\n return MapInteractionBase;\r\n}());\r\nexports.MapInteractionBase = MapInteractionBase;\r\nnm.MapInteractionBase = MapInteractionBase;\r\nexports.default = MapInteractionBase;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwSW50ZXJhY3Rpb25CYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWFwSW50ZXJhY3Rpb25CYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7O0dBRUc7QUFDSCwyQ0FBc0M7QUFFdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUloQzs7R0FFRztBQUNIO0lBS0k7OztPQUdHO0lBQ0gsNEJBQVksT0FBZTtRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlDQUFJLEdBQUosVUFBSyxNQUFjO1FBQ2YsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUEsQ0FBQztZQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztZQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQU1ELHNCQUFJLG1DQUFHO1FBSlA7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyQixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDJDQUFXO1FBSmY7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM3QixDQUFDOzs7T0FBQTtJQUVEOzs7T0FHRztJQUNILHVDQUFVLEdBQVY7UUFDSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksR0FBRyxHQUFNLElBQUksQ0FBQyxRQUFRLDRCQUF5QixDQUFDO1lBQ3BELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsTUFBTSxHQUFHLENBQUM7UUFDZCxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0NBQVMsR0FBVDtRQUNJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0wseUJBQUM7QUFBRCxDQUFDLEFBOURELElBOERDO0FBOURZLGdEQUFrQjtBQWdFL0IsRUFBRSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0FBQzNDLGtCQUFlLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvOC8yMDE1LlxyXG4gKi9cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnb2xIZWxwZXJzJyk7XHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiBiYXNlIGludGVyYWN0aW9uXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTWFwSW50ZXJhY3Rpb25CYXNlIHtcclxuICAgIF9tYXA6IG9sLk1hcDtcclxuICAgIF9pbml0aWFsaXplZDogYm9vbGVhbjtcclxuICAgIF9zdWJ0eXBlOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBtYXAgaW50ZXJhY3Rpb24gYmFzZVxyXG4gICAgICogQHBhcmFtIHN1YnR5cGUgLSB0aGUgaW50ZXJhY3Rpb24gc3VidHlwZVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihzdWJ0eXBlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9tYXAgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fc3VidHlwZSA9IHN1YnR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBiYXNlIGluaXRpYWxpemVyLCByZXR1cm5zIHRydWUgZm9yIGFscmVhZHkgaW5pdGlhbGl6ZWRcclxuICAgICAqIEBwYXJhbSB0aGVNYXAgLSB0aGUgb2wgTWFwXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIGZvciBhbHJlYWR5IGluaXRpYWxpemVkXHJcbiAgICAgKi9cclxuICAgIGluaXQodGhlTWFwOiBvbC5NYXApe1xyXG4gICAgICAgIGlmICghdGhpcy5faW5pdGlhbGl6ZWQpe1xyXG4gICAgICAgICAgICB0aGlzLl9tYXAgPSB0aGVNYXA7XHJcbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgcmVmZXJlbmNlIHRvIHRoZSBvbCBtYXAgb2JqZWN0XHJcbiAgICAgKiBAcmV0dXJucyB7b2wuTWFwfSB0aGUgbWFwIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBnZXQgbWFwKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgaWYgaXMgaW5pdGlhbGl6ZWRcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBpcyBpbml0aWFsaXplZFxyXG4gICAgICovXHJcbiAgICBnZXQgaW5pdGlhbGl6ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxpemVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgdGhlIGluaXRpYWxpemF0aW9uIHN0YXR1cyBhbmQgdGhyb3cgZXhjZXB0aW9uIGlmIG5vdCB2YWxpZCB5ZXRcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqL1xyXG4gICAgX2NoZWNrSW5pdCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgbGV0IG1zZyA9IGAke3RoaXMuX3N1YnR5cGV9IG9iamVjdCBub3QgaW5pdGlhbGl6ZWRgO1xyXG4gICAgICAgICAgICBhbGVydChtc2cpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhtc2cpO1xyXG4gICAgICAgICAgICB0aHJvdyBtc2c7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgdGhlIGluaXRpYWxpemF0aW9uIHN0YXR1cyBhbmQgdGhyb3cgZXhjZXB0aW9uIGlmIG5vdCB2YWxpZCB5ZXRcclxuICAgICAqL1xyXG4gICAgY2hlY2tJbml0KCl7XHJcbiAgICAgICAgdGhpcy5fY2hlY2tJbml0KCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbm5tLk1hcEludGVyYWN0aW9uQmFzZSA9IE1hcEludGVyYWN0aW9uQmFzZTtcclxuZXhwb3J0IGRlZmF1bHQgTWFwSW50ZXJhY3Rpb25CYXNlO1xyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapInteractionBase.ts\n// module id = 5\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar mapMoveCls_1 = require(\"./mapMoveCls\");\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\nexports.mapMove = new mapMoveCls_1.default();\r\nexports.default = exports.mapMove;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwTW92ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hcE1vdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUVILDJDQUFzQztBQUV0Qzs7O0dBR0c7QUFFVSxRQUFBLE9BQU8sR0FBRyxJQUFJLG9CQUFVLEVBQUUsQ0FBQztBQUN4QyxrQkFBZSxlQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMS8zLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IE1hcE1vdmVDbHMgZnJvbSAnLi9tYXBNb3ZlQ2xzJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2luZ2xlIG1hcCBtb3ZlIG9iamVjdCBjYXRjaCBpcyB0aGF0IGl0IGlzIGNvbW1vbiB0byBtdWx0aW1hcCBwYWdlc1xyXG4gKiBAdHlwZSB7TWFwTW92ZUNsc31cclxuICovXHJcblxyXG5leHBvcnQgY29uc3QgbWFwTW92ZSA9IG5ldyBNYXBNb3ZlQ2xzKCk7XHJcbmV4cG9ydCBkZWZhdWx0IG1hcE1vdmU7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapMove.ts\n// module id = 6\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 12/15/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar quickMapBase_1 = require(\"./quickMapBase\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar mapMove_1 = require(\"./mapMove\");\r\nvar mapPopup_1 = require(\"./mapPopup\");\r\nvar nm = provide_1.default('olHelpers');\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 {ol.Map} the ol map\r\n */\r\nfunction quickMap(options) {\r\n var m = quickMapBase_1.quickMapBase(options);\r\n mapMove_1.default.init(m);\r\n mapPopup_1.default.init(m);\r\n return m;\r\n}\r\nexports.quickMap = quickMap;\r\nnm.quickMap = quickMap;\r\nexports.default = quickMap;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2tNYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJxdWlja01hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsK0NBQTZEO0FBQzdELDJDQUFzQztBQUN0QyxxQ0FBZ0M7QUFDaEMsdUNBQWtDO0FBRWxDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFOUI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsa0JBQXlCLE9BQTBCO0lBQy9DLElBQUksQ0FBQyxHQUFHLDJCQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsaUJBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEIsa0JBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNiLENBQUM7QUFMRCw0QkFLQztBQUdELEVBQUUsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3ZCLGtCQUFlLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzE1LzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtxdWlja01hcE9wdGlvbnMsIHF1aWNrTWFwQmFzZX0gZnJvbSAnLi9xdWlja01hcEJhc2UnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFwTW92ZSBmcm9tICcuL21hcE1vdmUnO1xyXG5pbXBvcnQgbWFwUG9wdXAgZnJvbSAnLi9tYXBQb3B1cCc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5sZXQgbm0gPSBwcm92aWRlKCdvbEhlbHBlcnMnKTtcclxuXHJcbi8qKlxyXG4gKiBTZXRzIHVwIGEgbWFwIHdpdGggc29tZSBkZWZhdWx0IHBhcmFtZXRlcnMgYW5kIGluaXRpYWxpemVzXHJcbiAqIG1hcE1vdmUgYW5kIG1hcFBvcHVwXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucz17fV0gY29uZmlnIG9wdGlvbnNcclxuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmRpdklkPW1hcF0gbWFwIGRpdiBpZFxyXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnMuY2VudGVyPXt9XSBjZW50ZXIgY29uZmlnIG9iamVjdFxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuY2VudGVyLng9LTEwMDE4Mzc4XSBjZW50ZXIgeCwgd2ViIG1lcmNhdG9yIHggb3IgbG9uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5jZW50ZXIueT01NTc0OTEwXSBjZW50ZXIgeSwgd2ViIG1lcmNhdG9yIHkgb3IgbGF0XHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56b29tPTddIHpvb20gbGV2ZWxcclxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSBtaW4gem9vbVxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIG1heCB6b29tXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuYmFzZVN3aXRjaGVyPXRydWVdIGlmIGFkZCBiYXNlIG1hcCBzd2l0Y2hlclxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmZ1bGxTY3JlZW49ZmFsc2VdIGlmIGFkZCBiYXNlIG1hcCBzd2l0Y2hlclxyXG4gKiBAcmV0dXJucyB7b2wuTWFwfSB0aGUgb2wgbWFwXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcXVpY2tNYXAob3B0aW9ucz8gOiBxdWlja01hcE9wdGlvbnMpOiBvbC5NYXAge1xyXG4gICAgbGV0IG0gPSBxdWlja01hcEJhc2Uob3B0aW9ucyk7XHJcbiAgICBtYXBNb3ZlLmluaXQobSk7XHJcbiAgICBtYXBQb3B1cC5pbml0KG0pO1xyXG4gICAgcmV0dXJuIG07XHJcbn1cclxuXHJcblxyXG5ubS5xdWlja01hcCA9IHF1aWNrTWFwO1xyXG5leHBvcnQgZGVmYXVsdCBxdWlja01hcDtcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/quickMap.ts\n// module id = 7\n// module chunks = 0 1 2 3","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar zoomResolutionConvert = require(\"../olHelpers/zoomResolutionConvert\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar makeGuid_1 = require(\"../util/makeGuid\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('layers');\r\n/**\r\n * The base layer class\r\n * @abstract\r\n */\r\nvar LayerBase = (function () {\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 function LayerBase(url, options) {\r\n if (options === void 0) { options = {}; }\r\n options = options || {};\r\n if (typeof url !== 'string') {\r\n throw 'Invalid URL';\r\n }\r\n this._url = url;\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 this.id = options.id || makeGuid_1.default();\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 if (this._opacity > 1) {\r\n this._opacity = 1;\r\n }\r\n else if (this._opacity < 0) {\r\n this._opacity = 0;\r\n }\r\n this._visible = typeof options.visible === 'boolean' ? options.visible : true;\r\n this._source = undefined;\r\n /**\r\n *\r\n * @protected\r\n */\r\n this._olLayer = undefined;\r\n this._loaded = false;\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 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 this.loadCallback = typeof options.loadCallback == 'function' ? options.loadCallback : function () {\r\n };\r\n this._legendContent = '';\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 }\r\n else {\r\n this._legendContent += \"<label class=\\\"legend-layer-name\\\">\" + this.name + \"</label>\";\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 * 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 LayerBase.prototype._load = function () {\r\n if (this.loaded == true) {\r\n return true;\r\n }\r\n else {\r\n this._loaded = true;\r\n return false;\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 LayerBase.prototype.getLegendDiv = function () {\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 * @param additionalContent - additional content to add to legend\r\n * @private\r\n */\r\n LayerBase.prototype._addLegendContent = function (additionalContent) {\r\n if (additionalContent === void 0) { additionalContent = ''; }\r\n var addCollapse = additionalContent.indexOf('<ul>') > -1;\r\n if (addCollapse) {\r\n additionalContent = '<span class=\"legend-items-expander\" title=\"Expand/Collapse\">▼</span>' + additionalContent;\r\n }\r\n this._legendContent += additionalContent;\r\n this._$legendDiv = $(\"#\" + this.id + \"-legend-layer-div\");\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 * add additional content to the legend\r\n * @param {string} [additionalContent=] - additonal content to add\r\n */\r\n LayerBase.prototype.addLegendContent = function (additionalContent) {\r\n this._addLegendContent(additionalContent);\r\n };\r\n LayerBase.prototype.applyCollapse = function () {\r\n if (this._applyCollapseCalled) {\r\n console.log('collapse already applied');\r\n return undefined;\r\n }\r\n this._$legendDiv = $(\"#\" + this.id + \"-legend-layer-div\");\r\n if (this._$legendDiv.length > 0) {\r\n var $expander = this._$legendDiv.find('.legend-items-expander');\r\n if ($expander.length > 0) {\r\n this._applyCollapseCalled = true;\r\n $expander.click(function () {\r\n var $this = $(this);\r\n $this.siblings('ul').slideToggle();\r\n if ($this.hasClass('legend-layer-group-collapsed')) {\r\n $this.removeClass('legend-layer-group-collapsed');\r\n $this.html('▼');\r\n }\r\n else {\r\n $this.addClass('legend-layer-group-collapsed');\r\n $this.html('▶');\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 * trick to refresh the layer\r\n */\r\n LayerBase.prototype.refresh = function () {\r\n if (this.source) {\r\n this.source.refresh();\r\n }\r\n };\r\n Object.defineProperty(LayerBase.prototype, \"id\", {\r\n get: function () {\r\n return this._id;\r\n },\r\n set: function (newId) {\r\n this._id = newId;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"animate\", {\r\n get: function () {\r\n return this._animate;\r\n },\r\n set: function (animate) {\r\n this._animate = animate;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"legendContent\", {\r\n /**\r\n * get the legend content\r\n * @type {string}\r\n */\r\n get: function () {\r\n return this._legendContent;\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: function (newVal) {\r\n this._legendContent = newVal;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"params\", {\r\n /**\r\n * get the map get params\r\n * @type {object}\r\n */\r\n get: function () {\r\n return this._params;\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: function (newParams) {\r\n this._params = newParams;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"minResolution\", {\r\n /**\r\n * get the minimum resolution\r\n * @type {number|*}\r\n */\r\n get: function () {\r\n return this._minResolution;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"maxResolution\", {\r\n /**\r\n * get the maximum resolution\r\n * @type {number|*}\r\n */\r\n get: function () {\r\n return this._maxResolution;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"minZoom\", {\r\n /**\r\n * get min zoom\r\n * @type {number|*}\r\n */\r\n get: function () {\r\n return this._minZoom;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"maxZoom\", {\r\n /**\r\n * get max zoom\r\n * @type {number|*}\r\n */\r\n get: function () {\r\n return this._maxZoom;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"url\", {\r\n /**\r\n * get the url\r\n * @type {string}\r\n */\r\n get: function () {\r\n return this._url;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"visible\", {\r\n /**\r\n * Get the layer visibility\r\n * @type {boolean}\r\n */\r\n get: function () {\r\n return this._visible;\r\n },\r\n /**\r\n * set the visibility\r\n * @param visibility\r\n */\r\n set: function (visibility) {\r\n this.setVisible(visibility);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LayerBase.prototype.setVisible = function (visibility) {\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 Object.defineProperty(LayerBase.prototype, \"opacity\", {\r\n /**\r\n * Get the layer opacity\r\n * @type {number}\r\n */\r\n get: function () {\r\n return this._opacity;\r\n },\r\n /**\r\n * Set the layer opacity\r\n * @param {number} opacity - layer opacity\r\n */\r\n set: function (opacity) {\r\n this._opacity = opacity;\r\n if (this.olLayer) {\r\n this.olLayer.setOpacity(this._opacity);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"name\", {\r\n /**\r\n * Get the layer name\r\n * @type {string}\r\n */\r\n get: function () {\r\n return this._name;\r\n },\r\n /**\r\n * set the layer name\r\n * @param {string} newName - the new name\r\n */\r\n set: function (newName) {\r\n this._name = newName;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"loaded\", {\r\n /**\r\n * Check if the layer is loaded\r\n * @type {boolean}\r\n */\r\n get: function () {\r\n return this._loaded;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerBase.prototype, \"source\", {\r\n /**\r\n * get the layer source\r\n * @type {*}\r\n */\r\n get: function () {\r\n return this.getSource();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LayerBase.prototype.getSource = function () {\r\n return this._source;\r\n };\r\n Object.defineProperty(LayerBase.prototype, \"zIndex\", {\r\n /**\r\n * get the z index\r\n */\r\n get: function () {\r\n return this._zIndex;\r\n },\r\n /**\r\n * set the z index\r\n */\r\n set: function (newZ) {\r\n this._zIndex = newZ;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LayerBase.prototype.setZIndex = function (newZ) {\r\n };\r\n Object.defineProperty(LayerBase.prototype, \"olLayer\", {\r\n /**\r\n * the the ol layer\r\n */\r\n get: function () {\r\n return this.getOlLayer();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LayerBase.prototype.getOlLayer = function () {\r\n return this._olLayer;\r\n };\r\n return LayerBase;\r\n}());\r\nexports.LayerBase = LayerBase;\r\nnm.LayerBase = LayerBase;\r\nexports.default = LayerBase;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMEVBQTRFO0FBQzVFLDJDQUFzQztBQUV0Qyw2Q0FBd0M7QUFDeEMsMEJBQTZCO0FBRTdCLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFtQjdCOzs7R0FHRztBQUNIO0lBMEJJOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsbUJBQVksR0FBVyxFQUFFLE9BQThCO1FBQTlCLHdCQUFBLEVBQUEsWUFBOEI7UUFDbkQsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFzQixDQUFDO1FBRTVDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxhQUFhLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBR2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxPQUFPLENBQUMsTUFBTSxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUN2RSxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sT0FBTyxDQUFDLGNBQWMsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDbkcsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxjQUFjLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBRWxHLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxrQkFBUSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLGVBQWUsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sT0FBTyxDQUFDLE9BQU8sSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFFekUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTLEdBQUcsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFOUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7UUFFekI7OztXQUdHO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFFckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUUsRUFBRSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsY0FBYyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGNBQWMsSUFBSSxPQUFPLENBQUM7UUFDbkMsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlFLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxPQUFPLENBQUMsT0FBTyxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUNqRixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sT0FBTyxDQUFDLE9BQU8sSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7UUFDakYsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLE9BQU8sQ0FBQyxNQUFNLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRXRFLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxPQUFPLENBQUMsWUFBWSxJQUFJLFVBQVUsR0FBRyxPQUFPLENBQUMsWUFBWSxHQUFHO1FBQ3ZGLENBQUMsQ0FBQztRQUdGLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXpCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLElBQUksK0JBQTBCLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxHQUFHLEVBQUUsT0FBRztpQkFDN0UsaUNBQTRCLElBQUksQ0FBQyxFQUFFLHdDQUFvQyxDQUFBLENBQUM7WUFDNUUsSUFBSSxDQUFDLGNBQWMsSUFBSSxrQkFBZSxJQUFJLENBQUMsRUFBRSwwREFBa0QsSUFBSSxDQUFDLElBQUksYUFBVSxDQUFDO1FBQ3ZILENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxjQUFjLElBQUksd0NBQW9DLElBQUksQ0FBQyxJQUFJLGFBQVUsQ0FBQztRQUNuRixDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxPQUFPLENBQUMsYUFBYSxLQUFLLFFBQVEsR0FBRyxPQUFPLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBQzFHLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gseUJBQUssR0FBTDtRQUNJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBRXBCLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDakIsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxnQ0FBWSxHQUFaO1FBQ0ksTUFBTSxDQUFDLDBDQUFxQyxJQUFJLENBQUMsRUFBRSw0QkFBc0IsSUFBSSxDQUFDLGNBQWMsV0FBUSxDQUFDO0lBQ3pHLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gscUNBQWlCLEdBQWpCLFVBQWtCLGlCQUFvQjtRQUFwQixrQ0FBQSxFQUFBLHNCQUFvQjtRQUVsQyxJQUFJLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFekQsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNkLGlCQUFpQixHQUFHLDRFQUE0RSxHQUFHLGlCQUFpQixDQUFDO1FBQ3pILENBQUM7UUFFRCxJQUFJLENBQUMsY0FBYyxJQUFJLGlCQUFpQixDQUFDO1FBRXpDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLE1BQUksSUFBSSxDQUFDLEVBQUUsc0JBQW1CLENBQUMsQ0FBQztRQUVyRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsb0NBQWdCLEdBQWhCLFVBQWlCLGlCQUFpQjtRQUM5QixJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsaUNBQWEsR0FBYjtRQUNJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7WUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1lBRXhDLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDckIsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLE1BQUksSUFBSSxDQUFDLEVBQUUsc0JBQW1CLENBQUMsQ0FBQztRQUVyRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTlCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFFaEUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO2dCQUVqQyxTQUFTLENBQUMsS0FBSyxDQUFDO29CQUNaLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFFcEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFFbkMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDakQsS0FBSyxDQUFDLFdBQVcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO3dCQUNsRCxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUMxQixDQUFDO29CQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNKLEtBQUssQ0FBQyxRQUFRLENBQUMsOEJBQThCLENBQUMsQ0FBQzt3QkFDL0MsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDMUIsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFFSCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztvQkFDdkIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDL0IsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsMkJBQU8sR0FBUDtRQUNJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0wsQ0FBQztJQUVELHNCQUFJLHlCQUFFO2FBQU47WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNwQixDQUFDO2FBRUQsVUFBTyxLQUFhO1lBQ2hCLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLENBQUM7OztPQUpBO0lBTUQsc0JBQUksOEJBQU87YUFBWDtZQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3pCLENBQUM7YUFFRCxVQUFZLE9BQWdCO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQzVCLENBQUM7OztPQUpBO0lBVUQsc0JBQUksb0NBQWE7UUFKakI7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMvQixDQUFDO1FBRUQ7Ozs7V0FJRzthQUNILFVBQWtCLE1BQU07WUFDcEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7UUFDakMsQ0FBQzs7O09BVEE7SUFlRCxzQkFBSSw2QkFBTTtRQUpWOzs7V0FHRzthQUNIO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDeEIsQ0FBQztRQUVEOzs7O1dBSUc7YUFDSCxVQUFXLFNBQVM7WUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7UUFDN0IsQ0FBQzs7O09BVEE7SUFlRCxzQkFBSSxvQ0FBYTtRQUpqQjs7O1dBR0c7YUFDSDtZQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQy9CLENBQUM7OztPQUFBO0lBTUQsc0JBQUksb0NBQWE7UUFKakI7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMvQixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDhCQUFPO1FBSlg7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN6QixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDhCQUFPO1FBSlg7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN6QixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDBCQUFHO1FBSlA7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyQixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDhCQUFPO1FBSlg7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN6QixDQUFDO1FBRUQ7OztXQUdHO2FBQ0gsVUFBWSxVQUFtQjtZQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7OztPQVJBO0lBVVMsOEJBQVUsR0FBcEIsVUFBcUIsVUFBbUI7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDM0IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkMsRUFBRSxDQUFDLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFPRCxzQkFBSSw4QkFBTztRQUpYOzs7V0FHRzthQUNIO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDekIsQ0FBQztRQUVEOzs7V0FHRzthQUNILFVBQVksT0FBTztZQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1lBQ3hCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxDQUFDO1FBQ0wsQ0FBQzs7O09BWEE7SUFpQkQsc0JBQUksMkJBQUk7UUFKUjs7O1dBR0c7YUFDSDtZQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RCLENBQUM7UUFFRDs7O1dBR0c7YUFDSCxVQUFTLE9BQU87WUFDWixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztRQUN6QixDQUFDOzs7T0FSQTtJQWNELHNCQUFJLDZCQUFNO1FBSlY7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN4QixDQUFDOzs7T0FBQTtJQU1ELHNCQUFJLDZCQUFNO1FBSlY7OztXQUdHO2FBQ0g7WUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzVCLENBQUM7OztPQUFBO0lBR1MsNkJBQVMsR0FBbkI7UUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBS0Qsc0JBQUksNkJBQU07UUFIVjs7V0FFRzthQUNIO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDeEIsQ0FBQztRQUVEOztXQUVHO2FBQ0gsVUFBVyxJQUFZO1lBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUM7OztPQVBBO0lBU1MsNkJBQVMsR0FBbkIsVUFBb0IsSUFBWTtJQUVoQyxDQUFDO0lBS0Qsc0JBQUksOEJBQU87UUFIWDs7V0FFRzthQUNIO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM3QixDQUFDOzs7T0FBQTtJQUVTLDhCQUFVLEdBQXBCO1FBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUNMLGdCQUFDO0FBQUQsQ0FBQyxBQXhaRCxJQXdaQztBQXhacUIsOEJBQVM7QUEwWi9CLEVBQUUsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0FBQ3pCLGtCQUFlLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHpvb21SZXNvbHV0aW9uQ29udmVydCBmcm9tICcuLi9vbEhlbHBlcnMvem9vbVJlc29sdXRpb25Db252ZXJ0JztcclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCBtYWtlR3VpZCBmcm9tICcuLi91dGlsL21ha2VHdWlkJztcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckJhc2VPcHRpb25ze1xyXG4gICAgaWQ/OiBzdHJpbmc7XHJcbiAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgb3BhY2l0eT86IG51bWJlcjtcclxuICAgIHZpc2libGU/OiBib29sZWFuO1xyXG4gICAgbWluWm9vbT86IG51bWJlcjtcclxuICAgIG1heFpvb20/OiBudW1iZXI7XHJcbiAgICBwYXJhbXM/OiBhbnk7XHJcbiAgICB6SW5kZXg/OiBudW1iZXI7XHJcbiAgICBsb2FkQ2FsbGJhY2s/OiBGdW5jdGlvbjtcclxuICAgIGxlZ2VuZENvbGxhcHNlPzogYm9vbGVhbjtcclxuICAgIGxlZ2VuZENoZWNrYm94PzogYm9vbGVhbjtcclxuICAgIGxlZ2VuZENvbnRlbnQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGhlIGJhc2UgbGF5ZXIgY2xhc3NcclxuICogQGFic3RyYWN0XHJcbiAqL1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGF5ZXJCYXNlIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgX2xlZ2VuZENoZWNrYm94OiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF91cmw6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBfb3BhY2l0eTogbnVtYmVyO1xyXG4gICAgcHJvdGVjdGVkIF9taW5ab29tOiBudW1iZXI7XHJcbiAgICBwcm90ZWN0ZWQgX21heFpvb206IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCBfdmlzaWJsZTogYm9vbGVhbjtcclxuICAgIHByb3RlY3RlZCBfbG9hZGVkOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF96SW5kZXg6IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCBfbGVnZW5kQ29udGVudDogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIF9wYXJhbXM6IGFueTtcclxuICAgIHByb3RlY3RlZCBfaWQ6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBfbmFtZTogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIF9zb3VyY2U6IG9sLnNvdXJjZS5Tb3VyY2U7XHJcbiAgICBwcm90ZWN0ZWQgX2FuaW1hdGU6IGJvb2xlYW47XHJcbiAgICBwcm90ZWN0ZWQgX2xlZ2VuZENvbGxhcHNlOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF9tYXhSZXNvbHV0aW9uOiBudW1iZXI7XHJcbiAgICBwcm90ZWN0ZWQgX21pblJlc29sdXRpb246IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCAgXyRsZWdlbmREaXY6IEpRdWVyeTtcclxuICAgIGxvYWRDYWxsYmFjazogRnVuY3Rpb247XHJcbiAgICBwcm90ZWN0ZWQgX29sTGF5ZXI6IG9sLmxheWVyLkxheWVyO1xyXG4gICAgcHJvdGVjdGVkIF9hcHBseUNvbGxhcHNlQ2FsbGVkOiBib29sZWFuO1xyXG5cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYmFzZSBsYXllciBmb3IgYWxsIG90aGVyc1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIHVybCBmb3Igc291cmNlXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmlkPW1ha2VHdWlkKCldIC0gbGF5ZXIgaWRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5uYW1lPVVubmFtZWQgTGF5ZXJdIC0gbGF5ZXIgbmFtZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm9wYWNpdHk9MV0gLSBvcGFjaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnZpc2libGU9dHJ1ZV0gLSBkZWZhdWx0IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5ab29tPXVuZGVmaW5lZF0gLSBtaW4gem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIC0gbWF4IHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnBhcmFtcz17fV0gLSB0aGUgZ2V0IHBhcmFtZXRlcnMgdG8gaW5jbHVkZSB0byByZXRyaWV2ZSB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy56SW5kZXg9MF0gLSB0aGUgeiBpbmRleCBmb3IgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy5sb2FkQ2FsbGJhY2tdIC0gZnVuY3Rpb24gdG8gY2FsbCBvbiBsb2FkLCBjb250ZXh0IHRoaXMgaXMgdGhlIGxheWVyIG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb2xsYXBzZT1mYWxzZV0gLSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGJlIGluaXRpYWxseSBjb2xsYXBzZWRcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ2hlY2tib3g9dHJ1ZV0gLSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGhhdmUgYSBjaGVja2JveCBmb3IgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb250ZW50PXVuZGVmaW5lZF0gLSBhZGRpdGlvbmFsIGNvbnRlbnQgdG8gYWRkIHRvIHRoZSBsZWdlbmRcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IodXJsOiBzdHJpbmcsIG9wdGlvbnM6IExheWVyQmFzZU9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9IGFzIExheWVyQmFzZU9wdGlvbnM7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdXJsICE9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB0aHJvdyAnSW52YWxpZCBVUkwnO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl91cmwgPSB1cmw7XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9wYXJhbXMgPSB0eXBlb2Ygb3B0aW9ucy5wYXJhbXMgPT0gJ29iamVjdCcgPyBvcHRpb25zLnBhcmFtcyA6IHt9O1xyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbGxhcHNlID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kQ29sbGFwc2UgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5sZWdlbmRDb2xsYXBzZSA6IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENoZWNrYm94ID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kQ2hlY2tib3ggPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5sZWdlbmRDaGVja2JveCA6IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuaWQgPSBvcHRpb25zLmlkIHx8IG1ha2VHdWlkKCk7XHJcbiAgICAgICAgdGhpcy5fbmFtZSA9IG9wdGlvbnMubmFtZSB8fCAnVW5uYW1lZCBMYXllcic7XHJcbiAgICAgICAgdGhpcy5hbmltYXRlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IHR5cGVvZiBvcHRpb25zLm9wYWNpdHkgPT0gJ251bWJlcicgPyBvcHRpb25zLm9wYWNpdHkgOiAxO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fb3BhY2l0eSA+IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5fb3BhY2l0eSA9IDE7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9vcGFjaXR5IDwgMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9vcGFjaXR5ID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB0eXBlb2Ygb3B0aW9ucy52aXNpYmxlID09PSAnYm9vbGVhbicgPyBvcHRpb25zLnZpc2libGUgOiB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLl9zb3VyY2UgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByb3RlY3RlZFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuX21heFJlc29sdXRpb24gPSB6b29tUmVzb2x1dGlvbkNvbnZlcnQuem9vbVRvUmVzb2x1dGlvbihvcHRpb25zLm1pblpvb20pO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5fbWF4UmVzb2x1dGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5fbWF4UmVzb2x1dGlvbiArPSAwLjAwMDAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9taW5SZXNvbHV0aW9uID0gem9vbVJlc29sdXRpb25Db252ZXJ0Lnpvb21Ub1Jlc29sdXRpb24ob3B0aW9ucy5tYXhab29tKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWluWm9vbSA9IHR5cGVvZiBvcHRpb25zLm1pblpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLm1pblpvb20gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fbWF4Wm9vbSA9IHR5cGVvZiBvcHRpb25zLm1heFpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLm1heFpvb20gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fekluZGV4ID0gdHlwZW9mIG9wdGlvbnMuekluZGV4ID09ICdudW1iZXInID8gb3B0aW9ucy56SW5kZXggOiAwO1xyXG5cclxuICAgICAgICB0aGlzLmxvYWRDYWxsYmFjayA9IHR5cGVvZiBvcHRpb25zLmxvYWRDYWxsYmFjayA9PSAnZnVuY3Rpb24nID8gb3B0aW9ucy5sb2FkQ2FsbGJhY2sgOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgfTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgPSAnJztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2xlZ2VuZENoZWNrYm94KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgKz0gYDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiAke3RoaXMudmlzaWJsZSA/ICdjaGVja2VkJyA6ICcnfSBgICtcclxuICAgICAgICAgICAgICAgIGBjbGFzcz1cImxlZ2VuZC1jaGVja1wiIGlkPVwiJHt0aGlzLmlkfS1sZWdlbmQtbGF5ZXItY2hlY2tcIj48c3Bhbj48L3NwYW4+YDtcclxuICAgICAgICAgICAgdGhpcy5fbGVnZW5kQ29udGVudCArPSBgPGxhYmVsIGZvcj1cIiR7dGhpcy5pZH0tbGVnZW5kLWxheWVyLWNoZWNrXCIgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbmFtZVwiPiR7dGhpcy5uYW1lfTwvbGFiZWw+YDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9sZWdlbmRDb250ZW50ICs9IGA8bGFiZWwgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbmFtZVwiPiR7dGhpcy5uYW1lfTwvbGFiZWw+YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuXyRsZWdlbmREaXYgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2FwcGx5Q29sbGFwc2VDYWxsZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9hZGRMZWdlbmRDb250ZW50KHR5cGVvZiBvcHRpb25zLmxlZ2VuZENvbnRlbnQgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5sZWdlbmRDb250ZW50IDogdW5kZWZpbmVkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGJhc2UgbG9hZCBmdW5jdGlvbiwgc2V0cyBfbG9hZGVkID0gdHJ1ZSBpZiBpdCBpcyBub3QgYWxyZWFkeVxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IGlmIGFscmVhZHkgbG9hZGVkXHJcbiAgICAgKi9cclxuICAgIF9sb2FkKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmxvYWRlZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHRoZSBsZWdlbmQgaHRtbCwgYmUgc3VyZSB0byBvbmx5IGFkZCB0byB0aGUgRE9NIG9uY2VcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IGh0bWwgZm9yIGxheWVyIHdyYXBwZWQgaW4gYSBkaXZcclxuICAgICAqL1xyXG4gICAgZ2V0TGVnZW5kRGl2KCkge1xyXG4gICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImxlZ2VuZC1sYXllci1kaXZcIiBpZD1cIiR7dGhpcy5pZH0tbGVnZW5kLWxheWVyLWRpdlwiPiR7dGhpcy5fbGVnZW5kQ29udGVudH08L2Rpdj5gO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBhZGRpdGlvbmFsQ29udGVudCAtIGFkZGl0aW9uYWwgY29udGVudCB0byBhZGQgdG8gbGVnZW5kXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBfYWRkTGVnZW5kQ29udGVudChhZGRpdGlvbmFsQ29udGVudD0nJykge1xyXG5cclxuICAgICAgICBsZXQgYWRkQ29sbGFwc2UgPSBhZGRpdGlvbmFsQ29udGVudC5pbmRleE9mKCc8dWw+JykgPiAtMTtcclxuXHJcbiAgICAgICAgaWYgKGFkZENvbGxhcHNlKSB7XHJcbiAgICAgICAgICAgIGFkZGl0aW9uYWxDb250ZW50ID0gJzxzcGFuIGNsYXNzPVwibGVnZW5kLWl0ZW1zLWV4cGFuZGVyXCIgdGl0bGU9XCJFeHBhbmQvQ29sbGFwc2VcIj4mIzk2NjA7PC9zcGFuPicgKyBhZGRpdGlvbmFsQ29udGVudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZENvbnRlbnQgKz0gYWRkaXRpb25hbENvbnRlbnQ7XHJcblxyXG4gICAgICAgIHRoaXMuXyRsZWdlbmREaXYgPSAkKGAjJHt0aGlzLmlkfS1sZWdlbmQtbGF5ZXItZGl2YCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl8kbGVnZW5kRGl2Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5fJGxlZ2VuZERpdi5hcHBlbmQoYWRkaXRpb25hbENvbnRlbnQpO1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5Q29sbGFwc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhZGQgYWRkaXRpb25hbCBjb250ZW50IHRvIHRoZSBsZWdlbmRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbYWRkaXRpb25hbENvbnRlbnQ9XSAtIGFkZGl0b25hbCBjb250ZW50IHRvIGFkZFxyXG4gICAgICovXHJcbiAgICBhZGRMZWdlbmRDb250ZW50KGFkZGl0aW9uYWxDb250ZW50KSB7XHJcbiAgICAgICAgdGhpcy5fYWRkTGVnZW5kQ29udGVudChhZGRpdGlvbmFsQ29udGVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXBwbHlDb2xsYXBzZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5fYXBwbHlDb2xsYXBzZUNhbGxlZCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY29sbGFwc2UgYWxyZWFkeSBhcHBsaWVkJyk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fJGxlZ2VuZERpdiA9ICQoYCMke3RoaXMuaWR9LWxlZ2VuZC1sYXllci1kaXZgKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuXyRsZWdlbmREaXYubGVuZ3RoID4gMCkge1xyXG5cclxuICAgICAgICAgICAgbGV0ICRleHBhbmRlciA9IHRoaXMuXyRsZWdlbmREaXYuZmluZCgnLmxlZ2VuZC1pdGVtcy1leHBhbmRlcicpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCRleHBhbmRlci5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hcHBseUNvbGxhcHNlQ2FsbGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAkZXhwYW5kZXIuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCAkdGhpcyA9ICQodGhpcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICR0aGlzLnNpYmxpbmdzKCd1bCcpLnNsaWRlVG9nZ2xlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy5oYXNDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLnJlbW92ZUNsYXNzKCdsZWdlbmQtbGF5ZXItZ3JvdXAtY29sbGFwc2VkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLmh0bWwoJyYjOTY2MDsnKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5hZGRDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5odG1sKCcmIzk2NTQ7Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2xlZ2VuZENvbGxhcHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJGV4cGFuZGVyLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmljayB0byByZWZyZXNoIHRoZSBsYXllclxyXG4gICAgICovXHJcbiAgICByZWZyZXNoKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNvdXJjZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNvdXJjZS5yZWZyZXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBpZCgpOiBzdHJpbmd7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lkO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBpZChuZXdJZDogc3RyaW5nKXtcclxuICAgICAgICB0aGlzLl9pZCA9IG5ld0lkO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhbmltYXRlKCk6IGJvb2xlYW57XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FuaW1hdGU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGFuaW1hdGUoYW5pbWF0ZTogYm9vbGVhbil7XHJcbiAgICAgICAgdGhpcy5fYW5pbWF0ZSA9IGFuaW1hdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIGxlZ2VuZCBjb250ZW50XHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICovXHJcbiAgICBnZXQgbGVnZW5kQ29udGVudCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbGVnZW5kQ29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgbGVnZW5kIGNvbnRlbnQgZGlyZWN0bHlcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuZXdWYWwgLSBuZXcgY29udGVudFxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICovXHJcbiAgICBzZXQgbGVnZW5kQ29udGVudChuZXdWYWwpIHtcclxuICAgICAgICB0aGlzLl9sZWdlbmRDb250ZW50ID0gbmV3VmFsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtYXAgZ2V0IHBhcmFtc1xyXG4gICAgICogQHR5cGUge29iamVjdH1cclxuICAgICAqL1xyXG4gICAgZ2V0IHBhcmFtcygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IHRoZSBtYXAgZ2V0IHBhcmFtc1xyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IG5ld1BhcmFtcyAtIG5ldyBnZXQgcGFyYW1zXHJcbiAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgKi9cclxuICAgIHNldCBwYXJhbXMobmV3UGFyYW1zKSB7XHJcbiAgICAgICAgdGhpcy5fcGFyYW1zID0gbmV3UGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBtaW5pbXVtIHJlc29sdXRpb25cclxuICAgICAqIEB0eXBlIHtudW1iZXJ8Kn1cclxuICAgICAqL1xyXG4gICAgZ2V0IG1pblJlc29sdXRpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pblJlc29sdXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIG1heGltdW0gcmVzb2x1dGlvblxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWF4UmVzb2x1dGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4UmVzb2x1dGlvbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCBtaW4gem9vbVxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWluWm9vbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWluWm9vbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCBtYXggem9vbVxyXG4gICAgICogQHR5cGUge251bWJlcnwqfVxyXG4gICAgICovXHJcbiAgICBnZXQgbWF4Wm9vbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4Wm9vbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgdXJsXHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICovXHJcbiAgICBnZXQgdXJsKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91cmw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGxheWVyIHZpc2liaWxpdHlcclxuICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHZpc2liaWxpdHlcclxuICAgICAqL1xyXG4gICAgc2V0IHZpc2libGUodmlzaWJpbGl0eTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuc2V0VmlzaWJsZSh2aXNpYmlsaXR5KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0VmlzaWJsZSh2aXNpYmlsaXR5OiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZpc2liaWxpdHk7XHJcbiAgICAgICAgaWYgKHRoaXMub2xMYXllcikge1xyXG4gICAgICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0VmlzaWJsZSh0aGlzLl92aXNpYmxlKTtcclxuICAgICAgICAgICAgaWYgKHZpc2liaWxpdHkgJiYgIXRoaXMuX2xvYWRlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCB0aGUgbGF5ZXIgb3BhY2l0eVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqL1xyXG4gICAgZ2V0IG9wYWNpdHkoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wYWNpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIGxheWVyIG9wYWNpdHlcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvcGFjaXR5IC0gbGF5ZXIgb3BhY2l0eVxyXG4gICAgICovXHJcbiAgICBzZXQgb3BhY2l0eShvcGFjaXR5KSB7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IG9wYWNpdHk7XHJcbiAgICAgICAgaWYgKHRoaXMub2xMYXllcikge1xyXG4gICAgICAgICAgICB0aGlzLm9sTGF5ZXIuc2V0T3BhY2l0eSh0aGlzLl9vcGFjaXR5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGxheWVyIG5hbWVcclxuICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgKi9cclxuICAgIGdldCBuYW1lKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9uYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IHRoZSBsYXllciBuYW1lXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3TmFtZSAtIHRoZSBuZXcgbmFtZVxyXG4gICAgICovXHJcbiAgICBzZXQgbmFtZShuZXdOYW1lKSB7XHJcbiAgICAgICAgdGhpcy5fbmFtZSA9IG5ld05hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGUgbGF5ZXIgaXMgbG9hZGVkXHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqL1xyXG4gICAgZ2V0IGxvYWRlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZ2V0IHRoZSBsYXllciBzb3VyY2VcclxuICAgICAqIEB0eXBlIHsqfVxyXG4gICAgICovXHJcbiAgICBnZXQgc291cmNlKCk6IG9sLnNvdXJjZS5Tb3VyY2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNvdXJjZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0U291cmNlKCk6IG9sLnNvdXJjZS5Tb3VyY2V7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGdldCB0aGUgeiBpbmRleFxyXG4gICAgICovXHJcbiAgICBnZXQgekluZGV4KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3pJbmRleDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCB0aGUgeiBpbmRleFxyXG4gICAgICovXHJcbiAgICBzZXQgekluZGV4KG5ld1o6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX3pJbmRleCA9IG5ld1o7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHNldFpJbmRleChuZXdaOiBudW1iZXIpe1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHRoZSB0aGUgb2wgbGF5ZXJcclxuICAgICAqL1xyXG4gICAgZ2V0IG9sTGF5ZXIoKTogb2wubGF5ZXIuTGF5ZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE9sTGF5ZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0T2xMYXllcigpOiBvbC5sYXllci5MYXllcntcclxuICAgICAgICByZXR1cm4gdGhpcy5fb2xMYXllcjtcclxuICAgIH1cclxufVxyXG5cclxubm0uTGF5ZXJCYXNlID0gTGF5ZXJCYXNlO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckJhc2U7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/layers/LayerBase.ts\n// module id = 8\n// module chunks = 0 1 2 3","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"./provide\");\r\nvar nm = provide_1.default('util.checkDefined');\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\nfunction undefinedOrNull(input) {\r\n \"use strict\";\r\n return (typeof input === 'undefined' || input === null);\r\n}\r\nexports.undefinedOrNull = undefinedOrNull;\r\nnm.undefinedOrNull = undefinedOrNull;\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\nfunction definedAndNotNull(input) {\r\n \"use strict\";\r\n return !(undefinedOrNull(input));\r\n}\r\nexports.definedAndNotNull = definedAndNotNull;\r\nnm.definedAndNotNull = definedAndNotNull;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tEZWZpbmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2hlY2tEZWZpbmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscUNBQWdDO0FBQ2hDLElBQUksRUFBRSxHQUFHLGlCQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUV0Qzs7OztHQUlHO0FBQ0gseUJBQWlDLEtBQUs7SUFDbEMsWUFBWSxDQUFDO0lBRWIsTUFBTSxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBSkQsMENBSUM7QUFFRCxFQUFFLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztBQUdyQzs7OztHQUlHO0FBQ0gsMkJBQW1DLEtBQVU7SUFDekMsWUFBWSxDQUFDO0lBRWIsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBSkQsOENBSUM7QUFFRCxFQUFFLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcHJvdmlkZSBmcm9tICcuL3Byb3ZpZGUnO1xyXG5sZXQgbm0gPSBwcm92aWRlKCd1dGlsLmNoZWNrRGVmaW5lZCcpO1xyXG5cclxuLyoqXHJcbiAqIGNoZWNrIGlmIHRoZSBpbnB1dCBpcyB1bmRlZmluZWQgb3IgbnVsbFxyXG4gKiBAcGFyYW0gaW5wdXQgLSBpbnB1dCBwb2ludGVyXHJcbiAqIEByZXR1cm5zIHRydWUgdW5kZWZpbmVkIG9yIG51bGxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1bmRlZmluZWRPck51bGwgKGlucHV0KTogYm9vbGVhbntcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG5cclxuICAgIHJldHVybiAodHlwZW9mIGlucHV0ID09PSAndW5kZWZpbmVkJyB8fCBpbnB1dCA9PT0gbnVsbCk7XHJcbn1cclxuXHJcbm5tLnVuZGVmaW5lZE9yTnVsbCA9IHVuZGVmaW5lZE9yTnVsbDtcclxuXHJcblxyXG4vKipcclxuICogY2hlY2sgaWYgdGhlIGlucHV0IGlzIGRlZmluZWQgYW5kIG5vdCBudWxsXHJcbiAqIEBwYXJhbSBpbnB1dCAtIGlucHV0IHBvaW50ZXJcclxuICogQHJldHVybnMgdHJ1ZSBkZWZpbmVkIGFuZCBub3QgbnVsbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZWRBbmROb3ROdWxsIChpbnB1dDogYW55KTogYm9vbGVhbntcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG5cclxuICAgIHJldHVybiAhKHVuZGVmaW5lZE9yTnVsbChpbnB1dCkpO1xyXG59XHJcblxyXG5ubS5kZWZpbmVkQW5kTm90TnVsbCA9IGRlZmluZWRBbmROb3ROdWxsO1xyXG5cclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/util/checkDefined.ts\n// module id = 9\n// module chunks = 0 1 2 3","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Created by gavorhes on 12/7/2015.\r\n */\r\nvar LayerBase_1 = require(\"./LayerBase\");\r\nvar esriToOl = require(\"../olHelpers/esriToOlStyle\");\r\nvar mapPopup_1 = require(\"../olHelpers/mapPopup\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('layers');\r\n/**\r\n * esri mapserver layer\r\n * @augments LayerBase\r\n */\r\nvar LayerEsriMapServer = (function (_super) {\r\n __extends(LayerEsriMapServer, _super);\r\n /**\r\n * The base layer for all others\r\n * @param {string} url - resource url\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.addPopup=false] if a popup should be added\r\n * @param {undefined|Array<number>} [options.showLayers=undefined] if a popup should be added\r\n */\r\n function LayerEsriMapServer(url, options) {\r\n if (options === void 0) { options = {}; }\r\n var _this = _super.call(this, url, options) || this;\r\n _this._source = new ol.source.TileArcGISRest({\r\n url: _this.url == '' ? undefined : _this.url,\r\n params: typeof options.showLayers == 'undefined' ? undefined : { layers: 'show:' + options.showLayers.join(',') }\r\n });\r\n _this._olLayer = new ol.layer.Tile({\r\n source: _this._source,\r\n visible: _this.visible,\r\n opacity: _this.opacity,\r\n minResolution: _this._minResolution,\r\n maxResolution: _this._maxResolution\r\n });\r\n _this._olLayer.setZIndex(_this._zIndex);\r\n options.addPopup = typeof options.addPopup == 'boolean' ? options.addPopup : false;\r\n _this._esriFormat = new ol.format.EsriJSON();\r\n _this._popupRequest = null;\r\n _this.addLegendContent();\r\n if (options.addPopup) {\r\n mapPopup_1.default.addMapServicePopup(_this);\r\n }\r\n return _this;\r\n }\r\n /**\r\n * add additional content to the legend\r\n * @param {string} [additionalContent=''] additional content for legend\r\n */\r\n LayerEsriMapServer.prototype.addLegendContent = function (additionalContent) {\r\n var _this = this;\r\n var urlCopy = this.url;\r\n if (urlCopy[urlCopy.length - 1] !== '/') {\r\n urlCopy += '/';\r\n }\r\n urlCopy += 'legend?f=pjson&callback=?';\r\n $.get(urlCopy, {}, function (d) {\r\n var newHtml = esriToOl.makeMapServiceLegend(d);\r\n _super.prototype.addLegendContent.call(_this, newHtml);\r\n }, 'json');\r\n };\r\n LayerEsriMapServer.prototype.getPopupInfo = function (queryParams) {\r\n if (!this.visible) {\r\n return;\r\n }\r\n var urlCopy = this.url;\r\n if (urlCopy[urlCopy.length - 1] != '/') {\r\n urlCopy += '/';\r\n }\r\n urlCopy += 'identify?callback=?';\r\n var __this = this;\r\n if (this._popupRequest != null) {\r\n this._popupRequest.abort();\r\n }\r\n this._popupRequest = $.get(urlCopy, queryParams, function (d) {\r\n for (var _i = 0, _a = d['results']; _i < _a.length; _i++) {\r\n var r = _a[_i];\r\n var popupHtml = '<table class=\"esri-popup-table\">';\r\n for (var a in r['attributes']) {\r\n if (r['attributes'].hasOwnProperty(a)) {\r\n var attrVal = r['attributes'][a];\r\n if (attrVal == null || attrVal.toString().toLowerCase() == 'null') {\r\n continue;\r\n }\r\n var attr = a;\r\n if (attr.length > 14) {\r\n attr = attr.slice(0, 11) + '...';\r\n }\r\n popupHtml += \"<tr><td>\" + attr + \"</td><td>\" + attrVal + \"</td></tr>\";\r\n }\r\n }\r\n popupHtml += '</table>';\r\n mapPopup_1.default.addMapServicePopupContent(__this._esriFormat.readFeature(r), __this, popupHtml, r['layerName']);\r\n }\r\n }, 'json');\r\n this._popupRequest.always(function () {\r\n __this._popupRequest = null;\r\n });\r\n };\r\n Object.defineProperty(LayerEsriMapServer.prototype, \"source\", {\r\n /**\r\n *\r\n * @returns {ol.source.TileArcGISRest} the vector source\r\n */\r\n get: function () {\r\n return _super.prototype.getSource.call(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LayerEsriMapServer.prototype, \"olLayer\", {\r\n /**\r\n *\r\n * @returns the ol layer\r\n */\r\n get: function () {\r\n return _super.prototype.getOlLayer.call(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return LayerEsriMapServer;\r\n}(LayerBase_1.LayerBase));\r\nexports.LayerEsriMapServer = LayerEsriMapServer;\r\nnm.LayerEsriMapServer = LayerEsriMapServer;\r\nexports.default = LayerEsriMapServer;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJFc3JpTWFwU2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTGF5ZXJFc3JpTWFwU2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gseUNBQXdEO0FBQ3hELHFEQUF1RDtBQUN2RCxrREFBNkM7QUFDN0MsMkNBQXNDO0FBQ3RDLDhCQUFpQztBQUNqQywwQkFBNkI7QUFFN0IsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQVE3Qjs7O0dBR0c7QUFDSDtJQUF3QyxzQ0FBUztJQUk3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Ba0JHO0lBQ0gsNEJBQVksR0FBRyxFQUFFLE9BQXVDO1FBQXZDLHdCQUFBLEVBQUEsWUFBdUM7UUFBeEQsWUFFSSxrQkFBTSxHQUFHLEVBQUUsT0FBTyxDQUFDLFNBNEJ0QjtRQTNCRyxLQUFJLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3ZDO1lBQ0ksR0FBRyxFQUFFLEtBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLFNBQVMsR0FBRyxLQUFJLENBQUMsR0FBRztZQUMxQyxNQUFNLEVBQUUsT0FBTyxPQUFPLENBQUMsVUFBVSxJQUFJLFdBQVcsR0FBRyxTQUFTLEdBQUcsRUFBQyxNQUFNLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFDO1NBQ2xILENBQ0osQ0FBQztRQUVGLEtBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM5QixNQUFNLEVBQUUsS0FBSSxDQUFDLE9BQXlCO1lBQ3RDLE9BQU8sRUFBRSxLQUFJLENBQUMsT0FBTztZQUNyQixPQUFPLEVBQUUsS0FBSSxDQUFDLE9BQU87WUFDckIsYUFBYSxFQUFFLEtBQUksQ0FBQyxjQUFjO1lBQ2xDLGFBQWEsRUFBRSxL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QUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMi83LzIwMTUuXHJcbiAqL1xyXG5pbXBvcnQge0xheWVyQmFzZSwgTGF5ZXJCYXNlT3B0aW9uc30gZnJvbSAnLi9MYXllckJhc2UnO1xyXG5pbXBvcnQgKiBhcyBlc3JpVG9PbCBmcm9tICcuLi9vbEhlbHBlcnMvZXNyaVRvT2xTdHlsZSc7XHJcbmltcG9ydCBtYXBQb3B1cCBmcm9tICcuLi9vbEhlbHBlcnMvbWFwUG9wdXAnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgb2wgPSByZXF1aXJlKCdjdXN0b20tb2wnKTtcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnbGF5ZXJzJyk7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckVzcmlNYXBTZXJ2ZXJPcHRpb25zIGV4dGVuZHMgTGF5ZXJCYXNlT3B0aW9ucyB7XHJcbiAgICBhZGRQb3B1cD86IGJvb2xlYW47XHJcbiAgICBzaG93TGF5ZXJzPzogQXJyYXk8bnVtYmVyPjtcclxufVxyXG5cclxuLyoqXHJcbiAqIGVzcmkgbWFwc2VydmVyIGxheWVyXHJcbiAqIEBhdWdtZW50cyBMYXllckJhc2VcclxuICovXHJcbmV4cG9ydCBjbGFzcyBMYXllckVzcmlNYXBTZXJ2ZXIgZXh0ZW5kcyBMYXllckJhc2Uge1xyXG4gICAgX2VzcmlGb3JtYXQ6IG9sLmZvcm1hdC5Fc3JpSlNPTjtcclxuICAgIF9wb3B1cFJlcXVlc3Q6IEpRdWVyeVhIUjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBiYXNlIGxheWVyIGZvciBhbGwgb3RoZXJzXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gcmVzb3VyY2UgdXJsXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdIC0gY29uZmlnXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuaWRdIC0gbGF5ZXIgaWRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5uYW1lPVVubmFtZWQgTGF5ZXJdIC0gbGF5ZXIgbmFtZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm9wYWNpdHk9MV0gLSBvcGFjaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnZpc2libGU9dHJ1ZV0gLSBkZWZhdWx0IHZpc2libGVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5ab29tPXVuZGVmaW5lZF0gLSBtaW4gem9vbSBsZXZlbCwgMCAtIDI4XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIC0gbWF4IHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zLnBhcmFtcz17fV0gdGhlIGdldCBwYXJhbWV0ZXJzIHRvIGluY2x1ZGUgdG8gcmV0cmlldmUgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuekluZGV4PTBdIHRoZSB6IGluZGV4IGZvciB0aGUgbGF5ZXJcclxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtvcHRpb25zLmxvYWRDYWxsYmFja10gZnVuY3Rpb24gdG8gY2FsbCBvbiBsb2FkLCBjb250ZXh0IHRoaXMgaXMgdGhlIGxheWVyIG9iamVjdFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb2xsYXBzZT1mYWxzZV0gaWYgdGhlIGxlZ2VuZCBpdGVtIHNob3VsZCBiZSBpbml0aWFsbHkgY29sbGFwc2VkXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENoZWNrYm94PXRydWVdIGlmIHRoZSBsZWdlbmQgaXRlbSBzaG91bGQgaGF2ZSBhIGNoZWNrYm94IGZvciB2aXNpYmlsaXR5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlZ2VuZENvbnRlbnRdIGFkZGl0aW9uYWwgY29udGVudCB0byBhZGQgdG8gdGhlIGxlZ2VuZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5hZGRQb3B1cD1mYWxzZV0gaWYgYSBwb3B1cCBzaG91bGQgYmUgYWRkZWRcclxuICAgICAqIEBwYXJhbSB7dW5kZWZpbmVkfEFycmF5PG51bWJlcj59IFtvcHRpb25zLnNob3dMYXllcnM9dW5kZWZpbmVkXSBpZiBhIHBvcHVwIHNob3VsZCBiZSBhZGRlZFxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcih1cmwsIG9wdGlvbnM6IExheWVyRXNyaU1hcFNlcnZlck9wdGlvbnMgPSB7fSkge1xyXG5cclxuICAgICAgICBzdXBlcih1cmwsIG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuX3NvdXJjZSA9IG5ldyBvbC5zb3VyY2UuVGlsZUFyY0dJU1Jlc3QoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHVybDogdGhpcy51cmwgPT0gJycgPyB1bmRlZmluZWQgOiB0aGlzLnVybCxcclxuICAgICAgICAgICAgICAgIHBhcmFtczogdHlwZW9mIG9wdGlvbnMuc2hvd0xheWVycyA9PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IHtsYXllcnM6ICdzaG93OicgKyBvcHRpb25zLnNob3dMYXllcnMuam9pbignLCcpfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5fb2xMYXllciA9IG5ldyBvbC5sYXllci5UaWxlKHtcclxuICAgICAgICAgICAgc291cmNlOiB0aGlzLl9zb3VyY2UgYXMgb2wuc291cmNlLlRpbGUsXHJcbiAgICAgICAgICAgIHZpc2libGU6IHRoaXMudmlzaWJsZSxcclxuICAgICAgICAgICAgb3BhY2l0eTogdGhpcy5vcGFjaXR5LFxyXG4gICAgICAgICAgICBtaW5SZXNvbHV0aW9uOiB0aGlzLl9taW5SZXNvbHV0aW9uLFxyXG4gICAgICAgICAgICBtYXhSZXNvbHV0aW9uOiB0aGlzLl9tYXhSZXNvbHV0aW9uXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX29sTGF5ZXIuc2V0WkluZGV4KHRoaXMuX3pJbmRleCk7XHJcblxyXG4gICAgICAgIG9wdGlvbnMuYWRkUG9wdXAgPSB0eXBlb2Ygb3B0aW9ucy5hZGRQb3B1cCA9PSAnYm9vbGVhbicgPyBvcHRpb25zLmFkZFBvcHVwIDogZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuX2VzcmlGb3JtYXQgPSBuZXcgb2wuZm9ybWF0LkVzcmlKU09OKCk7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBSZXF1ZXN0ID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5hZGRMZWdlbmRDb250ZW50KCk7XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmFkZFBvcHVwKSB7XHJcbiAgICAgICAgICAgIG1hcFBvcHVwLmFkZE1hcFNlcnZpY2VQb3B1cCh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhZGQgYWRkaXRpb25hbCBjb250ZW50IHRvIHRoZSBsZWdlbmRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbYWRkaXRpb25hbENvbnRlbnQ9JyddIGFkZGl0aW9uYWwgY29udGVudCBmb3IgbGVnZW5kXHJcbiAgICAgKi9cclxuICAgIGFkZExlZ2VuZENvbnRlbnQoYWRkaXRpb25hbENvbnRlbnQ/OiBzdHJpbmcpIHtcclxuICAgICAgICBsZXQgdXJsQ29weSA9IHRoaXMudXJsO1xyXG5cclxuICAgICAgICBpZiAodXJsQ29weVt1cmxDb3B5Lmxlbmd0aCAtIDFdICE9PSAnLycpIHtcclxuICAgICAgICAgICAgdXJsQ29weSArPSAnLyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1cmxDb3B5ICs9ICdsZWdlbmQ/Zj1wanNvbiZjYWxsYmFjaz0/JztcclxuXHJcbiAgICAgICAgJC5nZXQodXJsQ29weSwge30sIChkKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBuZXdIdG1sID0gZXNyaVRvT2wubWFrZU1hcFNlcnZpY2VMZWdlbmQoZCk7XHJcbiAgICAgICAgICAgIHN1cGVyLmFkZExlZ2VuZENvbnRlbnQobmV3SHRtbCk7XHJcbiAgICAgICAgfSwgJ2pzb24nKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgZ2V0UG9wdXBJbmZvKHF1ZXJ5UGFyYW1zKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHVybENvcHkgPSB0aGlzLnVybDtcclxuXHJcbiAgICAgICAgaWYgKHVybENvcHlbdXJsQ29weS5sZW5ndGggLSAxXSAhPSAnLycpIHtcclxuICAgICAgICAgICAgdXJsQ29weSArPSAnLyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1cmxDb3B5ICs9ICdpZGVudGlmeT9jYWxsYmFjaz0/JztcclxuXHJcbiAgICAgICAgbGV0IF9fdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9wb3B1cFJlcXVlc3QgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cFJlcXVlc3QuYWJvcnQoKTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9wb3B1cFJlcXVlc3QgPSAkLmdldCh1cmxDb3B5LCBxdWVyeVBhcmFtcywgZnVuY3Rpb24gKGQpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgciBvZiBkWydyZXN1bHRzJ10pIHtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgcG9wdXBIdG1sID0gJzx0YWJsZSBjbGFzcz1cImVzcmktcG9wdXAtdGFibGVcIj4nO1xyXG5cclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGEgaW4gclsnYXR0cmlidXRlcyddKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJbJ2F0dHJpYnV0ZXMnXS5oYXNPd25Qcm9wZXJ0eShhKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXR0clZhbCA9IHJbJ2F0dHJpYnV0ZXMnXVthXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdHRyVmFsID09IG51bGwgfHwgYXR0clZhbC50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT0gJ251bGwnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGF0dHIgPSBhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ci5sZW5ndGggPiAxNCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ciA9IGF0dHIuc2xpY2UoMCwgMTEpICsgJy4uLic7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcHVwSHRtbCArPSBgPHRyPjx0ZD4ke2F0dHJ9PC90ZD48dGQ+JHthdHRyVmFsfTwvdGQ+PC90cj5gO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzwvdGFibGU+JztcclxuXHJcbiAgICAgICAgICAgICAgICBtYXBQb3B1cC5hZGRNYXBTZXJ2aWNlUG9wdXBDb250ZW50KF9fdGhpcy5fZXNyaUZvcm1hdC5yZWFkRmVhdHVyZShyKSwgX190aGlzLCBwb3B1cEh0bWwsIHJbJ2xheWVyTmFtZSddKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sICdqc29uJyk7XHJcblxyXG4gICAgICAgIHRoaXMuX3BvcHVwUmVxdWVzdC5hbHdheXMoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBfX3RoaXMuX3BvcHVwUmVxdWVzdCA9IG51bGw7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtvbC5zb3VyY2UuVGlsZUFyY0dJU1Jlc3R9IHRoZSB2ZWN0b3Igc291cmNlXHJcbiAgICAgKi9cclxuICAgIGdldCBzb3VyY2UoKTogb2wuc291cmNlLlRpbGVBcmNHSVNSZXN0IHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0U291cmNlKCkgYXMgb2wuc291cmNlLlRpbGVBcmNHSVNSZXN0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHRoZSBvbCBsYXllclxyXG4gICAgICovXHJcbiAgICBnZXQgb2xMYXllcigpOiBvbC5sYXllci5UaWxlIHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0T2xMYXllcigpIGFzIG9sLmxheWVyLlRpbGU7XHJcbiAgICB9XHJcbn1cclxubm0uTGF5ZXJFc3JpTWFwU2VydmVyID0gTGF5ZXJFc3JpTWFwU2VydmVyO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckVzcmlNYXBTZXJ2ZXI7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/layers/LayerEsriMapServer.ts\n// module id = 10\n// module chunks = 0 2 3","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar mapInteractionBase_1 = require(\"./mapInteractionBase\");\r\nvar checkDefined = require(\"../util/checkDefined\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar makeGuid_1 = require(\"../util/makeGuid\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('olHelpers');\r\n/**\r\n * assists with map move interactions, trigger callback functions\r\n * @augments MapInteractionBase\r\n */\r\nvar MapMoveCls = (function (_super) {\r\n __extends(MapMoveCls, _super);\r\n /**\r\n * constructor called implicitly\r\n */\r\n function MapMoveCls() {\r\n var _this = _super.call(this, 'map move') || this;\r\n _this._arrLyrRequest = [];\r\n _this._arrLyrTimeout = [];\r\n _this._arrLayer = [];\r\n _this._lookupLayer = {};\r\n _this._mapMoveCallbacks = [];\r\n _this._mapMoveCallbacksLookup = {};\r\n _this._mapMoveCallbackDelays = [];\r\n _this._mapMoveCallbackContext = [];\r\n _this._mapMoveCallbackTimeout = [];\r\n _this._mapExtent = undefined;\r\n _this._zoomLevel = undefined;\r\n return _this;\r\n }\r\n /**\r\n * initialize the map move object\r\n * @param theMap - the ol map\r\n */\r\n MapMoveCls.prototype.init = function (theMap) {\r\n var _this = this;\r\n _super.prototype.init.call(this, theMap);\r\n this.map.getView().on(['change:center', 'change:resolution'], function (e) {\r\n _this._updateMapExtent();\r\n // trigger the layer updates\r\n for (var i = 0; i < _this._arrLayer.length; i++) {\r\n _this.triggerLyrLoad(_this._arrLayer[i], i, e.type);\r\n }\r\n // trigger the map callbacks\r\n for (var i = 0; i < _this._mapMoveCallbacks.length; i++) {\r\n _this.triggerMoveCallback(i, e.type);\r\n }\r\n });\r\n };\r\n MapMoveCls.prototype._updateMapExtent = function () {\r\n var theView = this.map.getView();\r\n this._zoomLevel = theView.getZoom();\r\n var extentArray = theView.calculateExtent(this.map.getSize());\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 Object.defineProperty(MapMoveCls.prototype, \"mapExtent\", {\r\n /**\r\n * return the map extent\r\n */\r\n get: function () {\r\n if (!this._mapExtent) {\r\n this._updateMapExtent();\r\n }\r\n return this._mapExtent;\r\n },\r\n enumerable: true,\r\n configurable: true\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 MapMoveCls.prototype.triggerLyrLoad = function (lyr, index, eventType) {\r\n if (checkDefined.undefinedOrNull(lyr) && checkDefined.undefinedOrNull(index)) {\r\n throw 'need to define lyr or index';\r\n }\r\n else if (checkDefined.definedAndNotNull(lyr) && checkDefined.undefinedOrNull(index)) {\r\n index = this._arrLayer.indexOf(lyr);\r\n }\r\n else if (checkDefined.undefinedOrNull(lyr) && checkDefined.definedAndNotNull(index)) {\r\n lyr = this._arrLayer[index];\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 // 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 // dummy callback used if before load returns false\r\n var callbackFunc = function () { };\r\n if (lyr.mapMoveBefore(this._zoomLevel, eventType)) {\r\n lyr.mapMoveMakeGetParams(this._mapExtent, this._zoomLevel);\r\n var __this_1 = this;\r\n callbackFunc = function () {\r\n function innerFunction(theLayer, theIndex) {\r\n var _innerThis = this;\r\n this._arrLyrRequest[theIndex] = $.get(theLayer.url, theLayer.mapMoveParams, function (d) {\r\n /**\r\n * @type {LayerBaseVector}\r\n */\r\n theLayer.mapMoveCallback(d);\r\n theLayer.loadCallback();\r\n }, 'json').fail(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(function () {\r\n _innerThis._arrLyrTimeout[theIndex] = null;\r\n _innerThis._arrLyrRequest[theIndex] = null;\r\n });\r\n }\r\n innerFunction.call(__this_1, lyr, index);\r\n };\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 * 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 MapMoveCls.prototype.triggerMoveCallback = function (ind, eventType, functionId) {\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 if (typeof ind !== 'number') {\r\n ind = this._mapMoveCallbacks.indexOf(this._mapMoveCallbacksLookup[functionId]);\r\n }\r\n if (ind < 0) {\r\n console.log('function not found');\r\n return;\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 var ctx = this._mapMoveCallbackContext[ind];\r\n var theFunc = this._mapMoveCallbacks[ind];\r\n var __this = this;\r\n var f = function () {\r\n if (ctx !== null) {\r\n theFunc.call(ctx, __this._mapExtent, __this._zoomLevel, eventType);\r\n }\r\n else {\r\n theFunc(__this._mapExtent, __this._zoomLevel, eventType);\r\n }\r\n };\r\n this._mapMoveCallbackTimeout[ind] = setTimeout(f, this._mapMoveCallbackDelays[ind]);\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 MapMoveCls.prototype.addVectorLayer = function (lyr, triggerOnAdd) {\r\n if (triggerOnAdd === void 0) { triggerOnAdd = true; }\r\n if (this._arrLayer.indexOf(lyr) > -1) {\r\n console.log('already added ' + lyr.name + ' to map move');\r\n return;\r\n }\r\n this._checkInit();\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 triggerOnAdd = typeof triggerOnAdd == 'boolean' ? triggerOnAdd : true;\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 * 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 MapMoveCls.prototype.addCallback = function (func, context, delay, triggerOnAdd, functionId) {\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_1.default();\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 triggerOnAdd = typeof triggerOnAdd == 'boolean' ? triggerOnAdd : true;\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 return MapMoveCls;\r\n}(mapInteractionBase_1.default));\r\nexports.MapMoveCls = MapMoveCls;\r\nnm.MapMoveCls = MapMoveCls;\r\nexports.default = MapMoveCls;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwTW92ZUNscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hcE1vdmVDbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EsMkRBQXNEO0FBQ3RELG1EQUFxRDtBQUNyRCwyQ0FBc0M7QUFDdEMsNkNBQXdDO0FBRXhDLDBCQUE2QjtBQUM3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBcUJoQzs7O0dBR0c7QUFDSDtJQUFnQyw4QkFBa0I7SUFhOUM7O09BRUc7SUFDSDtRQUFBLFlBQ0ksa0JBQU0sVUFBVSxDQUFDLFNBZXBCO1FBZEcsS0FBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsS0FBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsS0FBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFFdkIsS0FBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixLQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLEtBQUksQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7UUFDakMsS0FBSSxDQUFDLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUNsQyxLQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBRWxDLEtBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLEtBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDOztJQUVoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gseUJBQUksR0FBSixVQUFLLE1BQWM7UUFBbkIsaUJBaUJDO1FBaEJHLGlCQUFNLElBQUksWUFBQyxNQUFNLENBQUMsQ0FBQztRQUVuQixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLFVBQUMs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Q0FBQztRQUNoRSxDQUFDO0lBQ0wsQ0FBQztJQUNMLGlCQUFDO0FBQUQsQ0FBQyxBQWxRRCxDQUFnQyw0QkFBa0IsR0FrUWpEO0FBbFFZLGdDQUFVO0FBb1F2QixFQUFFLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztBQUMzQixrQkFBZSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGF5ZXJCYXNlVmVjdG9yIGZyb20gXCIuLi9sYXllcnMvTGF5ZXJCYXNlVmVjdG9yXCI7XHJcbmltcG9ydCBNYXBJbnRlcmFjdGlvbkJhc2UgZnJvbSAnLi9tYXBJbnRlcmFjdGlvbkJhc2UnO1xyXG5pbXBvcnQgKiBhcyBjaGVja0RlZmluZWQgZnJvbSAnLi4vdXRpbC9jaGVja0RlZmluZWQnO1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFrZUd1aWQgZnJvbSAnLi4vdXRpbC9tYWtlR3VpZCc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycycpO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgZXh0ZW50T2JqZWN0e1xyXG4gICAgbWluWDogbnVtYmVyO1xyXG4gICAgbWluWTogbnVtYmVyO1xyXG4gICAgbWF4WDogbnVtYmVyO1xyXG4gICAgbWF4WTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIG1hcE1vdmVDYWxsYmFja0Z1bmN0aW9ue1xyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGV4dGVudCBleHRlbnQgYXMgcHJlZGVmaW5lZCBvYmplY3QgbWluWCwgbWluWCwgbWF4WCwgbWF4WVxyXG4gICAgICogQHBhcmFtIHpvb21MZXZlbCBjdXJyZW50IHpvb20gbGV2ZWxcclxuICAgICAqIEBwYXJhbSBldnRUeXBlIHRoZSBldmVudCB0eXBlICdjaGFuZ2U6Y2VudGVyJywgJ2NoYW5nZTpyZXNvbHV0aW9uJ1xyXG4gICAgICovXHJcbiAgICAoZXh0ZW50OiBleHRlbnRPYmplY3QsIHpvb21MZXZlbDogbnVtYmVyLCBldnRUeXBlPzogc3RyaW5nKTogYW55XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogYXNzaXN0cyB3aXRoIG1hcCBtb3ZlIGludGVyYWN0aW9ucywgdHJpZ2dlciBjYWxsYmFjayBmdW5jdGlvbnNcclxuICogQGF1Z21lbnRzIE1hcEludGVyYWN0aW9uQmFzZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIE1hcE1vdmVDbHMgZXh0ZW5kcyBNYXBJbnRlcmFjdGlvbkJhc2Uge1xyXG4gICAgX21hcEV4dGVudDogZXh0ZW50T2JqZWN0O1xyXG4gICAgX3pvb21MZXZlbDogbnVtYmVyO1xyXG4gICAgX2xvb2t1cExheWVyOiBPYmplY3Q7XHJcbiAgICBfYXJyTGF5ZXI6IEFycmF5PExheWVyQmFzZVZlY3Rvcj47XHJcbiAgICBfYXJyTHlyVGltZW91dDogQXJyYXk8bnVtYmVyPjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0OiBBcnJheTxudW1iZXI+O1xyXG4gICAgX21hcE1vdmVDYWxsYmFja0RlbGF5czogQXJyYXk8bnVtYmVyPjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tzTG9va3VwOiBPYmplY3Q7XHJcbiAgICBfbWFwTW92ZUNhbGxiYWNrQ29udGV4dDogQXJyYXk8T2JqZWN0PjtcclxuICAgIF9tYXBNb3ZlQ2FsbGJhY2tzOiBBcnJheTxtYXBNb3ZlQ2FsbGJhY2tGdW5jdGlvbj47XHJcbiAgICBfYXJyTHlyUmVxdWVzdDogQXJyYXk8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGNvbnN0cnVjdG9yIGNhbGxlZCBpbXBsaWNpdGx5XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCdtYXAgbW92ZScpO1xyXG4gICAgICAgIHRoaXMuX2Fyckx5clJlcXVlc3QgPSBbXTtcclxuICAgICAgICB0aGlzLl9hcnJMeXJUaW1lb3V0ID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyTGF5ZXIgPSBbXTtcclxuICAgICAgICB0aGlzLl9sb29rdXBMYXllciA9IHt9O1xyXG5cclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzID0gW107XHJcbiAgICAgICAgdGhpcy5fbWFwTW92ZUNhbGxiYWNrc0xvb2t1cCA9IHt9O1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja0RlbGF5cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja0NvbnRleHQgPSBbXTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0ID0gW107XHJcblxyXG4gICAgICAgIHRoaXMuX21hcEV4dGVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl96b29tTGV2ZWwgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogaW5pdGlhbGl6ZSB0aGUgbWFwIG1vdmUgb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0gdGhlTWFwIC0gdGhlIG9sIG1hcFxyXG4gICAgICovXHJcbiAgICBpbml0KHRoZU1hcDogb2wuTWFwKXtcclxuICAgICAgICBzdXBlci5pbml0KHRoZU1hcCk7XHJcblxyXG4gICAgICAgIHRoaXMubWFwLmdldFZpZXcoKS5vbihbJ2NoYW5nZTpjZW50ZXInLCAnY2hhbmdlOnJlc29sdXRpb24nXSwgKGUpID0+e1xyXG5cclxuICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHRyaWdnZXIgdGhlIGxheWVyIHVwZGF0ZXNcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9hcnJMYXllci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyTHlyTG9hZCh0aGlzLl9hcnJMYXllcltpXSwgaSwgZS50eXBlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gdHJpZ2dlciB0aGUgbWFwIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX21hcE1vdmVDYWxsYmFja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlck1vdmVDYWxsYmFjayhpLCBlLnR5cGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgX3VwZGF0ZU1hcEV4dGVudCgpIHtcclxuICAgICAgICBsZXQgdGhlVmlldyA9IHRoaXMubWFwLmdldFZpZXcoKTtcclxuICAgICAgICB0aGlzLl96b29tTGV2ZWwgPSB0aGVWaWV3LmdldFpvb20oKTtcclxuXHJcbiAgICAgICAgbGV0IGV4dGVudEFycmF5ID0gdGhlVmlldy5jYWxjdWxhdGVFeHRlbnQodGhpcy5tYXAuZ2V0U2l6ZSgpKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWFwRXh0ZW50ID0ge1xyXG4gICAgICAgICAgICBtaW5YOiBleHRlbnRBcnJheVswXSxcclxuICAgICAgICAgICAgbWluWTogZXh0ZW50QXJyYXlbMV0sXHJcbiAgICAgICAgICAgIG1heFg6IGV4dGVudEFycmF5WzJdLFxyXG4gICAgICAgICAgICBtYXhZOiBleHRlbnRBcnJheVszXVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiByZXR1cm4gdGhlIG1hcCBleHRlbnRcclxuICAgICAqL1xyXG4gICAgZ2V0IG1hcEV4dGVudCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX21hcEV4dGVudCkge1xyXG4gICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXBFeHRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUcmlnZ2VyIHRoZSBsYXllciBsb2FkXHJcbiAgICAgKiBAcGFyYW0gbHlyIHRoZSBsYXllciBiZWluZyBhY3RlZCBvblxyXG4gICAgICogQHBhcmFtIGluZGV4IGluZGV4IG9mIHRoZSBsYXllclxyXG4gICAgICogQHBhcmFtIGV2ZW50VHlwZSB0aGUgZXZlbnQgdHJpZ2dlcmluZyB0aGUgbG9hZCwgYXMgJ2NoYW5nZTpjZW50ZXInIG9yICdjaGFuZ2U6cmVzb2x1dGlvbidcclxuICAgICAqL1xyXG4gICAgdHJpZ2dlckx5ckxvYWQobHlyOiBMYXllckJhc2VWZWN0b3IsIGluZGV4PzogbnVtYmVyLCBldmVudFR5cGU/OiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgaWYgKGNoZWNrRGVmaW5lZC51bmRlZmluZWRPck51bGwobHlyKSAmJiBjaGVja0RlZmluZWQudW5kZWZpbmVkT3JOdWxsKGluZGV4KSkge1xyXG4gICAgICAgICAgICB0aHJvdyAnbmVlZCB0byBkZWZpbmUgbHlyIG9yIGluZGV4JztcclxuICAgICAgICB9IGVsc2UgaWYgKGNoZWNrRGVmaW5lZC5kZWZpbmVkQW5kTm90TnVsbChseXIpICYmIGNoZWNrRGVmaW5lZC51bmRlZmluZWRPck51bGwoaW5kZXgpKSB7XHJcbiAgICAgICAgICAgIGluZGV4ID0gdGhpcy5fYXJyTGF5ZXIuaW5kZXhPZihseXIpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY2hlY2tEZWZpbmVkLnVuZGVmaW5lZE9yTnVsbChseXIpICYmIGNoZWNrRGVmaW5lZC5kZWZpbmVkQW5kTm90TnVsbChpbmRleCkpIHtcclxuICAgICAgICAgICAgbHlyID0gdGhpcy5fYXJyTGF5ZXJbaW5kZXhdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gY2xlYXIgdGhlIHRpbWVvdXRcclxuICAgICAgICBpZiAodGhpcy5fYXJyTHlyVGltZW91dFtpbmRleF0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fYXJyTHlyVGltZW91dFtpbmRleF0pO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJUaW1lb3V0W2luZGV4XSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBhYm9ydCBpZiBuZWNlc3NhcnkgYW5kIGNsZWFyIHRoZSByZXF1ZXN0XHJcbiAgICAgICAgaWYgKHRoaXMuX2Fyckx5clJlcXVlc3RbaW5kZXhdICE9IG51bGwgJiYgdGhpcy5fYXJyTHlyUmVxdWVzdFtpbmRleF0gIT0gNCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0W2luZGV4XS5hYm9ydCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0W2luZGV4XSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBkdW1teSBjYWxsYmFjayB1c2VkIGlmIGJlZm9yZSBsb2FkIHJldHVybnMgZmFsc2VcclxuICAgICAgICBsZXQgY2FsbGJhY2tGdW5jID0gZnVuY3Rpb24gKCkge307XHJcblxyXG4gICAgICAgIGlmIChseXIubWFwTW92ZUJlZm9yZSh0aGlzLl96b29tTGV2ZWwsIGV2ZW50VHlwZSkpIHtcclxuICAgICAgICAgICAgbHlyLm1hcE1vdmVNYWtlR2V0UGFyYW1zKHRoaXMuX21hcEV4dGVudCwgdGhpcy5fem9vbUxldmVsKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBfX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICAgICAgY2FsbGJhY2tGdW5jID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gaW5uZXJGdW5jdGlvbih0aGVMYXllciwgdGhlSW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgX2lubmVyVGhpcyA9IHRoaXM7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXJyTHlyUmVxdWVzdFt0aGVJbmRleF0gPSAkLmdldChcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlTGF5ZXIudXJsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5tYXBNb3ZlUGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBAdHlwZSB7TGF5ZXJCYXNlVmVjdG9yfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5tYXBNb3ZlQ2FsbGJhY2soZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVMYXllci5sb2FkQ2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgJ2pzb24nKS5mYWlsKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoanFYSFIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqcVhIUi5zdGF0dXNUZXh0ICE9ICdhYm9ydCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZmFpbGVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhlTGF5ZXIudXJsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGVMYXllci5tYXBNb3ZlUGFyYW1zKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSkuYWx3YXlzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5uZXJUaGlzLl9hcnJMeXJUaW1lb3V0W3RoZUluZGV4XSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5uZXJUaGlzLl9hcnJMeXJSZXF1ZXN0W3RoZUluZGV4XSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaW5uZXJGdW5jdGlvbi5jYWxsKF9fdGhpcywgbHlyLCBpbmRleCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbHlyLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2Fyckx5clRpbWVvdXRbaW5kZXhdID0gc2V0VGltZW91dChjYWxsYmFja0Z1bmMsIGx5ci5vbkRlbWFuZERlbGF5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyaWdnZXIgdGhlIG1hcCBtb3ZlIGNhbGwgYmFjayBhdCB0aGUgZ2l2ZW4gaW5kZXhcclxuICAgICAqIEBwYXJhbSBpbmQgLSB0aGUgaW5kZXggb2YgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gZXZlbnRUeXBlPXVuZGVmaW5lZCB0aGUgZXZlbnQgdHJpZ2dlcmluZyB0aGUgbG9hZCBhcyAnY2hhbmdlOmNlbnRlcicgb3IgJ2NoYW5nZTpyZXNvbHV0aW9uJ1xyXG4gICAgICogQHBhcmFtIGZ1bmN0aW9uSWQ9dW5kZWZpbmVkIHRoZSBmdW5jdGlvbiBpZCB1c2VkIHRvIHJlZmVyZW5jZSB0aGUgYWRkZWQgY2FsbGJhY2sgZnVuY3Rpb25cclxuICAgICAqL1xyXG4gICAgdHJpZ2dlck1vdmVDYWxsYmFjayhpbmQ6IG51bWJlciwgZXZlbnRUeXBlPzogc3RyaW5nLCBmdW5jdGlvbklkPzogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgaW5kID09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBmdW5jdGlvbklkID09ICd1bmRlZmluZWQnKXtcclxuICAgICAgICAgICAgdGhyb3cgJ2VpdGhlciB0aGUgZnVuY3Rpb24gaW5kZXggb3IgdGhlIGlkIG11c3QgYmUgZGVmaW5lZCc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIGluZCAhPT0gJ251bWJlcicpe1xyXG4gICAgICAgICAgICBpbmQgPSB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzLmluZGV4T2YodGhpcy5fbWFwTW92ZUNhbGxiYWNrc0xvb2t1cFtmdW5jdGlvbklkXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaW5kIDwgMCl7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdmdW5jdGlvbiBub3QgZm91bmQnKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGNsZWFyIHRoZSB0aW1lb3V0XHJcbiAgICAgICAgaWYgKHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXRbaW5kXSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0W2luZF0pO1xyXG4gICAgICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tUaW1lb3V0W2luZF0gPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGN0eCA9IHRoaXMuX21hcE1vdmVDYWxsYmFja0NvbnRleHRbaW5kXTtcclxuICAgICAgICBsZXQgdGhlRnVuYyA9IHRoaXMuX21hcE1vdmVDYWxsYmFja3NbaW5kXTtcclxuXHJcbiAgICAgICAgbGV0IF9fdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIGxldCBmID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAoY3R4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGVGdW5jLmNhbGwoY3R4LCBfX3RoaXMuX21hcEV4dGVudCwgX190aGlzLl96b29tTGV2ZWwsIGV2ZW50VHlwZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGVGdW5jKF9fdGhpcy5fbWFwRXh0ZW50LCBfX3RoaXMuX3pvb21MZXZlbCwgZXZlbnRUeXBlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXRbaW5kXSA9IHNldFRpbWVvdXQoZiwgdGhpcy5fbWFwTW92ZUNhbGxiYWNrRGVsYXlzW2luZF0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIGEgbGF5ZXIgdG8gdGhlIGludGVyYWN0aW9uXHJcbiAgICAgKiBAcGFyYW0gIGx5ciAtIGxheWVyIHRvIGFkZFxyXG4gICAgICogQHBhcmFtIHRyaWdnZXJPbkFkZCAtIGlmIHRoZSBsYXllciBzaG91bGQgYmUgbG9hZGVkIG9uIGFkZFxyXG4gICAgICovXHJcbiAgICBhZGRWZWN0b3JMYXllcihseXI6IExheWVyQmFzZVZlY3RvciwgdHJpZ2dlck9uQWRkOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgICAgIGlmICh0aGlzLl9hcnJMYXllci5pbmRleE9mKGx5cikgPiAtMSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnYWxyZWFkeSBhZGRlZCAnICsgbHlyLm5hbWUgKyAnIHRvIG1hcCBtb3ZlJyk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2NoZWNrSW5pdCgpO1xyXG5cclxuICAgICAgICB0aGlzLl9hcnJMeXJSZXF1ZXN0LnB1c2gobnVsbCk7XHJcbiAgICAgICAgdGhpcy5fYXJyTHlyVGltZW91dC5wdXNoKG51bGwpO1xyXG4gICAgICAgIHRoaXMuX2FyckxheWVyLnB1c2gobHlyKTtcclxuICAgICAgICB0aGlzLl9sb29rdXBMYXllcltseXIuaWRdID0gbHlyO1xyXG5cclxuICAgICAgICB0cmlnZ2VyT25BZGQgPSB0eXBlb2YgdHJpZ2dlck9uQWRkID09ICdib29sZWFuJyA/IHRyaWdnZXJPbkFkZCA6IHRydWU7XHJcblxyXG4gICAgICAgIGlmICh0cmlnZ2VyT25BZGQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX21hcEV4dGVudCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVNYXBFeHRlbnQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJMeXJMb2FkKGx5ciwgdGhpcy5fYXJyTGF5ZXIubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIGFkZCBhIGNhbGxiYWNrIHRvIHRoZSBtYXAgbW92ZSBldmVudFxyXG4gICAgICogQHBhcmFtIGZ1bmMgLSBjYWxsYmFjayBmdW5jdGlvblxyXG4gICAgICogQHBhcmFtIGNvbnRleHQgLSB0aGUgY29udGV4dCB0byB1c2UgZm9yIHRoaXMgZnVuY3Rpb25cclxuICAgICAqIEBwYXJhbSBkZWxheT01MCB0aGUgZGVsYXkgYmVmb3JlIGNhbGwgbG9hZFxyXG4gICAgICogQHBhcmFtIHRyaWdnZXJPbkFkZCBpZiB0aGUgbGF5ZXIgc2hvdWxkIGJlIGxvYWRlZCBvbiBhZGQgdG8gbWFwTW92ZVxyXG4gICAgICogQHBhcmFtIGZ1bmN0aW9uSWQgb3B0aW9uYWwgaWQgdG8gcmVmZXJlbmNlIHRoZSBmdW5jdGlvbiBsYXRlciBmb3Igb3V0c2lkZSB0cmlnZ2VyaW5nXHJcbiAgICAgKi9cclxuICAgIGFkZENhbGxiYWNrKGZ1bmM6IG1hcE1vdmVDYWxsYmFja0Z1bmN0aW9uLCBjb250ZXh0PzogYW55LCBkZWxheT86IG51bWJlciwgdHJpZ2dlck9uQWRkPyA6IGJvb2xlYW4sIGZ1bmN0aW9uSWQ/OiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX21hcE1vdmVDYWxsYmFja3MuaW5kZXhPZihmdW5jKSA+IC0xKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCd0aGlzIGZ1bmN0aW9uIGFscmVhZHkgYWRkZWQgdG8gbWFwIG1vdmUnKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICBpZiAoIWZ1bmN0aW9uSWQpe1xyXG4gICAgICAgICAgICBmdW5jdGlvbklkID0gbWFrZUd1aWQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja3MucHVzaChmdW5jKTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tzTG9va3VwW2Z1bmN0aW9uSWRdID0gZnVuY3Rpb25JZDtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tEZWxheXMucHVzaCh0eXBlb2YgZGVsYXkgPT0gJ251bWJlcicgPyBkZWxheSA6IDUwKTtcclxuICAgICAgICB0aGlzLl9tYXBNb3ZlQ2FsbGJhY2tDb250ZXh0LnB1c2goY2hlY2tEZWZpbmVkLmRlZmluZWRBbmROb3ROdWxsKGNvbnRleHQpID8gY29udGV4dCA6IG51bGwpO1xyXG4gICAgICAgIHRoaXMuX21hcE1vdmVDYWxsYmFja1RpbWVvdXQucHVzaChudWxsKTtcclxuXHJcbiAgICAgICAgdHJpZ2dlck9uQWRkID0gdHlwZW9mIHRyaWdnZXJPbkFkZCA9PSAnYm9vbGVhbicgPyB0cmlnZ2VyT25BZGQgOiB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodHJpZ2dlck9uQWRkKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9tYXBFeHRlbnQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTWFwRXh0ZW50KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy50cmlnZ2VyTW92ZUNhbGxiYWNrKHRoaXMuX21hcE1vdmVDYWxsYmFja3MubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5ubS5NYXBNb3ZlQ2xzID0gTWFwTW92ZUNscztcclxuZXhwb3J0IGRlZmF1bHQgTWFwTW92ZUNscztcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapMoveCls.ts\n// module id = 11\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 11/3/2015.\r\n */\r\n\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar mapInteractionBase_1 = require(\"./mapInteractionBase\");\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('olHelpers');\r\nvar FeatureLayerProperties = (function () {\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 function FeatureLayerProperties(feature, layer, layerIndex, selectionLayer, esriLayerName) {\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 Object.defineProperty(FeatureLayerProperties.prototype, \"layerName\", {\r\n get: function () {\r\n if (typeof this.esriLayerName == 'string') {\r\n return this.esriLayerName;\r\n }\r\n else {\r\n return this.layer.name;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return FeatureLayerProperties;\r\n}());\r\nexports.FeatureLayerProperties = FeatureLayerProperties;\r\n/**\r\n * map popup class\r\n * @augments MapInteractionBase\r\n */\r\nvar MapPopupCls = (function (_super) {\r\n __extends(MapPopupCls, _super);\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 * map popup constructor\r\n */\r\n function MapPopupCls() {\r\n var _this = _super.call(this, 'map popup') || this;\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 //let a = function($jqueryContent){console.log($jqueryContent)};\r\n //this._popupChangedLookup = {'a': a};\r\n _this._popupChangedFunctions = [];\r\n _this._esriMapServiceLayers = [];\r\n _this._popupOpen = false;\r\n _this._popupCoordinate = null;\r\n _this._passThroughLayerFeatureArray = [];\r\n _this._currentPopupIndex = -1;\r\n _this._popupContentLength = 0;\r\n return _this;\r\n }\r\n /**\r\n * map popup initialization\r\n * @param {ol.Map} theMap - the ol map\r\n */\r\n MapPopupCls.prototype.init = function (theMap) {\r\n var _this = this;\r\n _super.prototype.init.call(this, theMap);\r\n var $map;\r\n var target = this.map.getTarget();\r\n if (typeof target == 'string') {\r\n $map = $('#' + target);\r\n }\r\n else {\r\n $map = $(target);\r\n }\r\n $map.append('<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 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 var _ease = function (n) {\r\n return ol.easing.inAndOut(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 this._map.addOverlay(this._popupOverlay);\r\n this._$popupCloser.click(function (evt) {\r\n _this.closePopup();\r\n });\r\n // display popup on click\r\n this._map.on('singleclick', function (evt) {\r\n _this.closePopup();\r\n _this._popupCoordinate = evt['coordinate'];\r\n // esri map service layers\r\n if (_this._esriMapServiceLayers.length > 0) {\r\n var 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()).join(','),\r\n imageDisplay: _this._map.getSize().join(',') + ',96',\r\n returnGeometry: true,\r\n tolerance: 15,\r\n f: 'pjson'\r\n };\r\n for (var _i = 0, _a = _this._esriMapServiceLayers; _i < _a.length; _i++) {\r\n var l = _a[_i];\r\n l.getPopupInfo(queryParams);\r\n }\r\n }\r\n var layerFeatureObjectArray = _this._featuresAtPixel(evt['pixel']);\r\n _this._passThroughLayerFeatureArray = [];\r\n _this._currentPopupIndex = -1;\r\n for (var i = 0; i < layerFeatureObjectArray.length; i++) {\r\n var featObj = layerFeatureObjectArray[i];\r\n var props = featObj.feature.getProperties();\r\n var popupContentResponse = _this._arrPopupContentFunction[featObj.layerIndex](props, _this._$popupContent);\r\n //skip if return was false\r\n if (popupContentResponse === false) {\r\n //continue;\r\n }\r\n else if (typeof popupContentResponse == 'string') {\r\n featObj.popupContent = popupContentResponse;\r\n _this._passThroughLayerFeatureArray.push(featObj);\r\n }\r\n else {\r\n featObj.selectionLayer.getSource().addFeature(featObj.feature);\r\n }\r\n }\r\n _this._popupContentLength = _this._passThroughLayerFeatureArray.length;\r\n _this._currentPopupIndex = -1;\r\n var 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 popupHtml += '</div>';\r\n _this._$popupContent.html(popupHtml);\r\n _this._$popupContent.find('.previous-popup').click(function () {\r\n if (_this._popupContentLength == 1) {\r\n return;\r\n }\r\n if (_this._currentPopupIndex == 0) {\r\n _this._currentPopupIndex = _this._popupContentLength - 1;\r\n }\r\n else {\r\n _this._currentPopupIndex--;\r\n }\r\n _this._triggerFeatSelect();\r\n });\r\n var nextPopup = _this._$popupContent.find('.next-popup');\r\n nextPopup.click(function () {\r\n if (_this._popupContentLength == 1 && _this._currentPopupIndex > -1) {\r\n return;\r\n }\r\n if (_this._currentPopupIndex == _this._popupContentLength - 1) {\r\n _this._currentPopupIndex = 0;\r\n }\r\n else {\r\n _this._currentPopupIndex++;\r\n }\r\n _this._triggerFeatSelect();\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 //change mouse cursor when over marker\r\n this._map.on('pointermove', function (evt) {\r\n if (evt['dragging']) {\r\n return;\r\n }\r\n var pixel = _this.map.getEventPixel(evt['originalEvent']);\r\n var hit = _this.map.hasFeatureAtPixel(pixel, function (lyrCandidate) {\r\n for (var _i = 0, _a = _this._arrPopupOlLayers; _i < _a.length; _i++) {\r\n var olLayer = _a[_i];\r\n if (lyrCandidate == olLayer) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n });\r\n var mapElement = _this.map.getTargetElement();\r\n mapElement.style.cursor = hit ? 'pointer' : '';\r\n });\r\n return true;\r\n };\r\n /**\r\n * helper to select features\r\n * @private\r\n */\r\n MapPopupCls.prototype._triggerFeatSelect = function () {\r\n var $currentPopupItemNumber = this._$popupContent.find('.current-popup-item-number');\r\n var $innerPopup = this._$popupContent.find('.ol-popup-inner');\r\n var $layerNameSpan = this._$popupContent.find('.current-popup-layer-name');\r\n this.clearSelection();\r\n var 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 (var _i = 0, _a = this._popupChangedFunctions; _i < _a.length; _i++) {\r\n var f = _a[_i];\r\n f(this._$popupContent);\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 MapPopupCls.prototype.addMapServicePopupContent = function (feature, lyr, popupContent, esriName) {\r\n var featLayerObject = new FeatureLayerProperties(feature, lyr, this._popupContentLength, this._selectionLayerLookup[lyr.id], esriName);\r\n featLayerObject.popupContent = popupContent;\r\n this._passThroughLayerFeatureArray.push(featLayerObject);\r\n this._popupContentLength++;\r\n $('.popup-content-length').html(this._popupContentLength.toFixed());\r\n if (!this._popupOpen) {\r\n this._$popupContent.find('.next-popup').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 *\r\n * @param pixel - the ol pixel\r\n * @returns feature layer properties\r\n * @private\r\n */\r\n MapPopupCls.prototype._featuresAtPixel = function (pixel) {\r\n var _this = this;\r\n var layerFeatureObjectArray = [];\r\n this.map.forEachFeatureAtPixel(pixel, function (feature, layer) {\r\n var lyrIndex = _this._arrPopupOlLayers.indexOf(layer);\r\n if (lyrIndex > -1) {\r\n layerFeatureObjectArray.push(new FeatureLayerProperties(feature, _this._arrPopupLayers[lyrIndex], lyrIndex, _this._selectionLayers[lyrIndex]));\r\n }\r\n });\r\n return layerFeatureObjectArray;\r\n };\r\n MapPopupCls.prototype.closePopup = function () {\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 return false;\r\n };\r\n ;\r\n /**\r\n *\r\n * @param chgFunction - popup change function\r\n */\r\n MapPopupCls.prototype.addPopupChangedFunction = function (chgFunction) {\r\n this._popupChangedFunctions.push(chgFunction);\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 MapPopupCls.prototype._addPopupLayer = function (lyr, selectionStyle) {\r\n this._checkInit();\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 var theStyle;\r\n if (selectionStyle.olStyle) {\r\n theStyle = selectionStyle.olStyle;\r\n }\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 var selectionLayer = new ol.layer.Vector({\r\n source: new ol.source.Vector(),\r\n style: theStyle\r\n });\r\n selectionLayer.setZIndex(100);\r\n this._selectionLayers.push(selectionLayer);\r\n this._selectionLayerLookup[lyr.id] = selectionLayer;\r\n this.map.addLayer(selectionLayer);\r\n return selectionLayer;\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 MapPopupCls.prototype.addVectorPopup = function (lyr, popupContentFunction, selectionStyle) {\r\n var 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 return selectionLayer;\r\n };\r\n ;\r\n /**\r\n *\r\n * @param {LayerBase} lyr - layer\r\n */\r\n MapPopupCls.prototype.removeVectorPopup = function (lyr) {\r\n var idx = this._arrPopupLayerIds.indexOf(lyr.id);\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 * @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 MapPopupCls.prototype.addMapServicePopup = function (lyr, selectionStyle) {\r\n var selectionLayer = this._addPopupLayer(lyr, selectionStyle);\r\n this._esriMapServiceLayers.push(lyr);\r\n return selectionLayer;\r\n };\r\n MapPopupCls.prototype.clearSelection = function () {\r\n this._checkInit();\r\n for (var i = 0; i < this._selectionLayers.length; i++) {\r\n this._selectionLayers[i].getSource().clear();\r\n }\r\n for (var _i = 0, _a = this._mapClickFunctions; _i < _a.length; _i++) {\r\n var f = _a[_i];\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 MapPopupCls.prototype.addMapClickFunction = function (func) {\r\n this._mapClickFunctions.push(func);\r\n };\r\n return MapPopupCls;\r\n}(mapInteractionBase_1.default));\r\nexports.MapPopupCls = MapPopupCls;\r\nnm.MapPopupCls = MapPopupCls;\r\nexports.default = MapPopupCls;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwUG9wdXBDbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBQb3B1cENscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7Ozs7Ozs7Ozs7OztBQUVILDJEQUFzRDtBQUV0RCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBR2pDLDBCQUE2QjtBQUU3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBMEJoQztJQVNJOzs7Ozs7O09BT0c7SUFDSCxnQ0FBWSxPQUFtQixFQUFFLEtBQXlDLEVBQUUsVUFBa0IsRUFBRSxjQUErQixFQUFFLGFBQXNCO1FBQ25KLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxhQUFhLElBQUksUUFBUSxHQUFHLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDdEYsQ0FBQztJQUVELHNCQUFJLDZDQUFTO2FBQWI7WUFDSSxFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDOUIsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUMzQixDQUFDO1FBQ0wsQ0FBQzs7O09BQUE7SUFDTCw2QkFBQztBQUFELENBQUMsQUFqQ0QsSUFpQ0M7QUFqQ1ksd0RBQXNCO0FBbUNuQzs7O0dBR0c7QUFDSDtJQUFpQywrQkFBa0I7SUFxQi9DOzs7OztPQUtHO0lBR0g7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QWtCLEdBeWNsRDtBQXpjWSxrQ0FBVztBQTBjeEIsRUFBRSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDN0Isa0JBQWUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTEvMy8yMDE1LlxyXG4gKi9cclxuXHJcbmltcG9ydCBNYXBJbnRlcmFjdGlvbkJhc2UgZnJvbSAnLi9tYXBJbnRlcmFjdGlvbkJhc2UnO1xyXG5pbXBvcnQgcHJvcGVydGllc1pvb21TdHlsZSBmcm9tICcuLi9vbEhlbHBlcnMvcHJvcGVydGllc1pvb21TdHlsZSc7XHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5pbXBvcnQge0xheWVyQmFzZVZlY3Rvcn0gZnJvbSBcIi4uL2xheWVycy9MYXllckJhc2VWZWN0b3JcIjtcclxuaW1wb3J0IExheWVyRXNyaU1hcFNlcnZlciBmcm9tIFwiLi4vbGF5ZXJzL0xheWVyRXNyaU1hcFNlcnZlclwiO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5cclxuY29uc3Qgbm0gPSBwcm92aWRlKCdvbEhlbHBlcnMnKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgcG9wdXBDaGFuZ2VkRnVuY3Rpb24ge1xyXG4gICAgKCRwb3BDb250ZW50OiBKUXVlcnkpOiBhbnk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBwb3B1cENhbGxiYWNrIHtcclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRoZSBwb3B1cFxyXG4gICAgICogQHBhcmFtIGZlYXR1cmVQcm9wZXJ0aWVzXHJcbiAgICAgKiBAcGFyYW0ganFSZWZcclxuICAgICAqL1xyXG4gICAgKGZlYXR1cmVQcm9wZXJ0aWVzOiBPYmplY3QsIGpxUmVmPzogSlF1ZXJ5KTogc3RyaW5nIHwgYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIG1hcEV2ZW50IHtcclxuICAgIGNvb3JkaW5hdGU6IG9sLkNvb3JkaW5hdGU7XHJcbiAgICBwaXhlbDogb2wuUGl4ZWw7XHJcbiAgICBkcmFnZ2luZzogYm9vbGVhbnxhbnk7XHJcbiAgICBvcmlnaW5hbEV2ZW50OiBFdmVudDtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlTGF5ZXJQcm9wZXJ0aWVzIHtcclxuXHJcbiAgICBmZWF0dXJlOiBvbC5GZWF0dXJlO1xyXG4gICAgbGF5ZXI6IExheWVyQmFzZVZlY3RvcnxMYXllckVzcmlNYXBTZXJ2ZXI7XHJcbiAgICBsYXllckluZGV4OiBudW1iZXI7XHJcbiAgICBzZWxlY3Rpb25MYXllcjogb2wubGF5ZXIuVmVjdG9yO1xyXG4gICAgcG9wdXBDb250ZW50OiBzdHJpbmc7XHJcbiAgICBlc3JpTGF5ZXJOYW1lOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGZlYXR1cmUgdGhlIGZlYXR1cmVcclxuICAgICAqIEBwYXJhbSBsYXllciAtIHRoZSBsYXllciBpbiB0aGUgcG9wdXBcclxuICAgICAqIEBwYXJhbSBsYXllckluZGV4IC0gaW5kZXggb2YgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gc2VsZWN0aW9uTGF5ZXIgLSB0aGUgb2wgc2VsZWN0aW9uIGxheWVyXHJcbiAgICAgKiBAcGFyYW0gW2VzcmlMYXllck5hbWU9dW5kZWZpbmVkXSAtIGVzcmkgbGF5ZXIgbmFtZVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihmZWF0dXJlOiBvbC5GZWF0dXJlLCBsYXllcjogTGF5ZXJCYXNlVmVjdG9yfExheWVyRXNyaU1hcFNlcnZlciwgbGF5ZXJJbmRleDogbnVtYmVyLCBzZWxlY3Rpb25MYXllcjogb2wubGF5ZXIuVmVjdG9yLCBlc3JpTGF5ZXJOYW1lPzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5mZWF0dXJlID0gZmVhdHVyZTtcclxuICAgICAgICB0aGlzLmxheWVyID0gbGF5ZXI7XHJcbiAgICAgICAgdGhpcy5sYXllckluZGV4ID0gbGF5ZXJJbmRleDtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbkxheWVyID0gc2VsZWN0aW9uTGF5ZXI7XHJcbiAgICAgICAgdGhpcy5wb3B1cENvbnRlbnQgPSAnJztcclxuICAgICAgICB0aGlzLmVzcmlMYXllck5hbWUgPSB0eXBlb2YgZXNyaUxheWVyTmFtZSA9PSAnc3RyaW5nJyA/IGVzcmlMYXllck5hbWUgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGxheWVyTmFtZSgpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXNyaUxheWVyTmFtZSA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lc3JpTGF5ZXJOYW1lO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxheWVyLm5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogbWFwIHBvcHVwIGNsYXNzXHJcbiAqIEBhdWdtZW50cyBNYXBJbnRlcmFjdGlvbkJhc2VcclxuICovXHJcbmV4cG9ydCBjbGFzcyBNYXBQb3B1cENscyBleHRlbmRzIE1hcEludGVyYWN0aW9uQmFzZSB7XHJcbiAgICBwcml2YXRlIF9wb3B1cE9wZW46IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIF9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5OiBBcnJheTxGZWF0dXJlTGF5ZXJQcm9wZXJ0aWVzPjtcclxuICAgIHByaXZhdGUgX2N1cnJlbnRQb3B1cEluZGV4OiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9wb3B1cENvbnRlbnRMZW5ndGg6IG51bWJlcjtcclxuICAgIHByaXZhdGUgX2VzcmlNYXBTZXJ2aWNlTGF5ZXJzOiBBcnJheTxMYXllckVzcmlNYXBTZXJ2ZXI+O1xyXG4gICAgcHJpdmF0ZSBfJHBvcHVwQ2xvc2VyOiBKUXVlcnk7XHJcbiAgICBwcml2YXRlIF8kcG9wdXBDb250ZW50OiBKUXVlcnk7XHJcbiAgICBwcml2YXRlIF8kcG9wdXBDb250YWluZXI6IEpRdWVyeTtcclxuICAgIHByaXZhdGUgX3BvcHVwT3ZlcmxheTogb2wuT3ZlcmxheTtcclxuICAgIHByaXZhdGUgX2FyclBvcHVwTGF5ZXJzOiBBcnJheTxMYXllckJhc2VWZWN0b3I+O1xyXG4gICAgcHJpdmF0ZSBfcG9wdXBDb29yZGluYXRlOiBvbC5Db29yZGluYXRlO1xyXG4gICAgcHJpdmF0ZSBfcG9wdXBDaGFuZ2VkRnVuY3Rpb25zOiBBcnJheTxwb3B1cENoYW5nZWRGdW5jdGlvbj47XHJcbiAgICBwcml2YXRlIF9tYXBDbGlja0Z1bmN0aW9uczogQXJyYXk8RnVuY3Rpb24+O1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uTGF5ZXJMb29rdXA6IE9iamVjdDtcclxuICAgIHByaXZhdGUgX2FyclBvcHVwTGF5ZXJJZHM6IEFycmF5PHN0cmluZz47XHJcbiAgICBwcml2YXRlIF9hcnJQb3B1cExheWVyTmFtZXM6IEFycmF5PHN0cmluZz47XHJcbiAgICBwcml2YXRlIF9hcnJQb3B1cE9sTGF5ZXJzOiBBcnJheTxvbC5sYXllci5WZWN0b3I+O1xyXG4gICAgcHJpdmF0ZSBfYXJyUG9wdXBDb250ZW50RnVuY3Rpb246IEFycmF5PHBvcHVwQ2FsbGJhY2s+O1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uTGF5ZXJzOiBBcnJheTxvbC5sYXllci5WZWN0b3I+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5pdGlvbiBmb3Igb3BlbmxheWVycyBzdHlsZSBmdW5jdGlvblxyXG4gICAgICogQGNhbGxiYWNrIG9sU3R5bGVGdW5jdGlvblxyXG4gICAgICogJnBhcmFtIGZlYXR1cmUgdGhlIG9wZW5sYXllcnMgdmVjdG9yIGZlYXR1cmVcclxuICAgICAqICRwYXJhbVxyXG4gICAgICovXHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIHBvcHVwIGNvbnN0cnVjdG9yXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCdtYXAgcG9wdXAnKTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cExheWVySWRzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcnMgPSBbXTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzID0gW107XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb24gPSBbXTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250YWluZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ29udGVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDbG9zZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVycyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVyTG9va3VwID0ge307XHJcbiAgICAgICAgdGhpcy5fbWFwQ2xpY2tGdW5jdGlvbnMgPSBbXTtcclxuXHJcbiAgICAgICAgLy9sZXQgYSA9IGZ1bmN0aW9uKCRqcXVlcnlDb250ZW50KXtjb25zb2xlLmxvZygkanF1ZXJ5Q29udGVudCl9O1xyXG4gICAgICAgIC8vdGhpcy5fcG9wdXBDaGFuZ2VkTG9va3VwID0geydhJzogYX07XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDaGFuZ2VkRnVuY3Rpb25zID0gW107XHJcbiAgICAgICAgdGhpcy5fZXNyaU1hcFNlcnZpY2VMYXllcnMgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5fcG9wdXBPcGVuID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDb29yZGluYXRlID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5fcGFzc1Rocm91Z2hMYXllckZlYXR1cmVBcnJheSA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IC0xO1xyXG4gICAgICAgIHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCA9IDA7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbWFwIHBvcHVwIGluaXRpYWxpemF0aW9uXHJcbiAgICAgKiBAcGFyYW0ge29sLk1hcH0gdGhlTWFwIC0gdGhlIG9sIG1hcFxyXG4gICAgICovXHJcbiAgICBpbml0KHRoZU1hcDogb2wuTWFwKSB7XHJcbiAgICAgICAgc3VwZXIuaW5pdCh0aGVNYXApO1xyXG5cclxuICAgICAgICBsZXQgJG1hcDtcclxuICAgICAgICBsZXQgdGFyZ2V0ID0gdGhpcy5tYXAuZ2V0VGFyZ2V0KCk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgICRtYXAgPSAkKCcjJyArIHRhcmdldCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAkbWFwID0gJCh0YXJnZXQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJG1hcC5hcHBlbmQoXHJcbiAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwib2wtcG9wdXBcIj4nICtcclxuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwib2wtcG9wdXAtY2xvc2VyXCI+WDwvc3Bhbj4nICtcclxuICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+PC9kaXY+JyArXHJcbiAgICAgICAgICAgICc8L2Rpdj4nXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ29udGFpbmVyID0gJG1hcC5maW5kKCcub2wtcG9wdXAnKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250ZW50ID0gJG1hcC5maW5kKCcucG9wdXAtY29udGVudCcpO1xyXG4gICAgICAgIHRoaXMuXyRwb3B1cENsb3NlciA9ICRtYXAuZmluZCgnLm9sLXBvcHVwLWNsb3NlcicpO1xyXG5cclxuICAgICAgICBsZXQgX2Vhc2UgPSAobjogbnVtYmVyKTogbnVtYmVyID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG9sLmVhc2luZy5pbkFuZE91dChuKTtcclxuICAgICAgICB9O1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5ID0gbmV3IG9sLk92ZXJsYXkoe1xyXG4gICAgICAgICAgICBlbGVtZW50OiB0aGlzLl8kcG9wdXBDb250YWluZXJbMF0sXHJcbiAgICAgICAgICAgIGF1dG9QYW46IHRydWUsXHJcbiAgICAgICAgICAgIGF1dG9QYW5BbmltYXRpb246IHtcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyNTAsXHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IHRoZU1hcC5nZXRWaWV3KCkuZ2V0Q2VudGVyKCksXHJcbiAgICAgICAgICAgICAgICBlYXNpbmc6IF9lYXNlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWFwLmFkZE92ZXJsYXkodGhpcy5fcG9wdXBPdmVybGF5KTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHBvcHVwQ2xvc2VyLmNsaWNrKChldnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIGRpc3BsYXkgcG9wdXAgb24gY2xpY2tcclxuICAgICAgICB0aGlzLl9tYXAub24oJ3NpbmdsZWNsaWNrJywgKGV2dCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwQ29vcmRpbmF0ZSA9IGV2dFsnY29vcmRpbmF0ZSddO1xyXG5cclxuICAgICAgICAgICAgLy8gZXNyaSBtYXAgc2VydmljZSBsYXllcnNcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2VzcmlNYXBTZXJ2aWNlTGF5ZXJzLmxlbmd0aCA+IDApIHtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgcXVlcnlQYXJhbXMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZ2VvbWV0cnk6IGV2dFsnY29vcmRpbmF0ZSddLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgICAgICBnZW9tZXRyeVR5cGU6ICdlc3JpR2VvbWV0cnlQb2ludCcsXHJcbiAgICAgICAgICAgICAgICAgICAgbGF5ZXJzOiAnYWxsJyxcclxuICAgICAgICAgICAgICAgICAgICBzcjogdGhpcy5fbWFwLmdldFZpZXcoKS5nZXRQcm9qZWN0aW9uKCkuZ2V0Q29kZSgpLnNwbGl0KCc6JylbMV0sXHJcbiAgICAgICAgICAgICAgICAgICAgbWFwRXh0ZW50OiAodGhpcy5fbWFwLmdldFZpZXcoKS5jYWxjdWxhdGVFeHRlbnQodGhpcy5fbWFwLmdldFNpemUoKSkgYXMgbnVtYmVyW10pLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZURpc3BsYXk6ICh0aGlzLl9tYXAuZ2V0U2l6ZSgpIGFzIG51bWJlcltdKS5qb2luKCcsJykgKyAnLDk2JyxcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm5HZW9tZXRyeTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICB0b2xlcmFuY2U6IDE1LFxyXG4gICAgICAgICAgICAgICAgICAgIGY6ICdwanNvbidcclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgbCBvZiB0aGlzLl9lc3JpTWFwU2VydmljZUxheWVycykge1xyXG4gICAgICAgICAgICAgICAgICAgIGwuZ2V0UG9wdXBJbmZvKHF1ZXJ5UGFyYW1zKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IGxheWVyRmVhdHVyZU9iamVjdEFycmF5ID0gdGhpcy5fZmVhdHVyZXNBdFBpeGVsKGV2dFsncGl4ZWwnXSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID0gLTE7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxheWVyRmVhdHVyZU9iamVjdEFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZmVhdE9iaiA9IGxheWVyRmVhdHVyZU9iamVjdEFycmF5W2ldO1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCBwcm9wcyA9IGZlYXRPYmouZmVhdHVyZS5nZXRQcm9wZXJ0aWVzKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHBvcHVwQ29udGVudFJlc3BvbnNlID0gdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb25bZmVhdE9iai5sYXllckluZGV4XShwcm9wcywgdGhpcy5fJHBvcHVwQ29udGVudCk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy9za2lwIGlmIHJldHVybiB3YXMgZmFsc2VcclxuICAgICAgICAgICAgICAgIGlmIChwb3B1cENvbnRlbnRSZXNwb25zZSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL2NvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcG9wdXBDb250ZW50UmVzcG9uc2UgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICBmZWF0T2JqLnBvcHVwQ29udGVudCA9IHBvcHVwQ29udGVudFJlc3BvbnNlIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5LnB1c2goZmVhdE9iaik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGZlYXRPYmouc2VsZWN0aW9uTGF5ZXIuZ2V0U291cmNlKCkuYWRkRmVhdHVyZShmZWF0T2JqLmZlYXR1cmUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cENvbnRlbnRMZW5ndGggPSB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID0gLTE7XHJcblxyXG4gICAgICAgICAgICBsZXQgcG9wdXBIdG1sID0gJzxkaXYgY2xhc3M9XCJvbC1wb3B1cC1uYXZcIj4nO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzxzcGFuIGNsYXNzPVwicHJldmlvdXMtcG9wdXAgb2wtcG9wdXAtbmF2LWFycm93XCI+JiM5NjY0Ozwvc3Bhbj4nO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzxzcGFuIGNsYXNzPVwibmV4dC1wb3B1cCBvbC1wb3B1cC1uYXYtYXJyb3dcIj4mIzk2NTQ7PC9zcGFuPic7XHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSBgPHNwYW4gY2xhc3M9XCJjdXJyZW50LXBvcHVwLWl0ZW0tbnVtYmVyXCIgc3R5bGU9XCJmb250LXdlaWdodDogYm9sZDtcIj48L3NwYW4+YDtcclxuICAgICAgICAgICAgcG9wdXBIdG1sICs9IGA8c3Bhbj4mbmJzcDtvZiZuYnNwOzwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gYDxzcGFuIGNsYXNzPVwicG9wdXAtY29udGVudC1sZW5ndGhcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkO1wiPiR7dGhpcy5fcG9wdXBDb250ZW50TGVuZ3RofTwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gYDxzcGFuPiZuYnNwOyZuYnNwOy0mbmJzcDsmbmJzcDs8L3NwYW4+YDtcclxuICAgICAgICAgICAgcG9wdXBIdG1sICs9IGA8c3BhbiBjbGFzcz1cImN1cnJlbnQtcG9wdXAtbGF5ZXItbmFtZVwiPjwvc3Bhbj5gO1xyXG4gICAgICAgICAgICBwb3B1cEh0bWwgKz0gJzwvZGl2Pic7XHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSAnPGRpdiBjbGFzcz1cIm9sLXBvcHVwLWlubmVyXCI+JztcclxuXHJcbiAgICAgICAgICAgIHBvcHVwSHRtbCArPSAnPC9kaXY+JztcclxuXHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuaHRtbChwb3B1cEh0bWwpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fJHBvcHVwQ29udGVudC5maW5kKCcucHJldmlvdXMtcG9wdXAnKS5jbGljaygoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4LS07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyRmVhdFNlbGVjdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGxldCBuZXh0UG9wdXAgPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5uZXh0LXBvcHVwJyk7XHJcblxyXG4gICAgICAgICAgICBuZXh0UG9wdXAuY2xpY2soKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCA9PSAxICYmIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4ID09IHRoaXMuX3BvcHVwQ29udGVudExlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50UG9wdXBJbmRleCA9IDA7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb3B1cEluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyRmVhdFNlbGVjdCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgbmV4dFBvcHVwLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9wb3B1cE92ZXJsYXkuc2V0UG9zaXRpb24odGhpcy5fcG9wdXBDb29yZGluYXRlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuc2Nyb2xsVG9wKDApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcG9wdXBPcGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvL2NoYW5nZSBtb3VzZSBjdXJzb3Igd2hlbiBvdmVyIG1hcmtlclxyXG4gICAgICAgIHRoaXMuX21hcC5vbigncG9pbnRlcm1vdmUnLCAoZXZ0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChldnRbJ2RyYWdnaW5nJ10pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgcGl4ZWwgPSB0aGlzLm1hcC5nZXRFdmVudFBpeGVsKGV2dFsnb3JpZ2luYWxFdmVudCddKTtcclxuICAgICAgICAgICAgbGV0IGhpdCA9IHRoaXMubWFwLmhhc0ZlYXR1cmVBdFBpeGVsKHBpeGVsLCAobHlyQ2FuZGlkYXRlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBvbExheWVyIG9mIHRoaXMuX2FyclBvcHVwT2xMYXllcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobHlyQ2FuZGlkYXRlID09IG9sTGF5ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGxldCBtYXBFbGVtZW50ID0gdGhpcy5tYXAuZ2V0VGFyZ2V0RWxlbWVudCgpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICBtYXBFbGVtZW50LnN0eWxlLmN1cnNvciA9IGhpdCA/ICdwb2ludGVyJyA6ICcnO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGhlbHBlciB0byBzZWxlY3QgZmVhdHVyZXNcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIF90cmlnZ2VyRmVhdFNlbGVjdCgpIHtcclxuICAgICAgICBsZXQgJGN1cnJlbnRQb3B1cEl0ZW1OdW1iZXIgPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5jdXJyZW50LXBvcHVwLWl0ZW0tbnVtYmVyJyk7XHJcbiAgICAgICAgbGV0ICRpbm5lclBvcHVwID0gdGhpcy5fJHBvcHVwQ29udGVudC5maW5kKCcub2wtcG9wdXAtaW5uZXInKTtcclxuICAgICAgICBsZXQgJGxheWVyTmFtZVNwYW4gPSB0aGlzLl8kcG9wdXBDb250ZW50LmZpbmQoJy5jdXJyZW50LXBvcHVwLWxheWVyLW5hbWUnKTtcclxuICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICAgICAgbGV0IGx5ckZlYXRPYmogPSB0aGlzLl9wYXNzVGhyb3VnaExheWVyRmVhdHVyZUFycmF5W3RoaXMuX2N1cnJlbnRQb3B1cEluZGV4XTtcclxuICAgICAgICAkY3VycmVudFBvcHVwSXRlbU51bWJlci5odG1sKCh0aGlzLl9jdXJyZW50UG9wdXBJbmRleCArIDEpLnRvRml4ZWQoKSk7XHJcbiAgICAgICAgJGxheWVyTmFtZVNwYW4uaHRtbChseXJGZWF0T2JqLmxheWVyTmFtZSk7XHJcbiAgICAgICAgJGlubmVyUG9wdXAuaHRtbChseXJGZWF0T2JqLnBvcHVwQ29udGVudCk7XHJcbiAgICAgICAgbHlyRmVhdE9iai5zZWxlY3Rpb25MYXllci5nZXRTb3VyY2UoKS5hZGRGZWF0dXJlKGx5ckZlYXRPYmouZmVhdHVyZSk7XHJcbiAgICAgICAgZm9yIChsZXQgZiBvZiB0aGlzLl9wb3B1cENoYW5nZWRGdW5jdGlvbnMpIHtcclxuICAgICAgICAgICAgZih0aGlzLl8kcG9wdXBDb250ZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBmZWF0dXJlIC0gdGhlIG9sIGZlYXR1cmVcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJFc3JpTWFwU2VydmVyfSBseXIgLSB0aGUgbWFwIHNlcnZlciBsYXllclxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHBvcHVwQ29udGVudCAtIHBvcHVwIGNvbnRlbnRcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBlc3JpTmFtZSAtIGVzcmkgbGF5ZXIgbmFtZVxyXG4gICAgICovXHJcbiAgICBhZGRNYXBTZXJ2aWNlUG9wdXBDb250ZW50KGZlYXR1cmU6IG9sLkZlYXR1cmUsIGx5cjogTGF5ZXJFc3JpTWFwU2VydmVyLCBwb3B1cENvbnRlbnQ6IHN0cmluZywgZXNyaU5hbWU6IHN0cmluZykge1xyXG5cclxuICAgICAgICBsZXQgZmVhdExheWVyT2JqZWN0ID0gbmV3IEZlYXR1cmVMYXllclByb3BlcnRpZXMoXHJcbiAgICAgICAgICAgIGZlYXR1cmUsIGx5ciwgdGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoLCB0aGlzLl9zZWxlY3Rpb25MYXllckxvb2t1cFtseXIuaWRdLCBlc3JpTmFtZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgZmVhdExheWVyT2JqZWN0LnBvcHVwQ29udGVudCA9IHBvcHVwQ29udGVudDtcclxuXHJcbiAgICAgICAgdGhpcy5fcGFzc1Rocm91Z2hMYXllckZlYXR1cmVBcnJheS5wdXNoKGZlYXRMYXllck9iamVjdCk7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoKys7XHJcblxyXG4gICAgICAgICQoJy5wb3B1cC1jb250ZW50LWxlbmd0aCcpLmh0bWwodGhpcy5fcG9wdXBDb250ZW50TGVuZ3RoLnRvRml4ZWQoKSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fcG9wdXBPcGVuKSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuZmluZCgnLm5leHQtcG9wdXAnKS50cmlnZ2VyKCdjbGljaycpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fcG9wdXBPdmVybGF5LnNldFBvc2l0aW9uKHRoaXMuX3BvcHVwQ29vcmRpbmF0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuXyRwb3B1cENvbnRlbnQuc2Nyb2xsVG9wKDApO1xyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cE9wZW4gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gIHBpeGVsIC0gdGhlIG9sIHBpeGVsXHJcbiAgICAgKiBAcmV0dXJucyAgZmVhdHVyZSBsYXllciBwcm9wZXJ0aWVzXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBfZmVhdHVyZXNBdFBpeGVsKHBpeGVsOiBvbC5QaXhlbCk6IEFycmF5PEZlYXR1cmVMYXllclByb3BlcnRpZXM+IHtcclxuICAgICAgICBsZXQgbGF5ZXJGZWF0dXJlT2JqZWN0QXJyYXkgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5tYXAuZm9yRWFjaEZlYXR1cmVBdFBpeGVsKHBpeGVsLCAoZmVhdHVyZTogb2wuRmVhdHVyZSwgbGF5ZXI6IG9sLmxheWVyLlZlY3RvcikgPT4ge1xyXG4gICAgICAgICAgICBsZXQgbHlySW5kZXggPSB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzLmluZGV4T2YobGF5ZXIpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGx5ckluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIGxheWVyRmVhdHVyZU9iamVjdEFycmF5LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAgbmV3IEZlYXR1cmVMYXllclByb3BlcnRpZXMoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZlYXR1cmUsIHRoaXMuX2FyclBvcHVwTGF5ZXJzW2x5ckluZGV4XSwgbHlySW5kZXgsIHRoaXMuX3NlbGVjdGlvbkxheWVyc1tseXJJbmRleF0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gbGF5ZXJGZWF0dXJlT2JqZWN0QXJyYXk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VQb3B1cCgpIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICB0aGlzLl9wb3B1cE9wZW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9wb3B1cE92ZXJsYXkuc2V0UG9zaXRpb24odW5kZWZpbmVkKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDbG9zZXJbMF0uYmx1cigpO1xyXG4gICAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24oKTtcclxuICAgICAgICB0aGlzLl8kcG9wdXBDb250ZW50Lmh0bWwoJycpO1xyXG5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY2hnRnVuY3Rpb24gLSBwb3B1cCBjaGFuZ2UgZnVuY3Rpb25cclxuICAgICAqL1xyXG4gICAgYWRkUG9wdXBDaGFuZ2VkRnVuY3Rpb24oY2hnRnVuY3Rpb246IHBvcHVwQ2hhbmdlZEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDaGFuZ2VkRnVuY3Rpb25zLnB1c2goY2hnRnVuY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJCYXNlfCp9IGx5ciAtIHRoZSBsYXllciBiZWluZyBhY3RlZCBvblxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtzZWxlY3Rpb25TdHlsZT17fV0gdGhlIHNlbGVjdGlvbiBzdHlsZSBjb25maWd1cmF0aW9uXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3NlbGVjdGlvblN0eWxlLmNvbG9yPXJnYmEoMjU1LDE3MCwwLDAuNSldIHRoZSBzZWxlY3Rpb24gY29sb3JcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc2VsZWN0aW9uU3R5bGUud2lkdGg9MTBdIHRoZSBzZWxlY3Rpb24gd2lkdGggZm9yIGxpbmVhciBmZWF0dXJlc1xyXG4gICAgICogQHBhcmFtIHtvYmplY3R8ZnVuY3Rpb259IFtzZWxlY3Rpb25TdHlsZS5vbFN0eWxlPXVuZGVmaW5lZF0gYW4gb3BlbmxheWVycyBzdHlsZSBvYmplY3Qgb3IgZnVuY3Rpb25cclxuICAgICAqIEByZXR1cm5zICB0aGUgbmV3IHNlbGVjdGlvbiBsYXllclxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgX2FkZFBvcHVwTGF5ZXIobHlyOiBMYXllckJhc2VWZWN0b3IsIHNlbGVjdGlvblN0eWxlOiB7Y29sb3I/OiBzdHJpbmcsIHdpZHRoPzogbnVtYmVyLCBvbFN0eWxlPzogb2wuc3R5bGUuU3R5bGV9KTogb2wubGF5ZXIuVmVjdG9yIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuXHJcbiAgICAgICAgc2VsZWN0aW9uU3R5bGUgPSBzZWxlY3Rpb25TdHlsZSB8fCB7fTtcclxuICAgICAgICBzZWxlY3Rpb25TdHlsZS5jb2xvciA9IHNlbGVjdGlvblN0eWxlLmNvbG9yIHx8ICdyZ2JhKDI1NSwxNzAsMCwwLjUpJztcclxuICAgICAgICBzZWxlY3Rpb25TdHlsZS53aWR0aCA9IHNlbGVjdGlvblN0eWxlLndpZHRoIHx8IDEwO1xyXG5cclxuICAgICAgICBsZXQgdGhlU3R5bGU7XHJcblxyXG4gICAgICAgIGlmIChzZWxlY3Rpb25TdHlsZS5vbFN0eWxlKSB7XHJcbiAgICAgICAgICAgIHRoZVN0eWxlID0gc2VsZWN0aW9uU3R5bGUub2xTdHlsZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGVTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICBzdHJva2U6IG5ldyBvbC5zdHlsZS5TdHJva2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzZWxlY3Rpb25TdHlsZS5jb2xvcixcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogc2VsZWN0aW9uU3R5bGUud2lkdGhcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5DaXJjbGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHJhZGl1czogNyxcclxuICAgICAgICAgICAgICAgICAgICBmaWxsOiBuZXcgb2wuc3R5bGUuRmlsbCh7Y29sb3I6IHNlbGVjdGlvblN0eWxlLmNvbG9yfSksXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiBuZXcgb2wuc3R5bGUuU3Ryb2tlKHtjb2xvcjogc2VsZWN0aW9uU3R5bGUuY29sb3IsIHdpZHRoOiAxfSlcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgZmlsbDogbmV3IG9sLnN0eWxlLkZpbGwoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzZWxlY3Rpb25TdHlsZS5jb2xvclxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgc2VsZWN0aW9uTGF5ZXIgPSBuZXcgb2wubGF5ZXIuVmVjdG9yKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IG5ldyBvbC5zb3VyY2UuVmVjdG9yKCksXHJcbiAgICAgICAgICAgICAgICBzdHlsZTogdGhlU3R5bGVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHNlbGVjdGlvbkxheWVyLnNldFpJbmRleCgxMDApO1xyXG5cclxuICAgICAgICB0aGlzLl9zZWxlY3Rpb25MYXllcnMucHVzaChzZWxlY3Rpb25MYXllcik7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uTGF5ZXJMb29rdXBbbHlyLmlkXSA9IHNlbGVjdGlvbkxheWVyO1xyXG4gICAgICAgIHRoaXMubWFwLmFkZExheWVyKHNlbGVjdGlvbkxheWVyKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHNlbGVjdGlvbkxheWVyO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBwb3B1cCB0byB0aGUgbWFwXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyQmFzZXwqfSBseXIgVGhlIGxheWVyIHRoYXQgdGhlIHBvcHVwIHdpdGggYWN0IG9uXHJcbiAgICAgKiBAcGFyYW0ge3BvcHVwQ2FsbGJhY2t9IHBvcHVwQ29udGVudEZ1bmN0aW9uIC0gcG9wdXAgY29udGVudCBmdW5jdGlvbiB0aGF0IG1ha2VzIHBvcHVwIGluZm9cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbc2VsZWN0aW9uU3R5bGU9e31dIHRoZSBzZWxlY3Rpb24gc3R5bGUgY29uZmlndXJhdGlvblxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzZWxlY3Rpb25TdHlsZS5jb2xvcj1yZ2JhKDI1NSwxNzAsMCwwLjUpXSB0aGUgc2VsZWN0aW9uIGNvbG9yXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3NlbGVjdGlvblN0eWxlLndpZHRoPTEwXSB0aGUgc2VsZWN0aW9uIHdpZHRoIGZvciBsaW5lYXIgZmVhdHVyZXNcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fGZ1bmN0aW9ufSBbc2VsZWN0aW9uU3R5bGUub2xTdHlsZT11bmRlZmluZWRdIGFuIG9wZW5sYXllcnMgc3R5bGUgb2JqZWN0IG9yIGZ1bmN0aW9uXHJcbiAgICAgKiBAcmV0dXJucyB7b2JqZWN0fSBhIHJlZmVyZW5jZSB0byB0aGUgb2wgc2VsZWN0aW9uIGxheWVyXHJcbiAgICAgKi9cclxuICAgIGFkZFZlY3RvclBvcHVwKGx5cjogTGF5ZXJCYXNlVmVjdG9yLCBwb3B1cENvbnRlbnRGdW5jdGlvbjogcG9wdXBDYWxsYmFjayxcclxuICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblN0eWxlPzoge2NvbG9yPzogc3RyaW5nLCB3aWR0aD86IG51bWJlciwgb2xTdHlsZT86IG9sLnN0eWxlLlN0eWxlfSkge1xyXG4gICAgICAgIGxldCBzZWxlY3Rpb25MYXllciA9IHRoaXMuX2FkZFBvcHVwTGF5ZXIobHlyLCBzZWxlY3Rpb25TdHlsZSk7XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcklkcy5wdXNoKGx5ci5pZCk7XHJcbiAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzLnB1c2gobHlyLm5hbWUpO1xyXG4gICAgICAgIHRoaXMuX2FyclBvcHVwTGF5ZXJzLnB1c2gobHlyKTtcclxuICAgICAgICB0aGlzLl9hcnJQb3B1cE9sTGF5ZXJzLnB1c2gobHlyLm9sTGF5ZXIpO1xyXG4gICAgICAgIHRoaXMuX2FyclBvcHVwQ29udGVudEZ1bmN0aW9uLnB1c2gocG9wdXBDb250ZW50RnVuY3Rpb24pO1xyXG5cclxuICAgICAgICByZXR1cm4gc2VsZWN0aW9uTGF5ZXI7XHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyQmFzZX0gbHlyIC0gbGF5ZXJcclxuICAgICAqL1xyXG4gICAgcmVtb3ZlVmVjdG9yUG9wdXAobHlyKSB7XHJcbiAgICAgICAgbGV0IGlkeCA9IHRoaXMuX2FyclBvcHVwTGF5ZXJJZHMuaW5kZXhPZihseXIuaWQpO1xyXG5cclxuICAgICAgICBpZiAoaWR4ID4gLTEpIHtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllcklkcy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBMYXllck5hbWVzLnNwbGljZShpZHgsIDEpO1xyXG4gICAgICAgICAgICB0aGlzLl9hcnJQb3B1cExheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBPbExheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYXJyUG9wdXBDb250ZW50RnVuY3Rpb24uc3BsaWNlKGlkeCwgMSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbkxheWVycy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NlbGVjdGlvbkxheWVyTG9va3VwW2x5ci5pZF07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJFc3JpTWFwU2VydmVyfSBseXIgLSBtYXAgc2VydmVyIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW3NlbGVjdGlvblN0eWxlPXt9XSB0aGUgc2VsZWN0aW9uIHN0eWxlIGNvbmZpZ3VyYXRpb25cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc2VsZWN0aW9uU3R5bGUuY29sb3I9cmdiYSgyNTUsMTcwLDAsMC41KV0gdGhlIHNlbGVjdGlvbiBjb2xvclxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzZWxlY3Rpb25TdHlsZS53aWR0aD0xMF0gdGhlIHNlbGVjdGlvbiB3aWR0aCBmb3IgbGluZWFyIGZlYXR1cmVzXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdHxmdW5jdGlvbn0gW3NlbGVjdGlvblN0eWxlLm9sU3R5bGU9dW5kZWZpbmVkXSBhbiBvcGVubGF5ZXJzIHN0eWxlIG9iamVjdCBvciBmdW5jdGlvblxyXG4gICAgICogQHJldHVybnMge29iamVjdH0gYSByZWZlcmVuY2UgdG8gdGhlIG9sIHNlbGVjdGlvbiBsYXllclxyXG4gICAgICovXHJcbiAgICBhZGRNYXBTZXJ2aWNlUG9wdXAobHlyLCBzZWxlY3Rpb25TdHlsZT86IG9sLnN0eWxlLlN0eWxlfEFycmF5PG9sLnN0eWxlLlN0eWxlPnxvbC5TdHlsZUZ1bmN0aW9uKSB7XHJcbiAgICAgICAgbGV0IHNlbGVjdGlvbkxheWVyID0gdGhpcy5fYWRkUG9wdXBMYXllcihseXIsIHNlbGVjdGlvblN0eWxlKTtcclxuICAgICAgICB0aGlzLl9lc3JpTWFwU2VydmljZUxheWVycy5wdXNoKGx5cik7XHJcblxyXG4gICAgICAgIHJldHVybiBzZWxlY3Rpb25MYXllcjtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhclNlbGVjdGlvbigpIHtcclxuICAgICAgICB0aGlzLl9jaGVja0luaXQoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3NlbGVjdGlvbkxheWVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25MYXllcnNbaV0uZ2V0U291cmNlKCkuY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgZiBvZiB0aGlzLl9tYXBDbGlja0Z1bmN0aW9ucykge1xyXG4gICAgICAgICAgICBmKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBtYXAgaXMgY2xpY2tlZCBidXQgYmVmb3JlIGFueSBwb3B1cHMgYXJlIGltcGxlbWVudGVkXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIC0gdGhlIG1hcCBjbGljayBmdW5jdGlvblxyXG4gICAgICovXHJcbiAgICBhZGRNYXBDbGlja0Z1bmN0aW9uKGZ1bmM6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fbWFwQ2xpY2tGdW5jdGlvbnMucHVzaChmdW5jKTtcclxuICAgIH1cclxufVxyXG5ubS5NYXBQb3B1cENscyA9IE1hcFBvcHVwQ2xzO1xyXG5leHBvcnQgZGVmYXVsdCBNYXBQb3B1cENscztcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/mapPopupCls.ts\n// module id = 12\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 12/15/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('olHelpers');\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\nfunction quickMapBase(options) {\r\n options = options || {};\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 var $mapDiv = $('#' + options.divId);\r\n $mapDiv.css('position', 'relative');\r\n var 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 var 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 var 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 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 if (options.zoom < 0 || options.zoom > 28) {\r\n throw 'zoom out of range';\r\n }\r\n if (options.center.x >= -180 && options.center.x <= 180 && options.center.y >= -90 && options.center.y <= 90) {\r\n var p = new ol.geom.Point([options.center.x, options.center.y]);\r\n new ol.proj.Projection({ code: \"EPSG:4326\" });\r\n p.transform(new ol.proj.Projection({ code: \"EPSG:4326\" }), new ol.proj.Projection({ code: \"EPSG:3857\" }));\r\n var coordinates = p.getCoordinates();\r\n options.center.x = coordinates[0];\r\n options.center.y = coordinates[1];\r\n }\r\n var controls = ol.control.defaults({\r\n attributionOptions: { collapsible: false }\r\n });\r\n var 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 var map = new ol.Map({\r\n layers: [osmLayer],\r\n target: options.divId,\r\n controls: controls,\r\n view: view\r\n });\r\n if (options.fullScreen) {\r\n map.addControl(new ol.control.FullScreen({}));\r\n }\r\n return map;\r\n}\r\nexports.quickMapBase = quickMapBase;\r\nnm.quickMapBase = quickMapBase;\r\nexports.default = quickMapBase;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2tNYXBCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicXVpY2tNYXBCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFFSCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBQ2pDLDBCQUE2QjtBQUM3QixJQUFNLEVBQUUsR0FBRyxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBWWhDOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILHNCQUE2QixPQUF5QjtJQUNsRCxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQXFCLENBQUM7SUFDM0MsT0FBTyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztJQUN2QyxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBQyxDQUFDO0lBQzlELE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxPQUFPLENBQUMsSUFBSSxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNsRSxPQUFPLENBQUMsWUFBWSxHQUFHLE9BQU8sT0FBTyxDQUFDLFlBQVksSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDOUYsT0FBTyxDQUFDLFVBQVUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxVQUFVLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBR3pGLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXBDLElBQUksUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVB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RUgsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDckIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUM7QUFDZixDQUFDO0FBNUVELG9DQTRFQztBQUVELEVBQUUsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0FBQy9CLGtCQUFlLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzE1LzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0IG9sID0gcmVxdWlyZSgnY3VzdG9tLW9sJyk7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcbmNvbnN0IG5tID0gcHJvdmlkZSgnb2xIZWxwZXJzJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIHF1aWNrTWFwT3B0aW9ucyB7XHJcbiAgICBkaXZJZD86IHN0cmluZztcclxuICAgIGNlbnRlcj86IHt4OiBudW1iZXIsIHk6IG51bWJlcn07XHJcbiAgICB6b29tPzogbnVtYmVyO1xyXG4gICAgbWluWm9vbT86IG51bWJlcjtcclxuICAgIG1heFpvb20/OiBudW1iZXI7XHJcbiAgICBiYXNlU3dpdGNoZXI/OiBib29sZWFuO1xyXG4gICAgZnVsbFNjcmVlbj86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXRzIHVwIGEgbWFwIHdpdGggc29tZSBkZWZhdWx0IHBhcmFtZXRlcnMgYW5kIGluaXRpYWxpemVzXHJcbiAqIG1hcE1vdmUgYW5kIG1hcFBvcHVwXHJcbiAqXHJcbiAqIEBwYXJhbSBbb3B0aW9ucz17fV0gY29uZmlnIG9wdGlvbnNcclxuICogQHBhcmFtIFtvcHRpb25zLmRpdklkPW1hcF0gbWFwIGRpdiBpZFxyXG4gKiBAcGFyYW0gW29wdGlvbnMuY2VudGVyPXt9XSBjZW50ZXIgY29uZmlnIG9iamVjdFxyXG4gKiBAcGFyYW0gW29wdGlvbnMuY2VudGVyLng9LTEwMDE4Mzc4XSBjZW50ZXIgeCwgd2ViIG1lcmNhdG9yIHggb3IgbG9uXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5jZW50ZXIueT01NTc0OTEwXSBjZW50ZXIgeSwgd2ViIG1lcmNhdG9yIHkgb3IgbGF0XHJcbiAqIEBwYXJhbSBbb3B0aW9ucy56b29tPTddIHpvb20gbGV2ZWxcclxuICogQHBhcmFtIFtvcHRpb25zLm1pblpvb209dW5kZWZpbmVkXSBtaW4gem9vbVxyXG4gKiBAcGFyYW0gW29wdGlvbnMubWF4Wm9vbT11bmRlZmluZWRdIG1heCB6b29tXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5iYXNlU3dpdGNoZXI9dHJ1ZV0gaWYgYWRkIGJhc2UgbWFwIHN3aXRjaGVyXHJcbiAqIEBwYXJhbSBbb3B0aW9ucy5mdWxsU2NyZWVuPWZhbHNlXSBpZiBhZGQgYmFzZSBtYXAgc3dpdGNoZXJcclxuICogQHJldHVybnMgdGhlIG9sIG1hcFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHF1aWNrTWFwQmFzZShvcHRpb25zPzogcXVpY2tNYXBPcHRpb25zKTogb2wuTWFwIHtcclxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9IGFzIHF1aWNrTWFwT3B0aW9ucztcclxuICAgIG9wdGlvbnMuZGl2SWQgPSBvcHRpb25zLmRpdklkIHx8ICdtYXAnO1xyXG4gICAgb3B0aW9ucy5jZW50ZXIgPSBvcHRpb25zLmNlbnRlciB8fCB7eDogLTEwMDE4Mzc4LCB5OiA1NTc0OTEwfTtcclxuICAgIG9wdGlvbnMuem9vbSA9IHR5cGVvZiBvcHRpb25zLnpvb20gPT0gJ251bWJlcicgPyBvcHRpb25zLnpvb20gOiA3O1xyXG4gICAgb3B0aW9ucy5iYXNlU3dpdGNoZXIgPSB0eXBlb2Ygb3B0aW9ucy5iYXNlU3dpdGNoZXIgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5iYXNlU3dpdGNoZXIgOiB0cnVlO1xyXG4gICAgb3B0aW9ucy5mdWxsU2NyZWVuID0gdHlwZW9mIG9wdGlvbnMuZnVsbFNjcmVlbiA9PSAnYm9vbGVhbicgPyBvcHRpb25zLmZ1bGxTY3JlZW4gOiBmYWxzZTtcclxuXHJcblxyXG4gICAgbGV0ICRtYXBEaXYgPSAkKCcjJyArIG9wdGlvbnMuZGl2SWQpO1xyXG4gICAgJG1hcERpdi5jc3MoJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XHJcblxyXG4gICAgbGV0IG9zbUxheWVyID0gbmV3IG9sLmxheWVyLlRpbGUoe3NvdXJjZTogbmV3IG9sLnNvdXJjZS5PU00oKX0pO1xyXG4gICAgLy8gbGV0IHNhdExheWVyID0gbmV3IG9sLmxheWVyLlRpbGUoe3Zpc2libGU6IGZhbHNlLCBzb3VyY2U6IG5ldyBvbC5zb3VyY2UuTWFwUXVlc3Qoe2xheWVyOiAnc2F0J30pfSk7XHJcblxyXG4gICAgbGV0IG9zbUNzcyA9IFwidXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURBQUFBQXdDQU1BQUFCZzNBbTFBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFNQVVFeFVSUUFBQURRMU5EazVPVVJGUkV0TFMxRkhTRmxaV0dKUlZHSmlZV2RtWld4c2JIUm1hWEJwYW5OMGMzVjBkSHA1ZVg1K2ZJVnpkNEYzZWVWMGp1ZDVqdVo4azRhSGhvbUhob3lHaDVlR2o1T1ZsSmlWbFppWWw1cVptSnlkbktPVGxhS1ptcUtkbmFPaW9hcXFxS3V6c2JPdnJyU3lzTGEzdGJXNHVMbTZ1YjI3dWIrL3ZiR1h3YkNad2JDZ3hMS2x4ck9xeUxTdHliTzN5clN4eXJXenpiVzJ5N2ExemJLNHk3VzZ6Ylc4eTc2MHlyVEF6YlRGenJQS3pyTE96clRKenJUT3pyN0N3YlhDMExYSzBMVE8wTDNJMGJQUXo3VFF6N1BTMGJYUTBMblIwYnJXMWJ6VDByN1UwNzdWMUx6YzJkcU5xdGVVc2R5WHNjYXF1dU9IbmVhR211ZUhuT2VKbnVpQmxlaUtuK2VOb09pT29PV1VwT2lSbytpU3BlaVVwZXFZcHVtYXFPbWRyUFN5bmVtZ3J1U3F0T21pc09tbHN1dXF0ZXF1dU9XMXZPdXh1K3V4dk9xMXZlK3h2UEswcHZXM28vVzVwZk81cXZTN3FmQ3d2TU91d2MyL3dOZW54Tnl5ek5lLzBOcTMxTnE1MWR5NzJPeTN3T3U0d091K3hleTR3Tys2eE8yK3hmVEFyL1RDc3ZmRnRQSEx2dlRKdU1QRHdNZkh4Y1hLeWMzRHhNdkZ5TXZMeU0zUHpjRFYwOERWMU1UWDFjYlkxczdYMXNqWjFzcmEyTW5kM003YjJjN2MydGZIMXRuQjF0N0YyZDdNMjlmWDF0TFkxdERkMnRIZTNOVGYzTm5TMTlyWjF0dmEyTm5mM3QzZDI4cmgzdFhnM05uaDN0emozOTNrMzluaTRON2s0TjduNXVYRHlPZkx6K3pBeHUzQ3lPekV5ZXpLemVESjNlTE0zdXZQMHUzUDBlUGYyKzdSMHU3UTF1L1UwKzdVMWV6YzArN2EyZS9kMiszZjN2YkZ6dkxPd2ZITjBQUFF3L1RVeC9MV3l2TFl6UERRMWZQZTB1YmM0dnZlNHVIaDMrbmgzKy9oMnUvaDN2SGoydkhsM3VIbTRlVG40dURwNWVibzQrWG81T0RxNmVicTZPVHY2K25sNCsvajRPN2w0ZTduNXVqcDQrbnA1T3pxNWU3czV1cnQ2Tzd0Nk9ydzZ1N3g2dTN4N3ZQajVQRGw0ZkRvNHZEcTVmRHQ1dkR1NlBEdjdQVHY2ZkR4NnZIeDdmSDE3Zlh3NmZYeTdmYjA3L2J6OGZUMTh2bjM4dnIzOWZyNDgvcjU5UHI2K1AzKysvLysvZ0FBQUxOVFNrMEFBQUVBZEZKT1UvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vd0JUOXdjbEFBQUFDWEJJV1hNQUFBN0RBQUFPd3dISGI2aGtBQUFBR0hSRldIUlRiMlowZDJGeVpRQndZV2x1ZEM1dVpYUWdOQzR3TGpsc00zNU9BQUFGTkVsRVFWUklTMVZWQ1p4VlV4aS85bDBVSVVUMmJNblk0M2JWSTJjMFkwMWtTV0lhUzBqMkpFdGtONDFwaW9tWnJQUEtRMmFRN0pLSW1PWmxubTI0OTNUSnpEdWZ1VTFaaSt2L2ZlZSttWi8vNzkzdm5QT2Q3enZmZXM1ekRCRVprQkJqQWNJamIrSWlvdHFnZGhhdDhBTUswdmw3L1I5TjdHaVd0c2hxSXIrRVo1Z1lLaWJ5VXNYWTFsL21mRnBzc3ZVbFdRMEZrVTNneTQrUkIvK2t3WWNPOHBSU25sZGNPVS9yMmxBSEFSU3drMk9SZ0VtT2RDMUVzdVJpWVNxTVB3d3JvTUlyYVprNVYyZllKUWpDS2ZaclJtaDNnU0FaaTJpNGI3d1N5bFd1OEVxWndTNTlKa0ZVYVc5NkpiTlNjK0NFVW10NHJvcnd1Wm1XZERhb2MrdVpFVHVRbFRDVTV4WXpSN211VW5WVVZvK0JjUmhyZS9Wd1VwYXNnSndoSDdKa1lJWUEwc054aG1Dd1VLK2x3NnZDS0JaZWh3MDFkRWl5dzRRNGFFMFo0YWhEaEthRlFzR25KMkJncUtvVEJzTmpGeTBTbFc2d2hSQVpUZG04REJKbWtCWmhEaTFqNHhKUUJrNnl3cldVVHltYUN4YWM4bFJPY2RhdVJHelFTTnRBN0VIVVloWHlFd2hoZ2pGVXFSdU8rcmF1aEYxYXdGcHpDc213VWJqSUZCUjB1MWJLdHlHcHVsVy9IL2NWVnpreUdhSVdUSVI5cEZBVjZHSzJnUE1YTVg4Z1BrOXp6eFhnSTFraW1jQWx0RVlyK2NqaW8xaW1sS3BFYTlyT2lwTG0rcCtDWjZCdy8vcWQxL2YvTytHd014YlNMcHlvWkVjd2t5aDJqSWtzKzNobWRkMmpXVXc0c2N4Tnlzbkh4VTduU3NwVFJjSmpDWkdMM0lzanNZSk1NZzVtd2d4N2dhSU9MQkZDb2dBZ0JCb05hOXcrREU2SStCczdGVGd3d3JKYkhqV0RncFlvMkt3dEJUY1lFRHVsb0M5Z2VRdytrMlJHblBHcFRhT2xxN0FTK1lJQ1V6NERaVmFYMlRpTkRodVlmVHRZNGdlTGkwSW9DbTNYY2N3TTloeDRrVTI4U3RRRWxqRHMzWkVwRkdBKzhkS3pMbVY5eW1Jd0Y1Rk9HbjJHZEpNOEtMSERKYlh5aVlWTUc5TVJUTGlYR0dnMlFLYXhNM2toUFNScndNOXpFSWFyZHhVMncvRWlBMGdPZVlLSHpEUjBWNy9RR1YzbEtJQTlrdHJEQXJ4TzNnZEErazZTS29CaVZ3Y203TmpaYjkrSG56dGcyODJUdUhWWjlMT0lTRk50OU1neUNldFpWY3pTeG55RGJsMTdQZW5xNm1xcGcxSWhSYUVPMmFWTFVPNC9yMTdIOHRUdjZmMTNoNzFkZHV2WkkzWSt1TWRXa3NOU2F1TG92Snc1aHNxaVBJVXZ0MGt1Ny9pQmVVUjNza3Ntb21ZV3RSYkFqYmlMZnYybFg5L1Y3TFZHNHVZblVaWGhRN2YyT1BDWkV4OXdyWVdUY2VQRVFxUEVNTDhwbDRtTWRyL2psWGx2SGlSaUoyK01TVEZZNFRUU1lTdHV2ejJSL0pYaCtQUGVHWG0wNTVKKzMvWURXdU51M1IzREFyUHV0eWcwWmd5a01WRFU5TmRtMjIrd1lhbHIycnNlNDhDbnNUSUZjTW43M3ZmaE5ya3R4MUVVY1puUHY2YWgzWXk1Y0RUUmRCRW9Hb0JlYWg3MWRxRnlqWkRKTGtXazNOM3Y0dXVrdHNzaldwemNpTVB4UWVIajhuTUt6Y0d1QjB0QXl6RmhkQ0tPWVd2NEh3T1FWd0l4TEc5OWE2dXZIM3NKQ3lPM2grazRFWitHNyt4ajVmNFhYa3NvYUdyZE1SelNjOEFSQTgrY2RPdWsyeDZmZmZOTnQ1eCtSbzFvbVBsclQvQ1FEbGNObHB4NE5CSVdYaGt4N1kzWnAzb2ZOUjdVdjg5T20vYmVXMFRMSXluSHYzdnMxVnNPRnBTV1NYdmZ1UFVmOUJyUkZ5eGdYZEhvS0puUUZlZ1BPb3Z2eno1OW50cnp5ZTI0MGlnOFVRM2xESTJWcXdhZ3JLSVFjTFhORkwzd2dsTjJPSGRCUTYvdkkza0VORFZCd1JiM2sxWHRjekZialduNEV6TVlpN0NGMzEyOStKVFl1UlNkckd1UzkyZzVkcHFuNnFYb0pRczV4bUw4cCtXdDRoTGJ0MG14Mk9MTlpSMmJiUHk4ekpOUUdGTS9mL0NmWFpla1JZRmpHQ1dqSUpwTStXaUN6R0JQV0hob3lhQXNqUlQvQjJHeTV5ellKa3dVQUFBQUFFbEZUa1N1UW1DQycpXCI7XHJcbiAgICBsZXQgYWVyaWFsQ3NzID0gXCJ1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBREFBQUFBd0NBTUFBQUJnM0FtMUFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQU1BVUV4VVJRQUxCZ0lNRFFnT0J3UU9FUWNUQndVU0N3b1ZEQXdkQnc4WkRnVVJFd1lVR0FZWkZRWVpHZ2tURlFvVkdRc1pGQXdaSEJNZURoSWJGQkViSEF3V0lBNGJJUkVjSVE0aENRd2pGdzRsSEJna0RCOHNEeFVpRXhJaUdoQW9HeG9oRlJzaEdSb3JIUWNyS1FzaUlRd21LZ29vSkEwcEtRODFKdzh5TFJNaUl4SW1LeFVySlJFdUtoc2xKQjBySWhvb0tSVXVNQk15TGhrd0pob3pLaDQ4THhVek1STTlNQnd6TWlVdkZDTXRHaU13RWl3ekZDZ3pIREkrR1NJc0lTa3ZKU1F4SWlNMkxpWTVKaWMrTHlrMEpTbzBLeTQ5SlNzOUtTVTFOU003TkNzMk5TOCtORE0xSnpVOUxqZzdJREpDSFMxRExTTkFNaXRDTVN4SU9qUkVJVFpMSURaSktEbEZJanBGS3p0S0pUMUxLekpCTXpwSE1EMUpNanBLUEQxUktqbFFOQzFEUWo1UVFFQThNRUpHSmtCS0pVSk5LMGxMTEVKTU1rVk1QRXBPTkVOU0xVZFpMMHBUTGtwYUxrUlVNa1JTUEVWWk1rdFVNMHBWT2tsWk1rbFpORXBjTlUxWk1rMVpOVXhmTWs1ZE5reGNPVkZVTTFSVU9GSmJOVkZaT1ZOWVBWRmRPVkpkUEZWYU9WVmFQVlZkT2xWZFBWcGFObHBkTzBwaE4wMWhPbEJpTjFOaFBGTm9QMXBpUFdGYlBtUmpQRU5PUUV0UFNVUlRRa0pWUzB4VlFrMVZTa3hiUWt4Y1MwaGVVVkZYUkZSY1FsSmZURnhlUWxwZVMwNWxRazFrU0ZSalFWUmpTbFpwUTF0a1FseGxTbHhwUkYxclNWVm5VVnRsVTFsbFhGOXRVMXhvWGx4d1NsOXJhbVJmUW1KbFEyRmhTV0ZsU1dGbFRtVmxTV1JtVEdGb1FXRnBSV0ZzUm1WcFJXVnRSbU5zU210bFJHcHFSbXBzUzJCbVdHUnNVbUZyVzJwdFVtWnlSMlJ4VEdweFRXVnlVMlJ5VzJkNVYydHpVbXQwV1cxNVZHMTVXWEZ1VEhOdFZuRnhUWEY0VDNoMFRuSnpVbkoxWEhKNFZYTjZXbnAwVkh4MVczMTVWWHA4WEdSMFlHeDBZSFZ6WlhKMGFIUjlaWFYrYUhsOVlIT0NYWHFCWFhlQ1lIeUNZM2lFYUh5SVluK0phWHFLY1lCNVdJTjZZNFNDWG9DRFpJR0VhWUNJWm9PTGE0aUNhSW1KYklPT2RZdU1jbzZPZUl1VmNwT0tiWktQYzVhUWI1ZVhlNXVmZzZLamhBQUFBQUFBQUFBQUFBQUFBT0dDZVFnQUFBRUFkRkpPVS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy93QlQ5d2NsQUFBQUNYQklXWE1BQUE3REFBQU93d0hIYjZoa0FBQUFHSFJGV0hSVGIyWjBkMkZ5WlFCd1lXbHVkQzV1WlhRZ05DNHdMamxzTTM1T0FBQUg4MGxFUVZSSVN5MVdiWFFVVnhtKzZ3cW5rM1ptcHhsMkZHMkVHZzkyQzhHRGxXcHRWVHdhK3VGM3hjS21EZkZ6Q1V6RHNKTnN1blhpcGdsSlhKYnJ0Sldtd1pOU25IRDNqb2pSZ1VJbTJVdW1JWjBKWjdKQnlyQUxiTVdXMElCVzhhUmE0K2NmNzZUZVgzTm0zdWMrei9zKzcvdnVnbDRyL2FNVHJUNGUxcFBUcW5ubUpObjVBeVV6Um5yUmxlL3FFMzNkc3ZyQnRBUVZveHRwWk5LM3pTellqVWp2aVdPMkFnK1I3N2RsN1czNm4vMUVwOUtCUEcvUytQeTBQa2pVL2dQS1FHcXdUSHJ5aVdZRkFYU3ZNYWlyc2lvN1NqeU5zbkN6aDBxS0ltVjkvN21oZkhRWngyeU4xTys3clhVbTMzTVVQYWJvT2tBSkhhb0lkWGZKajJ4V2V5RDhqTUZFWGt2SXU1cXpwVTk4OGdXQjV6bCtHUytzRmU1NXRyRVZQZFdaQjJtaXE4YkJWa05GTzJSMHFucmZraVhoY0podEROWEU2dGJXOTcvczlPOS83WmZWaHg4Ni9Dd3JST3BmdnZ4Ym9NcWVMc3VxUHIxajQ0cUV3RE5NT0J4aW1VaVlvVThzdzdCQy9hN1Q3MnVFbnlKRGxHeFo5S2NnbFpSeXVxcXJ2L3RTWkVyZ09JNE5nUkJUSXc5RW1IQW9GR1pabnA2YUdhSjJHVHhmeFlzOGtLVlVRaDdXQjVoUWVDM0xzVXhveFZLVzE0bDNCWDJXY29VWVBpWnlMTGU4dGVaK2l1VDRHR2h2VjVLcEtXa3B5enhFcjJNWmdRMXhkUmpmUkJvSCsyazZsSUhqS1RIUFBCbzhDU0pJU3FxcTR3R0dPY1d5bElHbGd2Z05YMUdkOHZGNWYrSVVJd2IzMG5nK0dnMlFmQlJJTXZ5MGpHOFNWa1lvNE4wenZVWFZSenRiSi9MNnhMN2xVWkVYQkVIa3VacWxTNmdFQVVnS0p1cm5oRnRmcEFDT1lkOGIvaFZiSlBxd2k0NGE2S0Ewc1BWaklpL1NJeXhiM3U4S2xBSjBTOGpSVmdybFcrblZIUGRyaGlYQ3h1NDJkODZCeWtzRGM4MFAzTWtKRkJGUThIbzFsUWVncFdKUldGR3NEc1J3d3Y3cEl5dnVRVzBaa3JYNk5EVkZicWN2YVFJOHZieXF6dDVBQVJyc2JLeDV5aFFFR3Mrd1BPNTZiT0srMHJjd01yT0trcFViWldZeFYwNFVlWlp2L2NCS0ZoUkw2UWR2OXk0TGZFREE3L3RoZzd0VG12MWE1L0duTzB3bDBkUWc4MHdnbFphSFVteFJ2andBSE9meU4wbXhycHFMVXBjanNLM05IWU1vNFIxbzZlaG8yWnlJYjJGb2VPQzNJTEs4a1oySFFNT3VXeXdHWFVrSkJDZVRiWUZTMCt5bTFoMi82VWdtdm5ydktZWlp0SUVYR2Y3NUMyY0lBcDVMSE5kNzF4N3VQb1RqYWtyV0g5ZTNLRnBhYXRqVXZKVXlzRncwS3JMTVlNVzJsVGc0UGVVUXg2a0pFQUx2eFhFbUNkVnlQTEh0Q1NqQmhjMDFYQ2pJZ2FmeG91K1BFNktDMWRoeFNDd29CQ2MrTjRQM2J0TTg0cG1kU1NqSm5qTy9udlk0TFFmVnl6NS9JK3Y2SXdqVU9NankrTVZDeEliS3VwVEphRWt0cDdjVEtVNDJQdmpoMm0vOGNTcEM2YVBzYVgvTUhTdVVRTFZWc0lhNFJVVHMvci9CVkFleE5kamRuc05HN2ovclY5M3hoZUxNektuRnJQZVRFUWNoQ3lDY0tiMjVhQUluN2xyQWVydHJad3lOWE04TjZ6ZldyRm8zZDJTbU9FY0Y4M3gvcitPT0ZnckFIWVdGN2NFTGpoVjdVUW8vNldBSVVWbDlKRmw4YS8vSFo2NlZwYlkzSTlRS1pxUHJ1NzdsQStpT1dBSXIwaEt4SENtbXIwb3RoU3llSWw1eTNxdDR4VDhnU05yS0Vab3pzOEVsczY3cmdzTE9aK3lnendNZmJ0TmhvYmZnenBFeUduejdodFB0elVpNlB1T29qN0swV0YvTVhpVUZ4d0dhalJEMWhqWVhIWEk5cDQwNnFPeWlucDUvdGlXY0RIWTBqSXU0bjY0UWZxN2tsaUIyZ2VtYWc5UWJPaWEwUGJiRE1iZDQzU0h1dnhGeHJBb2N4aW5zN01YNUtxYmUxUWl4S0J4b1Y0Ly9QZkFnR0N1K1JsbTRTdlppenlESCswcmVESHA5MmlPMEJ1WDNiQ2ZJdGwwUEV3dllMcXB3WEcyTUhsR3NRNFM4cE1KWnYxSkdtSGlFb0hRRGRPandtVmxFUC9uRTlBREtqSTh4TEkwT09HSVRmeTBTYmVHL0MyaktVREdTbERoTTlJM0lwSzlpdXA2WG5iUk5DN3lxdWVOc0pDQ0lpWHpkUWhuYUdOKzQ2dW1uRWR5NVU1VWJVSjQ4TEZNOUdrSm84QmRET2lBWjdaSVFiS2hZTE1xdmhVMndtTnhqRUFzUzJBSTd5NG5XRjY0ZHVlUGJrN1lWM3p2QVZMRU1EOUF4SlJOYTNLRFVpYlY3RGpua3Vwck1FWWpTY0ZOY2FSMmNlUDJ1OVIvNWsxMDUyUnltZTVwaEFGUnN3bEhqQXVkaVA0ZE95N0NheExnZEpoOXZVbFUxNzAyLytMUGExVTlmdlBpOXFsQTRYRVVCSmMzZEZscHNSNDU3SURsMWlQcUxwN284MU5RZ3lWMTlpWVUzOHVUaXY5NzVQZDNTaXdRY3NHangrdjQvNmZsNVQ3RU9PTVRDdHBiS3hmZW1zUXEvM29sUVpjbWluQURBQUkwY3VHTEhhSE9GeGJ1R3ZSay9aOXU3Q1VMcW9WUjZORTB5eDFhdmozMG9SaGMvaldVb0lBTEd4a3owZGcxRGw5aWFJN0xxT09YS3NYSkZ3aml1RUFpNzBKcmEyblcxUEwwOHpMQmhac01BQnBXNWNzSTdUUGZldzlpcEZLY241azFpKzFLeUNXS2pDM1cvOGRGMWQ2NjYrUmFhYkJWVEZUSGFjam9vakJORGgwTkR4aytJUFRsd2ZxSmtXcGJucEZIWEliTGJtcHhFUTNmZi9aMGcvbWF1WHNvbG45d0RSankvTkhzUUZ3M1A2dld1VEo0My8rRlpyazJjdkFGUmlwQ0tkZkQ5eTIrcGpSajc4czBLZENVREtKdmRWOTFDaG5nVjM4VDIwVE0rZ2doanBKYVBscEZyMnhiRXo1ZzRBL05HdDVyTndkd21ZR2VlZU1YQlNMSEhVSWMrNlJzb2pSSDlWVFVtMy9tTGYvNjRiNDcwWHZveG9US2hsTUJRMmpNRXpvMlBqeGRHTXBwbW4xUk0yNGJXRkpxYVF2NEJjdUphMlNhbTdab2txMWxkQ3N6MDZOQ0JIcmh3cVZRWXBmRmo0Mk5aZXh6MUVXOVNSL2tUNThuRWVRS0piMmZQWGpqcDB1L1lVa3dIRWdMZU9uZjJuT3VmMVRSVE0wMkNMS0xUUHk2MC94MUNDenRxbjdFditCZHNDM20rMzBkZWNRdlcvd0JOVHdVK0NmVVFBUUFBQUFCSlJVNUVya0pnZ2c9PScpXCI7XHJcblxyXG4gICAgaWYgKG9wdGlvbnMuYmFzZVN3aXRjaGVyKSB7XHJcbiAgICAgICAgLy8gIGxldCBzd2l0Y2hlckNvbnRlbnQgPSAnPGRpdiBjbGFzcz1cImJhc2UtbWFwLXN3aXRjaGVyXCIgdGl0bGU9XCJUb2dnbGUgQmFzZSBMYXllclwiIHN0eWxlPVwiJztcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9ICdwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNzBweDsgbGVmdDogNHB4OyBib3JkZXI6IHNvbGlkIGJsYWNrIDFweDsgJztcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9IGBoZWlnaHQ6IDUwcHg7IHdpZHRoOiA1MHB4OyB6LWluZGV4OiAxMDsgYm9yZGVyLXJhZGl1czogNHB4OyBiYWNrZ3JvdW5kOiAke2FlcmlhbENzc307YDtcclxuICAgICAgICAvLyAgc3dpdGNoZXJDb250ZW50ICs9ICdcIj48L2Rpdj4nO1xyXG4gICAgICAgIC8vICAkbWFwRGl2LmFwcGVuZChzd2l0Y2hlckNvbnRlbnQpO1xyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gJG1hcERpdi5maW5kKCcuYmFzZS1tYXAtc3dpdGNoZXInKS5jbGljayhmdW5jdGlvbigpIHtcclxuICAgICAgICAvLyAgICAgIFwidXNlIHN0cmljdFwiO1xyXG4gICAgICAgIC8vICAgICAgb3NtTGF5ZXIuc2V0VmlzaWJsZSghb3NtTGF5ZXIuZ2V0VmlzaWJsZSgpKTtcclxuICAgICAgICAvLyAgICAgIHNhdExheWVyLnNldFZpc2libGUoIXNhdExheWVyLmdldFZpc2libGUoKSk7XHJcbiAgICAgICAgLy9cclxuICAgICAgICAvLyAgICAgIGlmIChvc21MYXllci5nZXRWaXNpYmxlKCkpe1xyXG4gICAgICAgIC8vICAgICAgICAgICQodGhpcykuY3NzKCdiYWNrZ3JvdW5kJywgYWVyaWFsQ3NzKTtcclxuICAgICAgICAvLyAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgJCh0aGlzKS5jc3MoJ2JhY2tncm91bmQnLCBvc21Dc3MpO1xyXG4gICAgICAgIC8vICAgICAgfVxyXG4gICAgICAgIC8vICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0aW9ucy56b29tIDwgMCB8fCBvcHRpb25zLnpvb20gPiAyOCkge1xyXG4gICAgICAgIHRocm93ICd6b29tIG91dCBvZiByYW5nZSc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9wdGlvbnMuY2VudGVyLnggPj0gLTE4MCAmJiBvcHRpb25zLmNlbnRlci54IDw9IDE4MCAmJiBvcHRpb25zLmNlbnRlci55ID49IC05MCAmJiBvcHRpb25zLmNlbnRlci55IDw9IDkwKSB7XHJcbiAgICAgICAgbGV0IHAgPSBuZXcgb2wuZ2VvbS5Qb2ludChbb3B0aW9ucy5jZW50ZXIueCwgb3B0aW9ucy5jZW50ZXIueV0pO1xyXG4gICAgICAgIG5ldyBvbC5wcm9qLlByb2plY3Rpb24oe2NvZGU6IFwiRVBTRzo0MzI2XCJ9KTtcclxuXHJcbiAgICAgICAgcC50cmFuc2Zvcm0obmV3IG9sLnByb2ouUHJvamVjdGlvbih7Y29kZTogXCJFUFNHOjQzMjZcIn0pLCBuZXcgb2wucHJvai5Qcm9qZWN0aW9uKHtjb2RlOiBcIkVQU0c6Mzg1N1wifSkpO1xyXG4gICAgICAgIGxldCBjb29yZGluYXRlcyA9IHAuZ2V0Q29vcmRpbmF0ZXMoKTtcclxuICAgICAgICBvcHRpb25zLmNlbnRlci54ID0gY29vcmRpbmF0ZXNbMF07XHJcbiAgICAgICAgb3B0aW9ucy5jZW50ZXIueSA9IGNvb3JkaW5hdGVzWzFdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xzID0gb2wuY29udHJvbC5kZWZhdWx0cyh7XHJcbiAgICAgICAgICAgIGF0dHJpYnV0aW9uT3B0aW9uczoge2NvbGxhcHNpYmxlOiBmYWxzZX1cclxuICAgICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IHZpZXcgPSBuZXcgb2wuVmlldyh7XHJcbiAgICAgICAgY2VudGVyOiBbb3B0aW9ucy5jZW50ZXIueCwgb3B0aW9ucy5jZW50ZXIueV0sXHJcbiAgICAgICAgem9vbTogb3B0aW9ucy56b29tLFxyXG4gICAgICAgIG1pblpvb206IG9wdGlvbnMubWluWm9vbSxcclxuICAgICAgICBtYXhab29tOiBvcHRpb25zLm1heFpvb21cclxuICAgIH0pO1xyXG5cclxuICAgIGxldCBtYXAgPSBuZXcgb2wuTWFwKHtcclxuICAgICAgICBsYXllcnM6IFtvc21MYXllcl0sXHJcbiAgICAgICAgdGFyZ2V0OiBvcHRpb25zLmRpdklkLFxyXG4gICAgICAgIGNvbnRyb2xzOiBjb250cm9scyxcclxuICAgICAgICB2aWV3OiB2aWV3XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAob3B0aW9ucy5mdWxsU2NyZWVuKSB7XHJcbiAgICAgICAgbWFwLmFkZENvbnRyb2wobmV3IG9sLmNvbnRyb2wuRnVsbFNjcmVlbih7fSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtYXA7XHJcbn1cclxuXHJcbm5tLnF1aWNrTWFwQmFzZSA9IHF1aWNrTWFwQmFzZTtcclxuZXhwb3J0IGRlZmF1bHQgcXVpY2tNYXBCYXNlO1xyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/quickMapBase.ts\n// module id = 13\n// module chunks = 0 1 2 3","/**\r\n * Created by gavorhes on 12/14/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"../util/provide\");\r\nvar nm = provide_1.default('olHelpers.zoomResolutionConvert');\r\nvar _zoomResLookup = [\r\n 156543.03392804097,\r\n 78271.51696402048,\r\n 39135.75848201024,\r\n 19567.87924100512,\r\n 9783.93962050256,\r\n 4891.96981025128,\r\n 2445.98490512564,\r\n 1222.99245256282,\r\n 611.49622628141,\r\n 305.748113140705,\r\n 152.8740565703525,\r\n 76.43702828517625,\r\n 38.21851414258813,\r\n 19.109257071294063,\r\n 9.554628535647032,\r\n 4.777314267823516,\r\n 2.388657133911758,\r\n 1.194328566955879,\r\n 0.5971642834779395,\r\n 0.29858214173896974,\r\n 0.14929107086948487,\r\n 0.07464553543474244,\r\n 0.03732276771737122,\r\n 0.01866138385868561,\r\n 0.009330691929342804,\r\n 0.004665345964671402,\r\n 0.002332672982335701,\r\n 0.0011663364911678506,\r\n 0.0005831682455839253 //28\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\nfunction zoomToResolution(zoomLevel) {\r\n \"use strict\";\r\n if (typeof zoomLevel == 'number') {\r\n if (zoomLevel % 1 === 0 && zoomLevel >= 0 && zoomLevel <= 28) {\r\n return _zoomResLookup[zoomLevel];\r\n }\r\n else {\r\n console.log(\"invalid zoom level provided: \" + zoomLevel);\r\n return undefined;\r\n }\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\nexports.zoomToResolution = zoomToResolution;\r\nnm.zoomToResolution = zoomToResolution;\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\nfunction resolutionToZoom(resolution) {\r\n for (var i = 0; i < _zoomResLookup.length; i++) {\r\n if (resolution >= _zoomResLookup[i]) {\r\n return i;\r\n }\r\n }\r\n return 0;\r\n}\r\nexports.resolutionToZoom = resolutionToZoom;\r\nnm.resolutionToZoom = resolutionToZoom;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbVJlc29sdXRpb25Db252ZXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiem9vbVJlc29sdXRpb25Db252ZXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOzs7QUFFSCwyQ0FBc0M7QUFDdEMsSUFBTSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBRXRELElBQUksY0FBYyxHQUFHO0lBQ2pCLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLHFCQUFxQjtJQUNyQixxQkFBcUIsQ0FBQyxJQUFJO0NBQzdCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsMEJBQWlDLFNBQVM7SUFDdEMsWUFBWSxDQUFDO0lBRWIsRUFBRSxDQUFDLENBQUMsT0FBTyxTQUFTLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMvQixFQUFFLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLElBQUksQ0FBQyxJQUFJLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNELE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBZ0MsU0FBVyxDQUFDLENBQUM7WUFFekQsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNyQixDQUFDO0lBQ0wsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUNyQixDQUFDO0FBQ0wsQ0FBQztBQWRELDRDQWNDO0FBQ0QsRUFBRSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0FBR3ZDOzs7O0dBSUc7QUFDSCwwQkFBaUMsVUFBVTtJQUN2QyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUMsQ0FBQztRQUM1QyxFQUFFLENBQUMsQ0FBQyxVQUFVLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUEsQ0FBQztZQUNsQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2IsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ2IsQ0FBQztBQVJELDRDQVFDO0FBRUQsRUFBRSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTQvMjAxNS5cclxuICovXHJcblxyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycy56b29tUmVzb2x1dGlvbkNvbnZlcnQnKTtcclxuXHJcbmxldCBfem9vbVJlc0xvb2t1cCA9IFtcclxuICAgIDE1NjU0My4wMzM5MjgwNDA5NywgLy8wXHJcbiAgICA3ODI3MS41MTY5NjQwMjA0OCwgLy8xXHJcbiAgICAzOTEzNS43NTg0ODIwMTAyNCwgLy8yXHJcbiAgICAxOTU2Ny44NzkyNDEwMDUxMiwgLy8zXHJcbiAgICA5NzgzLjkzOTYyMDUwMjU2LCAvLzRcclxuICAgIDQ4OTEuOTY5ODEwMjUxMjgsIC8vNVxyXG4gICAgMjQ0NS45ODQ5MDUxMjU2NCwgLy82XHJcbiAgICAxMjIyLjk5MjQ1MjU2MjgyLCAvLzdcclxuICAgIDYxMS40OTYyMjYyODE0MSwgLy84XHJcbiAgICAzMDUuNzQ4MTEzMTQwNzA1LCAvLzlcclxuICAgIDE1Mi44NzQwNTY1NzAzNTI1LCAvLzEwXHJcbiAgICA3Ni40MzcwMjgyODUxNzYyNSwgLy8xMVxyXG4gICAgMzguMjE4NTE0MTQyNTg4MTMsIC8vMTJcclxuICAgIDE5LjEwOTI1NzA3MTI5NDA2MywgLy8xM1xyXG4gICAgOS41NTQ2Mjg1MzU2NDcwMzIsIC8vMTRcclxuICAgIDQuNzc3MzE0MjY3ODIzNTE2LCAvLzE1XHJcbiAgICAyLjM4ODY1NzEzMzkxMTc1OCwgLy8xNlxyXG4gICAgMS4xOTQzMjg1NjY5NTU4NzksIC8vMTdcclxuICAgIDAuNTk3MTY0MjgzNDc3OTM5NSwgLy8xOFxyXG4gICAgMC4yOTg1ODIxNDE3Mzg5Njk3NCwgLy8xOVxyXG4gICAgMC4xNDkyOTEwNzA4Njk0ODQ4NywgLy8yMFxyXG4gICAgMC4wNzQ2NDU1MzU0MzQ3NDI0NCwgLy8yMVxyXG4gICAgMC4wMzczMjI3Njc3MTczNzEyMiwgLy8yMlxyXG4gICAgMC4wMTg2NjEzODM4NTg2ODU2MSwgLy8yM1xyXG4gICAgMC4wMDkzMzA2OTE5MjkzNDI4MDQsIC8vMjRcclxuICAgIDAuMDA0NjY1MzQ1OTY0NjcxNDAyLCAvLzI1XHJcbiAgICAwLjAwMjMzMjY3Mjk4MjMzNTcwMSwgLy8yNlxyXG4gICAgMC4wMDExNjYzMzY0OTExNjc4NTA2LCAvLzI3XHJcbiAgICAwLjAwMDU4MzE2ODI0NTU4MzkyNTMgLy8yOFxyXG5dO1xyXG5cclxuLyoqXHJcbiAqIEdldCB0aGUgcmVzb2x1dGlvbiBnaXZlbiB0aGUgem9vbSBsZXZlbFxyXG4gKiBAcGFyYW0ge251bWJlcn0gem9vbUxldmVsIC0gdGhlIHpvb20gbGV2ZWxcclxuICogQHJldHVybnMge251bWJlcnwqfSB0aGUgbWFwIHJlc29sdXRpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB6b29tVG9SZXNvbHV0aW9uKHpvb21MZXZlbCkge1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB6b29tTGV2ZWwgPT0gJ251bWJlcicpIHtcclxuICAgICAgICBpZiAoem9vbUxldmVsICUgMSA9PT0gMCAmJiB6b29tTGV2ZWwgPj0gMCAmJiB6b29tTGV2ZWwgPD0gMjgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIF96b29tUmVzTG9va3VwW3pvb21MZXZlbF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYGludmFsaWQgem9vbSBsZXZlbCBwcm92aWRlZDogJHt6b29tTGV2ZWx9YCk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxufVxyXG5ubS56b29tVG9SZXNvbHV0aW9uID0gem9vbVRvUmVzb2x1dGlvbjtcclxuXHJcblxyXG4vKipcclxuICogR2V0IHJlc29sdXRpb24gZnJvbSB0aGUgem9vbSBsZXZlbFxyXG4gKiBAcGFyYW0ge251bWJlcn0gcmVzb2x1dGlvbiAtIHRoZSByZXNvbHV0aW9uXHJcbiAqIEByZXR1cm5zIHtudW1iZXJ8Kn0gdGhlIHpvb20gbGV2ZWxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZXNvbHV0aW9uVG9ab29tKHJlc29sdXRpb24pe1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBfem9vbVJlc0xvb2t1cC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgaWYgKHJlc29sdXRpb24gPj0gX3pvb21SZXNMb29rdXBbaV0gKXtcclxuICAgICAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAwO1xyXG59XHJcblxyXG5ubS5yZXNvbHV0aW9uVG9ab29tID0gcmVzb2x1dGlvblRvWm9vbTtcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/zoomResolutionConvert.ts\n// module id = 14\n// module chunks = 0 1 2 3","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Created by gavorhes on 1/4/2016.\r\n */\r\nvar provide_1 = require(\"../util/provide\");\r\nvar ol = require(\"custom-ol\");\r\nvar nm = provide_1.default('olHelpers.esriToOlStyle');\r\n/**\r\n * This callback is displayed as part of the Requester class.\r\n * @callback styleFunc\r\n * @param {ol.Feature} feat - openlayers feature\r\n * @param {number} resolution - map resolution\r\n */\r\n/**\r\n *\r\n * @param {Array<number>} colorArray - input color array\r\n * @param {number} opacity - the opacity 0 to 1\r\n * @returns {string} rgba string\r\n * @private\r\n */\r\nfunction _colorArrayToRgba(colorArray, opacity) {\r\n \"use strict\";\r\n return \"rgba(\" + colorArray[0] + \",\" + colorArray[1] + \",\" + colorArray[2] + \",\" + opacity + \")\";\r\n}\r\n/**\r\n * escape html charcters\r\n * @param {string} str - input string\r\n * @returns {string} escaped string\r\n */\r\nfunction htmlEscape(str) {\r\n return String(str)\r\n .replace(/&/g, '&')\r\n .replace(/\"/g, '"')\r\n .replace(/'/g, ''')\r\n .replace(/</g, '<')\r\n .replace(/>/g, '>');\r\n}\r\nnm.htmlEscape = htmlEscape;\r\nvar CommonSymbol = (function () {\r\n /**\r\n *\r\n * @param symbolObj\r\n * @param {number} opacity\r\n */\r\n function CommonSymbol(symbolObj, opacity) {\r\n this.symbolObj = symbolObj;\r\n this.opacity = opacity;\r\n this.olStyle = undefined;\r\n this.legendHtml = '';\r\n }\r\n return CommonSymbol;\r\n}());\r\nvar PointSymbol = (function (_super) {\r\n __extends(PointSymbol, _super);\r\n function PointSymbol(symbolObj, opacity) {\r\n var _this = _super.call(this, symbolObj, opacity) || this;\r\n switch (_this.symbolObj.type) {\r\n case 'esriSMS':\r\n var innerColor = _colorArrayToRgba(_this.symbolObj.color, _this.opacity);\r\n var outerColor = _colorArrayToRgba(_this.symbolObj.outline.color, _this.opacity);\r\n var outlineWidth = _this.symbolObj.outline.width;\r\n var radius = _this.symbolObj.size;\r\n _this.olStyle = new ol.style.Style({\r\n image: new ol.style.Circle({\r\n radius: radius,\r\n fill: new ol.style.Fill({\r\n color: innerColor\r\n }),\r\n stroke: new ol.style.Stroke({ color: outerColor, width: outlineWidth })\r\n })\r\n });\r\n _this.legendHtml = \"<span class=\\\"legend-layer-icon\\\" style=\\\"color: \" + innerColor + \"\\\">●</span>\";\r\n break;\r\n case 'esriPMS':\r\n _this.olStyle = new ol.style.Style({\r\n image: new ol.style.Icon({ src: \"data:image/png;base64,\" + _this.symbolObj['imageData'] })\r\n });\r\n _this.legendHtml = \"<img class=\\\"legend-layer-icon\\\" height=\\\"17\\\" src=\\\"data:image/png;base64,\" + _this.symbolObj['imageData'] + \"\\\">\";\r\n break;\r\n default:\r\n console.log(_this.symbolObj);\r\n alert('Point symbol does not handle symbol type: ' + _this.symbolObj['type']);\r\n }\r\n return _this;\r\n }\r\n return PointSymbol;\r\n}(CommonSymbol));\r\nvar LineSymbol = (function (_super) {\r\n __extends(LineSymbol, _super);\r\n function LineSymbol(symbolObj, opacity) {\r\n var _this = _super.call(this, symbolObj, opacity) || this;\r\n switch (_this.symbolObj.type) {\r\n case 'esriSLS':\r\n var innerColor = _colorArrayToRgba(_this.symbolObj.color, _this.opacity);\r\n var lineWidth = _this.symbolObj.width;\r\n _this.olStyle = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: innerColor,\r\n //lineDash: [4],\r\n width: lineWidth\r\n })\r\n });\r\n _this.legendHtml = \"<span class=\\\"legend-layer-icon\\\" \";\r\n _this.legendHtml += \"style=\\\"\";\r\n _this.legendHtml += \"background-color: \" + innerColor + \";\";\r\n _this.legendHtml += \"width: 40px;\";\r\n _this.legendHtml += \"height: 4px;\";\r\n _this.legendHtml += \"position: relative;\";\r\n _this.legendHtml += \"display: inline-block;\";\r\n _this.legendHtml += \"top: -1px;\";\r\n _this.legendHtml += \"\\\"></span>\";\r\n break;\r\n default:\r\n console.log(_this.symbolObj);\r\n alert('Line symbol does not handle symbol type: ' + _this.symbolObj['type']);\r\n }\r\n return _this;\r\n }\r\n return LineSymbol;\r\n}(CommonSymbol));\r\nvar PolygonSymbol = (function (_super) {\r\n __extends(PolygonSymbol, _super);\r\n function PolygonSymbol(symbolObj, opacity) {\r\n var _this = _super.call(this, symbolObj, opacity) || this;\r\n switch (_this.symbolObj['type']) {\r\n case 'esriSFS':\r\n var innerColor = _colorArrayToRgba(_this.symbolObj.color, _this.opacity);\r\n var outerColor = _colorArrayToRgba(_this.symbolObj.outline.color, _this.opacity);\r\n var outlineWidth = _this.symbolObj.outline.width;\r\n _this.olStyle = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: outerColor,\r\n //lineDash: [4],\r\n width: outlineWidth\r\n }),\r\n fill: new ol.style.Fill({\r\n color: innerColor\r\n })\r\n });\r\n _this.legendHtml = \"<span class=\\\"legend-layer-icon\\\" \";\r\n _this.legendHtml += \"style=\\\"\";\r\n _this.legendHtml += \"background-color: \" + innerColor + \";\";\r\n _this.legendHtml += \"border: solid \" + outerColor + \" 1px;\";\r\n _this.legendHtml += \"width: 40px;\";\r\n _this.legendHtml += \"height: 9px;\";\r\n _this.legendHtml += \"position: relative;\";\r\n _this.legendHtml += \"display: inline-block;\";\r\n _this.legendHtml += \"top: 2px;\";\r\n _this.legendHtml += \"\\\"></span>\";\r\n break;\r\n default:\r\n console.log(_this.symbolObj);\r\n alert('Polygon symbol does handle symbol type: ' + _this.symbolObj['type']);\r\n }\r\n return _this;\r\n }\r\n return PolygonSymbol;\r\n}(CommonSymbol));\r\nvar SymbolGenerator = (function () {\r\n function SymbolGenerator(esriResponse) {\r\n this.opacity = (100 - (esriResponse['drawingInfo']['transparency'] || 0)) / 100;\r\n this.renderer = esriResponse.drawingInfo.renderer;\r\n this.olStyle = undefined;\r\n this.legendHtml = '';\r\n }\r\n return SymbolGenerator;\r\n}());\r\nvar SingleSymbol = (function (_super) {\r\n __extends(SingleSymbol, _super);\r\n /**\r\n *\r\n * @param {object} esriResponse - layer info\r\n * @param SymbolClass - the symbol class to use\r\n */\r\n function SingleSymbol(esriResponse, SymbolClass) {\r\n var _this = _super.call(this, esriResponse) || this;\r\n _this.symbol = _this.renderer.symbol;\r\n var symbolObj = new SymbolClass(_this.symbol, _this.opacity);\r\n _this.olStyle = symbolObj.olStyle;\r\n _this.legendHtml = symbolObj.legendHtml;\r\n return _this;\r\n }\r\n return SingleSymbol;\r\n}(SymbolGenerator));\r\nvar UniqueValueSymbol = (function (_super) {\r\n __extends(UniqueValueSymbol, _super);\r\n /**\r\n *\r\n * @param {object} esriResponse - layer info\r\n * @param SymbolClass - the Symbol class definition\r\n */\r\n function UniqueValueSymbol(esriResponse, SymbolClass) {\r\n var _this = _super.call(this, esriResponse) || this;\r\n _this.uniqueValueInfos = _this.renderer['uniqueValueInfos'];\r\n _this.propertyName = _this.renderer['field1'];\r\n _this.defaultSymbol = _this.renderer['defaultSymbol'];\r\n if (_this.defaultSymbol) {\r\n var symbolObj = new SymbolClass(_this.defaultSymbol, _this.opacity);\r\n _this.defaultStyle = symbolObj.olStyle;\r\n _this.defaultLabelHtml = \"<span class=\\\"legend-layer-subitem\\\">\" + htmlEscape(_this.renderer['defaultLabel']) + \"</span>\" + symbolObj.legendHtml;\r\n }\r\n else {\r\n _this.defaultStyle = undefined;\r\n _this.defaultLabelHtml = 'other';\r\n }\r\n _this.valueArray = [];\r\n _this.labelArray = [];\r\n _this.legendArray = [];\r\n _this.propertyStyleLookup = {};\r\n for (var _i = 0, _a = _this.uniqueValueInfos; _i < _a.length; _i++) {\r\n var uniqueVal = _a[_i];\r\n _this.labelArray.push(uniqueVal['label']);\r\n _this.valueArray.push(uniqueVal['value']);\r\n var uniqueSym = new SymbolClass(uniqueVal.symbol, _this.opacity);\r\n _this.legendArray.push(\"<span class=\\\"legend-layer-subitem\\\">\" + htmlEscape(uniqueVal['label']) + \"</span>\" + uniqueSym.legendHtml);\r\n _this.propertyStyleLookup[uniqueVal['value']] = uniqueSym.olStyle;\r\n }\r\n _this.olStyle = function (feature) {\r\n var checkProperties = feature.getProperties();\r\n var checkProperty = checkProperties[_this.propertyName];\r\n var returnValue;\r\n if (_this.propertyStyleLookup[checkProperty] !== undefined) {\r\n returnValue = [_this.propertyStyleLookup[checkProperty]];\r\n }\r\n else {\r\n returnValue = [_this.defaultStyle];\r\n }\r\n return returnValue;\r\n };\r\n if (_this.defaultLabelHtml !== null) {\r\n _this.legendArray.push(_this.defaultLabelHtml);\r\n }\r\n _this.legendHtml = '<ul>';\r\n for (var _b = 0, _c = _this.legendArray; _b < _c.length; _b++) {\r\n var h = _c[_b];\r\n _this.legendHtml += \"<li>\" + h + \"</li>\";\r\n }\r\n _this.legendHtml += '</ul>';\r\n return _this;\r\n }\r\n return UniqueValueSymbol;\r\n}(SymbolGenerator));\r\n/**\r\n * style and legend object\r\n * @typedef {object} styleAndLegend\r\n * @property {styleFunc} style - style function\r\n * @property {string} legend - legend content\r\n */\r\n/**\r\n *\r\n * @param {object} esriResponse - layer info\r\n * @returns {styleAndLegend} style and legend object\r\n */\r\nfunction makeFeatureServiceLegendAndSymbol(esriResponse) {\r\n \"use strict\";\r\n var renderer = esriResponse.drawingInfo.renderer;\r\n var symbolLegendOut = null;\r\n switch (renderer.type) {\r\n case 'simple':\r\n switch (esriResponse.geometryType) {\r\n case 'esriGeometryPoint':\r\n symbolLegendOut = new SingleSymbol(esriResponse, PointSymbol);\r\n break;\r\n case 'esriGeometryPolyline':\r\n symbolLegendOut = new SingleSymbol(esriResponse, LineSymbol);\r\n break;\r\n case 'esriGeometryPolygon':\r\n symbolLegendOut = new SingleSymbol(esriResponse, PolygonSymbol);\r\n break;\r\n default:\r\n console.log(esriResponse);\r\n alert(esriResponse.geometryType + ' not handled');\r\n }\r\n break;\r\n case 'uniqueValue':\r\n switch (esriResponse.geometryType) {\r\n case 'esriGeometryPoint':\r\n symbolLegendOut = new UniqueValueSymbol(esriResponse, PointSymbol);\r\n break;\r\n case 'esriGeometryPolyline':\r\n symbolLegendOut = new UniqueValueSymbol(esriResponse, LineSymbol);\r\n break;\r\n case 'esriGeometryPolygon':\r\n symbolLegendOut = new UniqueValueSymbol(esriResponse, PolygonSymbol);\r\n break;\r\n default:\r\n console.log(esriResponse);\r\n alert(esriResponse['geometryType'] + ' not handled');\r\n }\r\n break;\r\n default:\r\n alert('not handled renderer type: ' + renderer['type']);\r\n }\r\n if (symbolLegendOut == null) {\r\n return { style: undefined, legend: '' };\r\n }\r\n else {\r\n return { style: symbolLegendOut.olStyle, legend: symbolLegendOut.legendHtml };\r\n }\r\n}\r\nexports.makeFeatureServiceLegendAndSymbol = makeFeatureServiceLegendAndSymbol;\r\nnm.makeFeatureServiceLegendAndSymbol = makeFeatureServiceLegendAndSymbol;\r\n/**\r\n *\r\n * @param {object} lyrObject - the layer as defined in the response\r\n * @param {boolean} [skipLayerNameAndExpander=false] use only icons\r\n * @returns {string} legend html\r\n */\r\nfunction mapServiceLegendItem(lyrObject, skipLayerNameAndExpander) {\r\n if (skipLayerNameAndExpander === void 0) { skipLayerNameAndExpander = false; }\r\n skipLayerNameAndExpander = typeof skipLayerNameAndExpander == 'boolean' ? skipLayerNameAndExpander : false;\r\n var layerName = lyrObject['layerName'];\r\n var legendItems = lyrObject['legend'];\r\n var legendHtml = '';\r\n if (!skipLayerNameAndExpander) {\r\n legendHtml += \"<span class=\\\"legend-layer-subitem\\\">\" + layerName + \"</span>\";\r\n }\r\n if (legendItems.length == 1) {\r\n legendHtml = \"<img class=\\\"legend-layer-icon\\\" height=\\\"17\\\" src=\\\"data:image/png;base64,\" + legendItems[0]['imageData'] + \"\\\">\";\r\n }\r\n else {\r\n if (!skipLayerNameAndExpander) {\r\n legendHtml += '<span class=\"legend-items-expander\" title=\"Expand/Collapse\">▼</span>';\r\n }\r\n legendHtml += '<ul>';\r\n for (var i = 0; i < legendItems.length; i++) {\r\n legendHtml += \"<li>\";\r\n legendHtml += \"<span class=\\\"legend-layer-subitem\\\">\" + htmlEscape(legendItems[i]['label']) + \"</span>\";\r\n legendHtml += \"<img class=\\\"legend-layer-icon\\\" height=\\\"17\\\" src=\\\"data:image/png;base64,\" + legendItems[i]['imageData'] + \"\\\">\";\r\n legendHtml += \"</li>\";\r\n }\r\n legendHtml += '</ul>';\r\n }\r\n if (!skipLayerNameAndExpander) {\r\n legendHtml = \"<span class=\\\"legend-layer-subitem\\\">\" + layerName + \"</span>\" + legendHtml;\r\n }\r\n return legendHtml;\r\n}\r\n/**\r\n * make map service legent\r\n * @param {object} esriResponse - layer info\r\n * @returns {string} legend content\r\n */\r\nfunction makeMapServiceLegend(esriResponse) {\r\n \"use strict\";\r\n var newLegendHtml = '';\r\n var layers = esriResponse['layers'];\r\n if (layers.length == 1) {\r\n newLegendHtml += mapServiceLegendItem(layers[0], true);\r\n }\r\n else {\r\n newLegendHtml += '<ul>';\r\n for (var i = 0; i < layers.length; i++) {\r\n newLegendHtml += '<li>' + mapServiceLegendItem(layers[i]) + '</li>';\r\n }\r\n newLegendHtml += '</ul>';\r\n }\r\n return newLegendHtml;\r\n}\r\nexports.makeMapServiceLegend = makeMapServiceLegend;\r\nnm.makeMapServiceLegend = makeMapServiceLegend;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNyaVRvT2xTdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVzcmlUb09sU3R5bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0dBRUc7QUFDSCwyQ0FBc0M7QUFDdEMsOEJBQWlDO0FBQ2pDLElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUU5Qzs7Ozs7R0FLRztBQUVIOzs7Ozs7R0FNRztBQUNILDJCQUEyQixVQUFVLEVBQUUsT0FBTztJQUMxQyxZQUFZLENBQUM7SUFFYixNQUFNLENBQUMsVUFBUSxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBSSxPQUFPLE1BQUcsQ0FBQztBQUNqRixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILG9CQUFvQixHQUFHO0lBQ25CLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1NBQ2IsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7U0FDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUM7U0FDdkIsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7U0FDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7U0FDckIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsRUFBRSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7QUE0QjNCO0lBTUk7Ozs7T0FJRztJQUNILHNCQUFZLFNBQXFCLEVBQUUsT0FBZTtRQUM5QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lB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Q29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxLzQvMjAxNi5cclxuICovXHJcbmltcG9ydCBwcm92aWRlIGZyb20gJy4uL3V0aWwvcHJvdmlkZSc7XHJcbmltcG9ydCBvbCA9IHJlcXVpcmUoJ2N1c3RvbS1vbCcpO1xyXG5jb25zdCBubSA9IHByb3ZpZGUoJ29sSGVscGVycy5lc3JpVG9PbFN0eWxlJyk7XHJcblxyXG4vKipcclxuICogVGhpcyBjYWxsYmFjayBpcyBkaXNwbGF5ZWQgYXMgcGFydCBvZiB0aGUgUmVxdWVzdGVyIGNsYXNzLlxyXG4gKiBAY2FsbGJhY2sgc3R5bGVGdW5jXHJcbiAqIEBwYXJhbSB7b2wuRmVhdHVyZX0gZmVhdCAtIG9wZW5sYXllcnMgZmVhdHVyZVxyXG4gKiBAcGFyYW0ge251bWJlcn0gcmVzb2x1dGlvbiAtIG1hcCByZXNvbHV0aW9uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSB7QXJyYXk8bnVtYmVyPn0gY29sb3JBcnJheSAtIGlucHV0IGNvbG9yIGFycmF5XHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBvcGFjaXR5IC0gdGhlIG9wYWNpdHkgMCB0byAxXHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHJnYmEgc3RyaW5nXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5mdW5jdGlvbiBfY29sb3JBcnJheVRvUmdiYShjb2xvckFycmF5LCBvcGFjaXR5KSB7XHJcbiAgICBcInVzZSBzdHJpY3RcIjtcclxuXHJcbiAgICByZXR1cm4gYHJnYmEoJHtjb2xvckFycmF5WzBdfSwke2NvbG9yQXJyYXlbMV19LCR7Y29sb3JBcnJheVsyXX0sJHtvcGFjaXR5fSlgO1xyXG59XHJcblxyXG4vKipcclxuICogZXNjYXBlIGh0bWwgY2hhcmN0ZXJzXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgLSBpbnB1dCBzdHJpbmdcclxuICogQHJldHVybnMge3N0cmluZ30gZXNjYXBlZCBzdHJpbmdcclxuICovXHJcbmZ1bmN0aW9uIGh0bWxFc2NhcGUoc3RyKSB7XHJcbiAgICByZXR1cm4gU3RyaW5nKHN0cilcclxuICAgICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxyXG4gICAgICAgIC5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7JylcclxuICAgICAgICAucmVwbGFjZSgvJy9nLCAnJiMzOTsnKVxyXG4gICAgICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JylcclxuICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpO1xyXG59XHJcblxyXG5ubS5odG1sRXNjYXBlID0gaHRtbEVzY2FwZTtcclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVzcmlSZXNwb25zZXtcclxuICAgIGRyYXdpbmdJbmZvOiB7XHJcbiAgICAgICAgcmVuZGVyZXI6IEVzcmlSZW5kZXJlclxyXG4gICAgfSxcclxuICAgIGdlb21ldHJ5VHlwZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXNyaVJlbmRlcmVye1xyXG4gICAgdHlwZTogc3RyaW5nO1xyXG4gICAgc3ltYm9sOiBFc3JpU3ltYm9sO1xyXG4gICAgdW5pcXVlVmFsdWVJbmZvczogQXJyYXk8e2xhYmVsOiBzdHJpbmcsIHZhbHVlOiBhbnksIHN5bWJvbDogRXNyaVN5bWJvbH0+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVzcmlTeW1ib2x7XHJcbiAgICBzaXplOiBudW1iZXI7XHJcbiAgICB0eXBlOiBzdHJpbmc7XHJcbiAgICBvdXRsaW5lOntcclxuICAgICAgICBjb2xvcjogc3RyaW5nO1xyXG4gICAgICAgIHdpZHRoOiBudW1iZXI7XHJcbiAgICB9LFxyXG4gICAgY29sb3I6IHN0cmluZztcclxuICAgIHdpZHRoOiBudW1iZXI7XHJcbn1cclxuXHJcblxyXG5jbGFzcyBDb21tb25TeW1ib2wge1xyXG4gICAgbGVnZW5kSHRtbDogc3RyaW5nO1xyXG4gICAgb3BhY2l0eTogbnVtYmVyO1xyXG4gICAgc3ltYm9sT2JqOiBFc3JpU3ltYm9sO1xyXG4gICAgb2xTdHlsZTogb2wuc3R5bGUuU3R5bGV8QXJyYXk8b2wuc3R5bGUuU3R5bGU+fG9sLlN0eWxlRnVuY3Rpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHN5bWJvbE9ialxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG9wYWNpdHlcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3Ioc3ltYm9sT2JqOiBFc3JpU3ltYm9sLCBvcGFjaXR5OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnN5bWJvbE9iaiA9IHN5bWJvbE9iajtcclxuICAgICAgICB0aGlzLm9wYWNpdHkgPSBvcGFjaXR5O1xyXG4gICAgICAgIHRoaXMub2xTdHlsZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgPSAnJztcclxuICAgIH1cclxufVxyXG5cclxuaW50ZXJmYWNlIElDb21tb25TeW1ib2x7XHJcbiAgICBuZXcgKHN5bWJvbE9iajogRXNyaVN5bWJvbCwgb3BhY2l0eTogbnVtYmVyKTogQ29tbW9uU3ltYm9sXHJcbn1cclxuXHJcblxyXG5jbGFzcyBQb2ludFN5bWJvbCBleHRlbmRzIENvbW1vblN5bWJvbCB7XHJcbiAgICBjb25zdHJ1Y3RvcihzeW1ib2xPYmo6IEVzcmlTeW1ib2wsIG9wYWNpdHk6IG51bWJlcikge1xyXG4gICAgICAgIHN1cGVyKHN5bWJvbE9iaiwgb3BhY2l0eSk7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnN5bWJvbE9iai50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2VzcmlTTVMnOlxyXG4gICAgICAgICAgICAgICAgbGV0IGlubmVyQ29sb3IgPSBfY29sb3JBcnJheVRvUmdiYSh0aGlzLnN5bWJvbE9iai5jb2xvciwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgICAgIGxldCBvdXRlckNvbG9yID0gX2NvbG9yQXJyYXlUb1JnYmEodGhpcy5zeW1ib2xPYmoub3V0bGluZS5jb2xvciwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgICAgIGxldCBvdXRsaW5lV2lkdGggPSB0aGlzLnN5bWJvbE9iai5vdXRsaW5lLndpZHRoO1xyXG4gICAgICAgICAgICAgICAgbGV0IHJhZGl1cyA9IHRoaXMuc3ltYm9sT2JqLnNpemU7XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMub2xTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5DaXJjbGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogbmV3IG9sLnN0eWxlLkZpbGwoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGlubmVyQ29sb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sLnN0eWxlLlN0cm9rZSh7Y29sb3I6IG91dGVyQ29sb3IsIHdpZHRoOiBvdXRsaW5lV2lkdGh9KVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgc3R5bGU9XCJjb2xvcjogJHtpbm5lckNvbG9yfVwiPiYjOTY3OTs8L3NwYW4+YDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdlc3JpUE1TJzpcclxuICAgICAgICAgICAgICAgIHRoaXMub2xTdHlsZSA9IG5ldyBvbC5zdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbC5zdHlsZS5JY29uKHtzcmM6IGBkYXRhOmltYWdlL3BuZztiYXNlNjQsJHt0aGlzLnN5bWJvbE9ialsnaW1hZ2VEYXRhJ119YH0pXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IGA8aW1nIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBoZWlnaHQ9XCIxN1wiIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwke3RoaXMuc3ltYm9sT2JqWydpbWFnZURhdGEnXX1cIj5gO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnN5bWJvbE9iaik7XHJcbiAgICAgICAgICAgICAgICBhbGVydCgnUG9pbnQgc3ltYm9sIGRvZXMgbm90IGhhbmRsZSBzeW1ib2wgdHlwZTogJyArIHRoaXMuc3ltYm9sT2JqWyd0eXBlJ10pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgTGluZVN5bWJvbCBleHRlbmRzIENvbW1vblN5bWJvbCB7XHJcbiAgICBjb25zdHJ1Y3RvcihzeW1ib2xPYmo6IEVzcmlTeW1ib2wsIG9wYWNpdHk6IG51bWJlcikge1xyXG4gICAgICAgIHN1cGVyKHN5bWJvbE9iaiwgb3BhY2l0eSk7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnN5bWJvbE9iai50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2VzcmlTTFMnOlxyXG4gICAgICAgICAgICAgICAgbGV0IGlubmVyQ29sb3IgPSBfY29sb3JBcnJheVRvUmdiYSh0aGlzLnN5bWJvbE9iai5jb2xvciwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgICAgIGxldCBsaW5lV2lkdGggPSB0aGlzLnN5bWJvbE9iai53aWR0aDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9sU3R5bGUgPSBuZXcgb2wuc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sLnN0eWxlLlN0cm9rZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbm5lckNvbG9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2xpbmVEYXNoOiBbNF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBsaW5lV2lkdGhcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sID0gYDxzcGFuIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGBzdHlsZT1cImA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGJhY2tncm91bmQtY29sb3I6ICR7aW5uZXJDb2xvcn07YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgd2lkdGg6IDQwcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgaGVpZ2h0OiA0cHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgcG9zaXRpb246IHJlbGF0aXZlO2A7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGRpc3BsYXk6IGlubGluZS1ibG9jaztgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGB0b3A6IC0xcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgXCI+PC9zcGFuPmA7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc3ltYm9sT2JqKTtcclxuICAgICAgICAgICAgICAgIGFsZXJ0KCdMaW5lIHN5bWJvbCBkb2VzIG5vdCBoYW5kbGUgc3ltYm9sIHR5cGU6ICcgKyB0aGlzLnN5bWJvbE9ialsndHlwZSddKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFBvbHlnb25TeW1ib2wgZXh0ZW5kcyBDb21tb25TeW1ib2wge1xyXG4gICAgY29uc3RydWN0b3Ioc3ltYm9sT2JqOiBFc3JpU3ltYm9sLCBvcGFjaXR5OiBudW1iZXIpIHtcclxuICAgICAgICBzdXBlcihzeW1ib2xPYmosIG9wYWNpdHkpO1xyXG4gICAgICAgIHN3aXRjaCAodGhpcy5zeW1ib2xPYmpbJ3R5cGUnXSkge1xyXG4gICAgICAgICAgICBjYXNlICdlc3JpU0ZTJzpcclxuICAgICAgICAgICAgICAgIGxldCBpbm5lckNvbG9yID0gX2NvbG9yQXJyYXlUb1JnYmEodGhpcy5zeW1ib2xPYmouY29sb3IsIHRoaXMub3BhY2l0eSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgb3V0ZXJDb2xvciA9IF9jb2xvckFycmF5VG9SZ2JhKHRoaXMuc3ltYm9sT2JqLm91dGxpbmUuY29sb3IsIHRoaXMub3BhY2l0eSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgb3V0bGluZVdpZHRoID0gdGhpcy5zeW1ib2xPYmoub3V0bGluZS53aWR0aDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9sU3R5bGUgPSBuZXcgb2wuc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sLnN0eWxlLlN0cm9rZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBvdXRlckNvbG9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2xpbmVEYXNoOiBbNF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBvdXRsaW5lV2lkdGhcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICBmaWxsOiBuZXcgb2wuc3R5bGUuRmlsbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbm5lckNvbG9yXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgYDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgc3R5bGU9XCJgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGBiYWNrZ3JvdW5kLWNvbG9yOiAke2lubmVyQ29sb3J9O2A7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGJvcmRlcjogc29saWQgJHtvdXRlckNvbG9yfSAxcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgd2lkdGg6IDQwcHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgaGVpZ2h0OiA5cHg7YDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVnZW5kSHRtbCArPSBgcG9zaXRpb246IHJlbGF0aXZlO2A7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlZ2VuZEh0bWwgKz0gYGRpc3BsYXk6IGlubGluZS1ibG9jaztgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGB0b3A6IDJweDtgO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGBcIj48L3NwYW4+YDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc3ltYm9sT2JqKTtcclxuICAgICAgICAgICAgICAgIGFsZXJ0KCdQb2x5Z29uIHN5bWJvbCBkb2VzIGhhbmRsZSBzeW1ib2wgdHlwZTogJyArIHRoaXMuc3ltYm9sT2JqWyd0eXBlJ10pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgU3ltYm9sR2VuZXJhdG9yIHtcclxuICAgIG9wYWNpdHk6IG51bWJlcjtcclxuICAgIHJlbmRlcmVyOiBFc3JpUmVuZGVyZXI7XHJcbiAgICBsZWdlbmRIdG1sOiBzdHJpbmc7XHJcbiAgICBvbFN0eWxlOiBvbC5zdHlsZS5TdHlsZXxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuU3R5bGVGdW5jdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihlc3JpUmVzcG9uc2U6IEVzcmlSZXNwb25zZSkge1xyXG4gICAgICAgIHRoaXMub3BhY2l0eSA9ICgxMDAgLSAoZXNyaVJlc3BvbnNlWydkcmF3aW5nSW5mbyddWyd0cmFuc3BhcmVuY3knXSB8fCAwKSkgLyAxMDA7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IGVzcmlSZXNwb25zZS5kcmF3aW5nSW5mby5yZW5kZXJlcjtcclxuICAgICAgICB0aGlzLm9sU3R5bGUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5sZWdlbmRIdG1sID0gJyc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFNpbmdsZVN5bWJvbCBleHRlbmRzIFN5bWJvbEdlbmVyYXRvciB7XHJcbiAgICBzeW1ib2w6IEVzcmlTeW1ib2w7XHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZXNyaVJlc3BvbnNlIC0gbGF5ZXIgaW5mb1xyXG4gICAgICogQHBhcmFtIFN5bWJvbENsYXNzIC0gdGhlIHN5bWJvbCBjbGFzcyB0byB1c2VcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoZXNyaVJlc3BvbnNlLCBTeW1ib2xDbGFzczogSUNvbW1vblN5bWJvbCkge1xyXG4gICAgICAgIHN1cGVyKGVzcmlSZXNwb25zZSk7XHJcbiAgICAgICAgdGhpcy5zeW1ib2wgPSB0aGlzLnJlbmRlcmVyLnN5bWJvbDtcclxuICAgICAgICBsZXQgc3ltYm9sT2JqID0gbmV3IFN5bWJvbENsYXNzKHRoaXMuc3ltYm9sLCB0aGlzLm9wYWNpdHkpO1xyXG4gICAgICAgIHRoaXMub2xTdHlsZSA9IHN5bWJvbE9iai5vbFN0eWxlO1xyXG4gICAgICAgIHRoaXMubGVnZW5kSHRtbCA9IHN5bWJvbE9iai5sZWdlbmRIdG1sO1xyXG4gICAgfVxyXG59XHJcblxyXG5jbGFzcyBVbmlxdWVWYWx1ZVN5bWJvbCBleHRlbmRzIFN5bWJvbEdlbmVyYXRvciB7XHJcblxyXG4gICAgcHJvcGVydHlOYW1lOiBzdHJpbmc7XHJcbiAgICBkZWZhdWx0U3ltYm9sOiBFc3JpU3ltYm9sO1xyXG4gICAgZGVmYXVsdFN0eWxlOiBvbC5zdHlsZS5TdHlsZXxBcnJheTxvbC5zdHlsZS5TdHlsZT58b2wuU3R5bGVGdW5jdGlvbjtcclxuICAgIGRlZmF1bHRMYWJlbEh0bWw6IHN0cmluZztcclxuICAgIGxhYmVsQXJyYXk6IEFycmF5PHN0cmluZz47XHJcbiAgICBsZWdlbmRBcnJheTogQXJyYXk8c3RyaW5nPjtcclxuICAgIHByb3BlcnR5U3R5bGVMb29rdXA6IE9iamVjdDtcclxuICAgIHZhbHVlQXJyYXk6IEFycmF5PGFueT47XHJcbiAgICB1bmlxdWVWYWx1ZUluZm9zOiBBcnJheTx7bGFiZWw6IHN0cmluZywgdmFsdWU6IGFueSwgc3ltYm9sOiBFc3JpU3ltYm9sfT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGVzcmlSZXNwb25zZSAtIGxheWVyIGluZm9cclxuICAgICAqIEBwYXJhbSBTeW1ib2xDbGFzcyAtIHRoZSBTeW1ib2wgY2xhc3MgZGVmaW5pdGlvblxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcihlc3JpUmVzcG9uc2U6IEVzcmlSZXNwb25zZSwgU3ltYm9sQ2xhc3M6IElDb21tb25TeW1ib2wpIHtcclxuICAgICAgICBzdXBlcihlc3JpUmVzcG9uc2UpO1xyXG4gICAgICAgIHRoaXMudW5pcXVlVmFsdWVJbmZvcyA9IHRoaXMucmVuZGVyZXJbJ3VuaXF1ZVZhbHVlSW5mb3MnXTtcclxuICAgICAgICB0aGlzLnByb3BlcnR5TmFtZSA9IHRoaXMucmVuZGVyZXJbJ2ZpZWxkMSddO1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdFN5bWJvbCA9IHRoaXMucmVuZGVyZXJbJ2RlZmF1bHRTeW1ib2wnXTtcclxuXHJcblxyXG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRTeW1ib2wpIHtcclxuICAgICAgICAgICAgbGV0IHN5bWJvbE9iaiA9IG5ldyBTeW1ib2xDbGFzcyh0aGlzLmRlZmF1bHRTeW1ib2wsIHRoaXMub3BhY2l0eSk7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFN0eWxlID0gc3ltYm9sT2JqLm9sU3R5bGU7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdExhYmVsSHRtbCA9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtodG1sRXNjYXBlKHRoaXMucmVuZGVyZXJbJ2RlZmF1bHRMYWJlbCddKX08L3NwYW4+YCArIHN5bWJvbE9iai5sZWdlbmRIdG1sO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFN0eWxlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRMYWJlbEh0bWwgPSAnb3RoZXInO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy52YWx1ZUFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sYWJlbEFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sZWdlbmRBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMucHJvcGVydHlTdHlsZUxvb2t1cCA9IHt9O1xyXG5cclxuICAgICAgICBmb3IgKGxldCB1bmlxdWVWYWwgb2YgdGhpcy51bmlxdWVWYWx1ZUluZm9zKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGFiZWxBcnJheS5wdXNoKHVuaXF1ZVZhbFsnbGFiZWwnXSk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVBcnJheS5wdXNoKHVuaXF1ZVZhbFsndmFsdWUnXSk7XHJcbiAgICAgICAgICAgIGxldCB1bmlxdWVTeW0gPSBuZXcgU3ltYm9sQ2xhc3ModW5pcXVlVmFsLnN5bWJvbCwgdGhpcy5vcGFjaXR5KTtcclxuICAgICAgICAgICAgdGhpcy5sZWdlbmRBcnJheS5wdXNoKGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtodG1sRXNjYXBlKHVuaXF1ZVZhbFsnbGFiZWwnXSl9PC9zcGFuPmAgKyB1bmlxdWVTeW0ubGVnZW5kSHRtbCk7XHJcbiAgICAgICAgICAgIHRoaXMucHJvcGVydHlTdHlsZUxvb2t1cFt1bmlxdWVWYWxbJ3ZhbHVlJ11dID0gdW5pcXVlU3ltLm9sU3R5bGU7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgdGhpcy5vbFN0eWxlID0gKGZlYXR1cmU6IG9sLkZlYXR1cmUpID0+IHtcclxuICAgICAgICAgICAgbGV0IGNoZWNrUHJvcGVydGllcyA9IGZlYXR1cmUuZ2V0UHJvcGVydGllcygpO1xyXG4gICAgICAgICAgICBsZXQgY2hlY2tQcm9wZXJ0eSA9IGNoZWNrUHJvcGVydGllc1t0aGlzLnByb3BlcnR5TmFtZV07XHJcblxyXG4gICAgICAgICAgICBsZXQgcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BlcnR5U3R5bGVMb29rdXBbY2hlY2tQcm9wZXJ0eV0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBbdGhpcy5wcm9wZXJ0eVN0eWxlTG9va3VwW2NoZWNrUHJvcGVydHldXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBbdGhpcy5kZWZhdWx0U3R5bGVdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdExhYmVsSHRtbCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmxlZ2VuZEFycmF5LnB1c2godGhpcy5kZWZhdWx0TGFiZWxIdG1sKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubGVnZW5kSHRtbCA9ICc8dWw+JztcclxuICAgICAgICBmb3IgKGxldCBoIG9mIHRoaXMubGVnZW5kQXJyYXkpIHtcclxuICAgICAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9IGA8bGk+JHtofTwvbGk+YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sZWdlbmRIdG1sICs9ICc8L3VsPic7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4vKipcclxuICogc3R5bGUgYW5kIGxlZ2VuZCBvYmplY3RcclxuICogQHR5cGVkZWYge29iamVjdH0gc3R5bGVBbmRMZWdlbmRcclxuICogQHByb3BlcnR5IHtzdHlsZUZ1bmN9IHN0eWxlIC0gc3R5bGUgZnVuY3Rpb25cclxuICogQHByb3BlcnR5IHtzdHJpbmd9IGxlZ2VuZCAtIGxlZ2VuZCBjb250ZW50XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBlc3JpUmVzcG9uc2UgLSBsYXllciBpbmZvXHJcbiAqIEByZXR1cm5zIHtzdHlsZUFuZExlZ2VuZH0gc3R5bGUgYW5kIGxlZ2VuZCBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBtYWtlRmVhdHVyZVNlcnZpY2VMZWdlbmRBbmRTeW1ib2woZXNyaVJlc3BvbnNlOiBFc3JpUmVzcG9uc2UpIHtcclxuICAgIFwidXNlIHN0cmljdFwiO1xyXG4gICAgbGV0IHJlbmRlcmVyID0gZXNyaVJlc3BvbnNlLmRyYXdpbmdJbmZvLnJlbmRlcmVyO1xyXG4gICAgbGV0IHN5bWJvbExlZ2VuZE91dDogU3ltYm9sR2VuZXJhdG9yID0gbnVsbDtcclxuXHJcbiAgICBzd2l0Y2ggKHJlbmRlcmVyLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdzaW1wbGUnOlxyXG4gICAgICAgICAgICBzd2l0Y2ggKGVzcmlSZXNwb25zZS5nZW9tZXRyeVR5cGUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2VzcmlHZW9tZXRyeVBvaW50JzpcclxuICAgICAgICAgICAgICAgICAgICBzeW1ib2xMZWdlbmRPdXQgPSBuZXcgU2luZ2xlU3ltYm9sKGVzcmlSZXNwb25zZSwgUG9pbnRTeW1ib2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZXNyaUdlb21ldHJ5UG9seWxpbmUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbExlZ2VuZE91dCA9IG5ldyBTaW5nbGVTeW1ib2woZXNyaVJlc3BvbnNlLCBMaW5lU3ltYm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2VzcmlHZW9tZXRyeVBvbHlnb24nOlxyXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbExlZ2VuZE91dCA9IG5ldyBTaW5nbGVTeW1ib2woZXNyaVJlc3BvbnNlLCBQb2x5Z29uU3ltYm9sKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXNyaVJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICBhbGVydChlc3JpUmVzcG9uc2UuZ2VvbWV0cnlUeXBlICsgJyBub3QgaGFuZGxlZCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3VuaXF1ZVZhbHVlJzpcclxuICAgICAgICAgICAgc3dpdGNoIChlc3JpUmVzcG9uc2UuZ2VvbWV0cnlUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdlc3JpR2VvbWV0cnlQb2ludCc6XHJcbiAgICAgICAgICAgICAgICAgICAgc3ltYm9sTGVnZW5kT3V0ID0gbmV3IFVuaXF1ZVZhbHVlU3ltYm9sKGVzcmlSZXNwb25zZSwgUG9pbnRTeW1ib2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZXNyaUdlb21ldHJ5UG9seWxpbmUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbExlZ2VuZE91dCA9IG5ldyBVbmlxdWVWYWx1ZVN5bWJvbChlc3JpUmVzcG9uc2UsIExpbmVTeW1ib2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZXNyaUdlb21ldHJ5UG9seWdvbic6XHJcbiAgICAgICAgICAgICAgICAgICAgc3ltYm9sTGVnZW5kT3V0ID0gbmV3IFVuaXF1ZVZhbHVlU3ltYm9sKGVzcmlSZXNwb25zZSwgUG9seWdvblN5bWJvbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVzcmlSZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxlcnQoZXNyaVJlc3BvbnNlWydnZW9tZXRyeVR5cGUnXSArICcgbm90IGhhbmRsZWQnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBhbGVydCgnbm90IGhhbmRsZWQgcmVuZGVyZXIgdHlwZTogJyArIHJlbmRlcmVyWyd0eXBlJ10pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzeW1ib2xMZWdlbmRPdXQgPT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiB7c3R5bGU6IHVuZGVmaW5lZCwgbGVnZW5kOiAnJ307XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB7c3R5bGU6IHN5bWJvbExlZ2VuZE91dC5vbFN0eWxlLCBsZWdlbmQ6IHN5bWJvbExlZ2VuZE91dC5sZWdlbmRIdG1sfTtcclxuICAgIH1cclxufVxyXG5cclxubm0ubWFrZUZlYXR1cmVTZXJ2aWNlTGVnZW5kQW5kU3ltYm9sID0gbWFrZUZlYXR1cmVTZXJ2aWNlTGVnZW5kQW5kU3ltYm9sO1xyXG5cclxuXHJcbi8qKlxyXG4gKlxyXG4gKiBAcGFyYW0ge29iamVjdH0gbHlyT2JqZWN0IC0gdGhlIGxheWVyIGFzIGRlZmluZWQgaW4gdGhlIHJlc3BvbnNlXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3NraXBMYXllck5hbWVBbmRFeHBhbmRlcj1mYWxzZV0gdXNlIG9ubHkgaWNvbnNcclxuICogQHJldHVybnMge3N0cmluZ30gbGVnZW5kIGh0bWxcclxuICovXHJcbmZ1bmN0aW9uIG1hcFNlcnZpY2VMZWdlbmRJdGVtKGx5ck9iamVjdCwgc2tpcExheWVyTmFtZUFuZEV4cGFuZGVyOiBib29sZWFuID0gZmFsc2UpIHtcclxuXHJcblxyXG4gICAgc2tpcExheWVyTmFtZUFuZEV4cGFuZGVyID0gdHlwZW9mIHNraXBMYXllck5hbWVBbmRFeHBhbmRlciA9PSAnYm9vbGVhbicgPyBza2lwTGF5ZXJOYW1lQW5kRXhwYW5kZXIgOiBmYWxzZTtcclxuICAgIGxldCBsYXllck5hbWUgPSBseXJPYmplY3RbJ2xheWVyTmFtZSddO1xyXG4gICAgbGV0IGxlZ2VuZEl0ZW1zID0gbHlyT2JqZWN0WydsZWdlbmQnXTtcclxuICAgIGxldCBsZWdlbmRIdG1sID0gJyc7XHJcblxyXG4gICAgaWYgKCFza2lwTGF5ZXJOYW1lQW5kRXhwYW5kZXIpIHtcclxuICAgICAgICBsZWdlbmRIdG1sICs9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtsYXllck5hbWV9PC9zcGFuPmA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGxlZ2VuZEl0ZW1zLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgbGVnZW5kSHRtbCA9IGA8aW1nIGNsYXNzPVwibGVnZW5kLWxheWVyLWljb25cIiBoZWlnaHQ9XCIxN1wiIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwke2xlZ2VuZEl0ZW1zWzBdWydpbWFnZURhdGEnXX1cIj5gO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoIXNraXBMYXllck5hbWVBbmRFeHBhbmRlcikge1xyXG4gICAgICAgICAgICBsZWdlbmRIdG1sICs9ICc8c3BhbiBjbGFzcz1cImxlZ2VuZC1pdGVtcy1leHBhbmRlclwiIHRpdGxlPVwiRXhwYW5kL0NvbGxhcHNlXCI+JiM5NjYwOzwvc3Bhbj4nO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZWdlbmRIdG1sICs9ICc8dWw+JztcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlZ2VuZEl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxlZ2VuZEh0bWwgKz0gYDxsaT5gO1xyXG4gICAgICAgICAgICBsZWdlbmRIdG1sICs9IGA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXllci1zdWJpdGVtXCI+JHtodG1sRXNjYXBlKGxlZ2VuZEl0ZW1zW2ldWydsYWJlbCddKX08L3NwYW4+YDtcclxuICAgICAgICAgICAgbGVnZW5kSHRtbCArPSBgPGltZyBjbGFzcz1cImxlZ2VuZC1sYXllci1pY29uXCIgaGVpZ2h0PVwiMTdcIiBzcmM9XCJkYXRhOmltYWdlL3BuZztiYXNlNjQsJHtsZWdlbmRJdGVtc1tpXVsnaW1hZ2VEYXRhJ119XCI+YDtcclxuICAgICAgICAgICAgbGVnZW5kSHRtbCArPSBgPC9saT5gO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZWdlbmRIdG1sICs9ICc8L3VsPic7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFza2lwTGF5ZXJOYW1lQW5kRXhwYW5kZXIpIHtcclxuICAgICAgICBsZWdlbmRIdG1sID0gYDxzcGFuIGNsYXNzPVwibGVnZW5kLWxheWVyLXN1Yml0ZW1cIj4ke2xheWVyTmFtZX08L3NwYW4+YCArIGxlZ2VuZEh0bWw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGxlZ2VuZEh0bWw7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBtYWtlIG1hcCBzZXJ2aWNlIGxlZ2VudFxyXG4gKiBAcGFyYW0ge29iamVjdH0gZXNyaVJlc3BvbnNlIC0gbGF5ZXIgaW5mb1xyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBsZWdlbmQgY29udGVudFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VNYXBTZXJ2aWNlTGVnZW5kKGVzcmlSZXNwb25zZSkge1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG4gICAgbGV0IG5ld0xlZ2VuZEh0bWwgPSAnJztcclxuXHJcbiAgICBsZXQgbGF5ZXJzID0gZXNyaVJlc3BvbnNlWydsYXllcnMnXTtcclxuXHJcbiAgICBpZiAobGF5ZXJzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgbmV3TGVnZW5kSHRtbCArPSBtYXBTZXJ2aWNlTGVnZW5kSXRlbShsYXllcnNbMF0sIHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdMZWdlbmRIdG1sICs9ICc8dWw+JztcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxheWVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBuZXdMZWdlbmRIdG1sICs9ICc8bGk+JyArIG1hcFNlcnZpY2VMZWdlbmRJdGVtKGxheWVyc1tpXSkgKyAnPC9saT4nO1xyXG4gICAgICAgIH1cclxuICAgICAgICBuZXdMZWdlbmRIdG1sICs9ICc8L3VsPic7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5ld0xlZ2VuZEh0bWw7XHJcbn1cclxuXHJcbm5tLm1ha2VNYXBTZXJ2aWNlTGVnZW5kID0gbWFrZU1hcFNlcnZpY2VMZWdlbmQ7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/olHelpers/esriToOlStyle.ts\n// module id = 15\n// module chunks = 0 2 3","/**\r\n * Created by gavorhes on 12/16/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"../util/provide\");\r\nvar makeGuid_1 = require(\"../util/makeGuid\");\r\nvar mapMove_1 = require(\"../olHelpers/mapMove\");\r\nvar nm = provide_1.default('collections');\r\nvar $ = require(\"jquery\");\r\nvar LayerGroup = (function () {\r\n /**\r\n *\r\n * @param {object} [groupConfig={}] - group configuration object\r\n * @param {string} groupConfig.groupName - the group name\r\n * @param {boolean} [groupConfig.collapse=false] - if the group should be collapsed initially\r\n * @param {boolean} [groupConfig.addCheck=true] - if the group should have a checkbox controlling visibility of all layers\r\n * @param {LayerGroup} [parent=undefined] - the parent group\r\n */\r\n function LayerGroup(groupConfig, parent) {\r\n this.groupLayers = [];\r\n this.groupLayersLookup = {};\r\n this.groupGroups = [];\r\n this.groupGroupsLookup = {};\r\n this.itemIdArray = [];\r\n if (typeof groupConfig == 'undefined') {\r\n this.parent = null;\r\n this.groupId = 'root';\r\n this.groupName = 'root';\r\n this.allGroupLookup = { root: this };\r\n this.allGroupArray = [this];\r\n this.allLayerArray = [];\r\n this.allLayerLookup = {};\r\n this.layerParentLookup = {};\r\n this.collapse = false;\r\n this.addCheck = false;\r\n }\r\n else {\r\n this.groupId = makeGuid_1.default();\r\n this.parent = parent;\r\n this.groupName = groupConfig.groupName;\r\n this.collapse = typeof groupConfig.collapse == 'boolean' ? groupConfig.collapse : false;\r\n this.addCheck = typeof groupConfig.addCheck == 'boolean' ? groupConfig.addCheck : true;\r\n }\r\n }\r\n /**\r\n *\r\n * @param {object} groupConfig - configuration object\r\n * @param {string} groupConfig.groupName - the group name\r\n * @param {boolean} groupConfig.collapse if the group should be collapsed initially\r\n * @param {boolean} groupConfig.addCheck if the group should have a checkbox controlling visibility of all layers\r\n * @param {Array<LayerGroup>} parents parent groups\r\n * @returns {LayerGroup} the layer group just added\r\n */\r\n LayerGroup.prototype.addGroup = function (groupConfig, parents) {\r\n var parent;\r\n if (parents.length > 0) {\r\n parent = parents[parents.length - 1];\r\n }\r\n else {\r\n parent = 'root';\r\n }\r\n /**\r\n * @type {LayerGroup}\r\n */\r\n var parentGroup = this.allGroupLookup[parent];\r\n var newGroup = new LayerGroup(groupConfig, parentGroup);\r\n this.allGroupLookup[newGroup.groupId] = newGroup;\r\n this.allGroupArray.push(newGroup);\r\n parentGroup.groupGroups.push(newGroup);\r\n parentGroup.groupGroupsLookup[newGroup.groupId] = newGroup;\r\n if (parentGroup.itemIdArray.indexOf(newGroup.groupId) > 0) {\r\n console.log(newGroup.groupId);\r\n throw 'layer and group ids must be unique';\r\n }\r\n parentGroup.itemIdArray.push(newGroup.groupId);\r\n return newGroup;\r\n };\r\n /**\r\n *\r\n * @param {LayerBase} newLayer the layer to be added\r\n * @param {Array} parents array\r\n */\r\n LayerGroup.prototype.addLegendLayer = function (newLayer, parents) {\r\n var parent;\r\n if (parents.length > 0) {\r\n parent = parents[parents.length - 1];\r\n }\r\n else {\r\n parent = 'root';\r\n }\r\n this.allLayerLookup[newLayer.id] = newLayer;\r\n this.allLayerArray.push(newLayer);\r\n /**\r\n * @type {LayerGroup}\r\n */\r\n var parentGroup = this.allGroupLookup[parent];\r\n parentGroup.groupLayers.push(newLayer);\r\n parentGroup.groupLayersLookup[newLayer.id] = newLayer;\r\n if (parentGroup.itemIdArray.indexOf(newLayer.id) > 0) {\r\n console.log(newLayer.id);\r\n throw 'layer and group ids must be unique';\r\n }\r\n parentGroup.itemIdArray.push(newLayer.id);\r\n this.layerParentLookup[newLayer.id] = parentGroup;\r\n };\r\n LayerGroup.prototype.getLegendHtml = function (legendId, options) {\r\n var legendHtml = \"<ul id=\\\"\" + legendId + \"\\\" class=\\\"legend-container\\\">\";\r\n legendHtml += \"<li>\" + options.legendTitle + \"<input type=\\\"checkbox\\\" checked id=\\\"suppress-by-extent-\" + legendId + \"\\\" class=\\\"suppress-by-extent\\\">\" +\r\n (\"<label title=\\\"Suppress layers not visible at this zoom level\\\" for=\\\"suppress-by-extent-\" + legendId + \"\\\">\") +\r\n \"<span></span>\" +\r\n \"</label></li>\";\r\n legendHtml += this._buildLegend(this.itemIdArray, this, options.layerDivClasses) + '</ul>';\r\n return legendHtml;\r\n };\r\n /**\r\n * @param {Array} itemIds the items to process\r\n * @param {LayerGroup} theGroup new group\r\n * @param {Array} [layerDivClasses=[]] optional classes to apply to the layer divs\r\n * @static\r\n * @returns {string} html string\r\n */\r\n LayerGroup.prototype._buildLegend = function (itemIds, theGroup, layerDivClasses) {\r\n if (itemIds.length == 0) {\r\n return '';\r\n }\r\n var theHml = '';\r\n var itemId = itemIds[0];\r\n if (theGroup.groupLayersLookup[itemId]) {\r\n /**\r\n * @type {LayerBase}\r\n */\r\n var lyr = theGroup.groupLayersLookup[itemId];\r\n theHml += \"<li id=\\\"\" + lyr.id + \"-layer-li\\\" class=\\\"legend-layer-li \" + layerDivClasses.join(' ') + \"\\\">\" + lyr.getLegendDiv() + '</li>';\r\n }\r\n else if (theGroup.groupGroupsLookup[itemId]) {\r\n /**\r\n * type {LayerGroup}\r\n */\r\n var otherGroup = theGroup.groupGroupsLookup[itemId];\r\n theHml += \"<li>\";\r\n theHml += \"<div id=\\\"\" + otherGroup.groupId + \"-legend-layer-div\\\" \" +\r\n (\"class=\\\"legend-layer-group \" + layerDivClasses.join(' ') + \"\\\">\");\r\n if (otherGroup.addCheck) {\r\n theHml += \"<input type=\\\"checkbox\\\" checked id=\\\"\" + otherGroup.groupId + \"-group-chck\\\">\" +\r\n (\"<label for=\\\"\" + otherGroup.groupId + \"-group-chck\\\" title=\\\"Click arrow to expand or collapse\\\">\" + otherGroup.groupName + \"</label>\");\r\n }\r\n else {\r\n theHml += \"<label title=\\\"Click arrow to expand or collapse\\\">\" + otherGroup.groupName + \"</label>\";\r\n }\r\n theHml += \"<span title=\\\"Expand/Collapse\\\" class=\\\"layer-group-expander\";\r\n theHml += (otherGroup.collapse ? ' legend-layer-group-initial-collapse' : '') + \"\\\">\";\r\n theHml += otherGroup.collapse ? '▶' : '▼';\r\n theHml += '</span>';\r\n //parents.push(groupId);\r\n theHml += '<ul>' + this._buildLegend(otherGroup.itemIdArray, otherGroup, layerDivClasses) + '</ul>';\r\n theHml += '</div>';\r\n theHml += '</li>';\r\n }\r\n return theHml + this._buildLegend(itemIds.slice(1), theGroup, layerDivClasses);\r\n };\r\n return LayerGroup;\r\n}());\r\n/**\r\n * a wrapper to make a legend\r\n */\r\nvar LayerLegend = (function () {\r\n /**\r\n *\r\n * @param {Array} legendItems array of layers or objects with {groupName: {string}, collapse: {boolean}, addCheck: {boolean}, items: {Array}}\r\n * @param {string} divId the div where the legend should be added\r\n * @param {object} options for legend\r\n * @param {Array} [options.layerDivClasses=[]] optional array of classes to be applied to the layer legend divs for custom styling\r\n * @param {string} [options.legendTitle=Legend] the legend title\r\n * @param {boolean} [options.scaleDependent=true] if legend display is scale dependent\r\n */\r\n function LayerLegend(legendItems, divId, options) {\r\n for (var _i = 0, legendItems_1 = legendItems; _i < legendItems_1.length; _i++) {\r\n var i = legendItems_1[_i];\r\n if (typeof i == 'undefined') {\r\n throw 'undefined item passed in array to legend constructor';\r\n }\r\n }\r\n options = options || {};\r\n options.legendTitle = typeof options.legendTitle == 'string' ? options.legendTitle : 'Legend';\r\n options.scaleDependent = typeof options.scaleDependent == 'boolean' ? options.scaleDependent : true;\r\n options.layerDivClasses = options.layerDivClasses || [];\r\n // if legend display is scale dependent, make sure the mapMove object is initialized first\r\n if (options.scaleDependent) {\r\n mapMove_1.default.checkInit();\r\n }\r\n this.$divElement = $('#' + divId);\r\n this._legendItems = legendItems;\r\n this.layerGroup = new LayerGroup();\r\n this._buildTree(legendItems);\r\n this.legendId = makeGuid_1.default();\r\n this.$divElement.append(this.layerGroup.getLegendHtml(this.legendId, options));\r\n for (var _a = 0, _b = this.layerGroup.allLayerArray; _a < _b.length; _a++) {\r\n var l = _b[_a];\r\n l.applyCollapse();\r\n }\r\n var _this = this;\r\n //// if legend display is scale dependent, make sure the mapMove object is initialized first\r\n if (options.scaleDependent) {\r\n mapMove_1.default.checkInit();\r\n mapMove_1.default.addCallback(function (ext, zoom, evt) {\r\n if (typeof evt == 'undefined' || evt == 'change:resolution') {\r\n for (var _i = 0, _a = this.layerGroup.allLayerArray; _i < _a.length; _i++) {\r\n var lyr = _a[_i];\r\n var $lyrLi = $('#' + lyr.id + '-layer-li');\r\n if (zoom > lyr.maxZoom || zoom < lyr.minZoom) {\r\n $lyrLi.addClass('layer-not-visible');\r\n }\r\n else {\r\n $lyrLi.removeClass('layer-not-visible');\r\n }\r\n }\r\n }\r\n }, this, 100, true, 'legend1');\r\n }\r\n // <editor-fold desc=\"add event listeners\">\r\n this.$divElement.find(\".suppress-by-extent\").change(function () {\r\n var legendLayerLis = $('.legend-layer-li');\r\n if (this.checked) {\r\n legendLayerLis.removeClass('layer-force-show');\r\n }\r\n else {\r\n legendLayerLis.addClass('layer-force-show');\r\n }\r\n });\r\n this.$divElement.find('.legend-check').change(function () {\r\n var lyrId = this.id.replace('-legend-layer-check', '');\r\n _this.layerGroup.allLayerLookup[lyrId].visible = this.checked;\r\n });\r\n this.$divElement.find('.legend-layer-group > input[type=checkbox]').change(function () {\r\n $(this).siblings('ul').find('input[type=checkbox]').prop('checked', this.checked).trigger('change');\r\n });\r\n this.$divElement.find('.layer-group-expander').click(function () {\r\n var $this = $(this);\r\n $this.removeClass('legend-layer-group-initial-collapse');\r\n $this.siblings('ul').slideToggle();\r\n if ($this.hasClass('legend-layer-group-collapsed')) {\r\n $this.removeClass('legend-layer-group-collapsed');\r\n $this.html('▼');\r\n }\r\n else {\r\n $this.addClass('legend-layer-group-collapsed');\r\n $this.html('▶');\r\n }\r\n });\r\n this.$divElement.find('.legend-layer-group-initial-collapse').trigger('click');\r\n // </editor-fold>\r\n }\r\n /**\r\n * @param {Array} [legendItems=this._layerConfig] the legend items\r\n * @param {Array} [parents=[]] the ordered list of groups in which this item is a member\r\n * @private\r\n */\r\n LayerLegend.prototype._buildTree = function (legendItems, parents) {\r\n if (legendItems.length == 0) {\r\n return;\r\n }\r\n var oneItem = legendItems[0];\r\n //reset the parent if the item is in the base array\r\n if (this._legendItems.indexOf(oneItem) > -1 || typeof parents == 'undefined') {\r\n parents = [];\r\n }\r\n if (typeof oneItem['groupName'] !== 'undefined') {\r\n var groupItem = legendItems[0];\r\n var newGroup = this.layerGroup.addGroup(groupItem, parents);\r\n parents.push(newGroup.groupId);\r\n this._buildTree(groupItem.items, parents);\r\n }\r\n else {\r\n /**\r\n * @type {LayerBase}\r\n */\r\n var layerItem = legendItems[0];\r\n this.layerGroup.addLegendLayer(layerItem, parents);\r\n }\r\n this._buildTree(legendItems.slice(1), parents);\r\n };\r\n return LayerLegend;\r\n}());\r\nnm.LayerLegend = LayerLegend;\r\nexports.default = LayerLegend;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJMZWdlbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJMYXllckxlZ2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7O0FBRUgsMkNBQXNDO0FBQ3RDLDZDQUF3QztBQUN4QyxnREFBMkM7QUFFM0MsSUFBSSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNoQywwQkFBNkI7QUFFN0I7SUFpQkk7Ozs7Ozs7T0FPRztJQUNILG9CQUFZLFdBQVksRUFBRSxNQUFPO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUV0QixFQUFFLENBQUMsQ0FBQyxPQUFPLFdBQVcsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFD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RSxPQUFPLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUwsa0JBQUM7QUFBRCxDQUFDLEFBbEpELElBa0pDO0FBRUQsRUFBRSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDN0Isa0JBQWUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTYvMjAxNS5cclxuICovXHJcblxyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQgbWFrZUd1aWQgZnJvbSAnLi4vdXRpbC9tYWtlR3VpZCc7XHJcbmltcG9ydCBtYXBNb3ZlIGZyb20gJy4uL29sSGVscGVycy9tYXBNb3ZlJztcclxuXHJcbmxldCBubSA9IHByb3ZpZGUoJ2NvbGxlY3Rpb25zJyk7XHJcbmltcG9ydCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcblxyXG5jbGFzcyBMYXllckdyb3VwIHtcclxuICAgIGdyb3VwTGF5ZXJzOiBhbnk7XHJcbiAgICBncm91cExheWVyc0xvb2t1cDogYW55O1xyXG4gICAgZ3JvdXBHcm91cHNMb29rdXA6IGFueTtcclxuICAgIGdyb3VwR3JvdXBzOiBhbnk7XHJcbiAgICBpdGVtSWRBcnJheTogYW55O1xyXG4gICAgZ3JvdXBJZDogYW55O1xyXG4gICAgZ3JvdXBOYW1lOiBhbnk7XHJcbiAgICBhbGxMYXllckFycmF5OiBhbnk7XHJcbiAgICBwYXJlbnQ6IGFueTtcclxuICAgIGFsbEdyb3VwQXJyYXk6IGFueTtcclxuICAgIGFsbEdyb3VwTG9va3VwOiBhbnk7XHJcbiAgICBhbGxMYXllckxvb2t1cDogYW55O1xyXG4gICAgY29sbGFwc2U6IGFueTtcclxuICAgIGFkZENoZWNrOiBhbnk7XHJcbiAgICBsYXllclBhcmVudExvb2t1cDogYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbZ3JvdXBDb25maWc9e31dIC0gZ3JvdXAgY29uZmlndXJhdGlvbiBvYmplY3RcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBncm91cENvbmZpZy5ncm91cE5hbWUgLSB0aGUgZ3JvdXAgbmFtZVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZ3JvdXBDb25maWcuY29sbGFwc2U9ZmFsc2VdIC0gaWYgdGhlIGdyb3VwIHNob3VsZCBiZSBjb2xsYXBzZWQgaW5pdGlhbGx5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtncm91cENvbmZpZy5hZGRDaGVjaz10cnVlXSAtIGlmIHRoZSBncm91cCBzaG91bGQgaGF2ZSBhIGNoZWNrYm94IGNvbnRyb2xsaW5nIHZpc2liaWxpdHkgb2YgYWxsIGxheWVyc1xyXG4gICAgICogQHBhcmFtIHtMYXllckdyb3VwfSBbcGFyZW50PXVuZGVmaW5lZF0gLSB0aGUgcGFyZW50IGdyb3VwXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGdyb3VwQ29uZmlnPywgcGFyZW50Pykge1xyXG4gICAgICAgIHRoaXMuZ3JvdXBMYXllcnMgPSBbXTtcclxuICAgICAgICB0aGlzLmdyb3VwTGF5ZXJzTG9va3VwID0ge307XHJcbiAgICAgICAgdGhpcy5ncm91cEdyb3VwcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuZ3JvdXBHcm91cHNMb29rdXAgPSB7fTtcclxuICAgICAgICB0aGlzLml0ZW1JZEFycmF5ID0gW107XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgZ3JvdXBDb25maWcgPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnQgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLmdyb3VwSWQgPSAncm9vdCc7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBOYW1lID0gJ3Jvb3QnO1xyXG4gICAgICAgICAgICB0aGlzLmFsbEdyb3VwTG9va3VwID0ge3Jvb3Q6IHRoaXN9O1xyXG4gICAgICAgICAgICB0aGlzLmFsbEdyb3VwQXJyYXkgPSBbdGhpc107XHJcbiAgICAgICAgICAgIHRoaXMuYWxsTGF5ZXJBcnJheSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmFsbExheWVyTG9va3VwID0ge307XHJcbiAgICAgICAgICAgIHRoaXMubGF5ZXJQYXJlbnRMb29rdXAgPSB7fTtcclxuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmFkZENoZWNrID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cElkID0gbWFrZUd1aWQoKTtcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBOYW1lID0gZ3JvdXBDb25maWcuZ3JvdXBOYW1lO1xyXG4gICAgICAgICAgICB0aGlzLmNvbGxhcHNlID0gdHlwZW9mICBncm91cENvbmZpZy5jb2xsYXBzZSA9PSAnYm9vbGVhbicgPyBncm91cENvbmZpZy5jb2xsYXBzZSA6IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmFkZENoZWNrID0gdHlwZW9mICBncm91cENvbmZpZy5hZGRDaGVjayA9PSAnYm9vbGVhbicgPyBncm91cENvbmZpZy5hZGRDaGVjayA6IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBncm91cENvbmZpZyAtIGNvbmZpZ3VyYXRpb24gb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZ3JvdXBDb25maWcuZ3JvdXBOYW1lIC0gdGhlIGdyb3VwIG5hbWVcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZ3JvdXBDb25maWcuY29sbGFwc2UgaWYgdGhlIGdyb3VwIHNob3VsZCBiZSBjb2xsYXBzZWQgaW5pdGlhbGx5XHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGdyb3VwQ29uZmlnLmFkZENoZWNrIGlmIHRoZSBncm91cCBzaG91bGQgaGF2ZSBhIGNoZWNrYm94IGNvbnRyb2xsaW5nIHZpc2liaWxpdHkgb2YgYWxsIGxheWVyc1xyXG4gICAgICogQHBhcmFtIHtBcnJheTxMYXllckdyb3VwPn0gcGFyZW50cyBwYXJlbnQgZ3JvdXBzXHJcbiAgICAgKiBAcmV0dXJucyB7TGF5ZXJHcm91cH0gdGhlIGxheWVyIGdyb3VwIGp1c3QgYWRkZWRcclxuICAgICAqL1xyXG4gICAgYWRkR3JvdXAoZ3JvdXBDb25maWcsIHBhcmVudHMpIHtcclxuICAgICAgICBsZXQgcGFyZW50O1xyXG4gICAgICAgIGlmIChwYXJlbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50c1twYXJlbnRzLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHBhcmVudCA9ICdyb290JztcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAdHlwZSB7TGF5ZXJHcm91cH1cclxuICAgICAgICAgKi9cclxuICAgICAgICBsZXQgcGFyZW50R3JvdXAgPSB0aGlzLmFsbEdyb3VwTG9va3VwW3BhcmVudF07XHJcbiAgICAgICAgbGV0IG5ld0dyb3VwID0gbmV3IExheWVyR3JvdXAoZ3JvdXBDb25maWcsIHBhcmVudEdyb3VwKTtcclxuICAgICAgICB0aGlzLmFsbEdyb3VwTG9va3VwW25ld0dyb3VwLmdyb3VwSWRdID0gbmV3R3JvdXA7XHJcbiAgICAgICAgdGhpcy5hbGxHcm91cEFycmF5LnB1c2gobmV3R3JvdXApO1xyXG5cclxuICAgICAgICBwYXJlbnRHcm91cC5ncm91cEdyb3Vwcy5wdXNoKG5ld0dyb3VwKTtcclxuICAgICAgICBwYXJlbnRHcm91cC5ncm91cEdyb3Vwc0xvb2t1cFtuZXdHcm91cC5ncm91cElkXSA9IG5ld0dyb3VwO1xyXG5cclxuICAgICAgICBpZiAocGFyZW50R3JvdXAuaXRlbUlkQXJyYXkuaW5kZXhPZihuZXdHcm91cC5ncm91cElkKSA+IDApIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2cobmV3R3JvdXAuZ3JvdXBJZCk7XHJcbiAgICAgICAgICAgIHRocm93ICdsYXllciBhbmQgZ3JvdXAgaWRzIG11c3QgYmUgdW5pcXVlJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcGFyZW50R3JvdXAuaXRlbUlkQXJyYXkucHVzaChuZXdHcm91cC5ncm91cElkKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ld0dyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGF5ZXJCYXNlfSBuZXdMYXllciB0aGUgbGF5ZXIgdG8gYmUgYWRkZWRcclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHBhcmVudHMgYXJyYXlcclxuICAgICAqL1xyXG4gICAgYWRkTGVnZW5kTGF5ZXIobmV3TGF5ZXIsIHBhcmVudHMpIHtcclxuICAgICAgICBsZXQgcGFyZW50O1xyXG4gICAgICAgIGlmIChwYXJlbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50c1twYXJlbnRzLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHBhcmVudCA9ICdyb290JztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWxsTGF5ZXJMb29rdXBbbmV3TGF5ZXIuaWRdID0gbmV3TGF5ZXI7XHJcbiAgICAgICAgdGhpcy5hbGxMYXllckFycmF5LnB1c2gobmV3TGF5ZXIpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAdHlwZSB7TGF5ZXJHcm91cH1cclxuICAgICAgICAgKi9cclxuICAgICAgICBsZXQgcGFyZW50R3JvdXAgPSB0aGlzLmFsbEdyb3VwTG9va3VwW3BhcmVudF07XHJcblxyXG4gICAgICAgIHBhcmVudEdyb3VwLmdyb3VwTGF5ZXJzLnB1c2gobmV3TGF5ZXIpO1xyXG4gICAgICAgIHBhcmVudEdyb3VwLmdyb3VwTGF5ZXJzTG9va3VwW25ld0xheWVyLmlkXSA9IG5ld0xheWVyO1xyXG4gICAgICAgIGlmIChwYXJlbnRHcm91cC5pdGVtSWRBcnJheS5pbmRleE9mKG5ld0xheWVyLmlkKSA+IDApIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2cobmV3TGF5ZXIuaWQpO1xyXG4gICAgICAgICAgICB0aHJvdyAnbGF5ZXIgYW5kIGdyb3VwIGlkcyBtdXN0IGJlIHVuaXF1ZSc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBhcmVudEdyb3VwLml0ZW1JZEFycmF5LnB1c2gobmV3TGF5ZXIuaWQpO1xyXG5cclxuICAgICAgICB0aGlzLmxheWVyUGFyZW50TG9va3VwW25ld0xheWVyLmlkXSA9IHBhcmVudEdyb3VwO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBnZXRMZWdlbmRIdG1sKGxlZ2VuZElkLCBvcHRpb25zKSB7XHJcblxyXG5cclxuICAgICAgICBsZXQgbGVnZW5kSHRtbCA9IGA8dWwgaWQ9XCIke2xlZ2VuZElkfVwiIGNsYXNzPVwibGVnZW5kLWNvbnRhaW5lclwiPmA7XHJcblxyXG4gICAgICAgIGxlZ2VuZEh0bWwgKz0gYDxsaT4ke29wdGlvbnMubGVnZW5kVGl0bGV9PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNoZWNrZWQgaWQ9XCJzdXBwcmVzcy1ieS1leHRlbnQtJHtsZWdlbmRJZH1cIiBjbGFzcz1cInN1cHByZXNzLWJ5LWV4dGVudFwiPmAgK1xyXG4gICAgICAgICAgICBgPGxhYmVsIHRpdGxlPVwiU3VwcHJlc3MgbGF5ZXJzIG5vdCB2aXNpYmxlIGF0IHRoaXMgem9vbSBsZXZlbFwiIGZvcj1cInN1cHByZXNzLWJ5LWV4dGVudC0ke2xlZ2VuZElkfVwiPmAgK1xyXG4gICAgICAgICAgICBgPHNwYW4+PC9zcGFuPmAgK1xyXG4gICAgICAgICAgICBgPC9sYWJlbD48L2xpPmA7XHJcblxyXG4gICAgICAgIGxlZ2VuZEh0bWwgKz0gdGhpcy5fYnVpbGRMZWdlbmQodGhpcy5pdGVtSWRBcnJheSwgdGhpcywgb3B0aW9ucy5sYXllckRpdkNsYXNzZXMpICsgJzwvdWw+JztcclxuXHJcbiAgICAgICAgcmV0dXJuIGxlZ2VuZEh0bWw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBpdGVtSWRzIHRoZSBpdGVtcyB0byBwcm9jZXNzXHJcbiAgICAgKiBAcGFyYW0ge0xheWVyR3JvdXB9IHRoZUdyb3VwIG5ldyBncm91cFxyXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2xheWVyRGl2Q2xhc3Nlcz1bXV0gb3B0aW9uYWwgY2xhc3NlcyB0byBhcHBseSB0byB0aGUgbGF5ZXIgZGl2c1xyXG4gICAgICogQHN0YXRpY1xyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gaHRtbCBzdHJpbmdcclxuICAgICAqL1xyXG4gICAgX2J1aWxkTGVnZW5kKGl0ZW1JZHMsIHRoZUdyb3VwLCBsYXllckRpdkNsYXNzZXMpIHtcclxuXHJcbiAgICAgICAgaWYgKGl0ZW1JZHMubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHRoZUhtbCA9ICcnO1xyXG5cclxuICAgICAgICBsZXQgaXRlbUlkID0gaXRlbUlkc1swXTtcclxuXHJcbiAgICAgICAgaWYgKHRoZUdyb3VwLmdyb3VwTGF5ZXJzTG9va3VwW2l0ZW1JZF0pIHtcclxuXHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBAdHlwZSB7TGF5ZXJCYXNlfVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgbGV0IGx5ciA9IHRoZUdyb3VwLmdyb3VwTGF5ZXJzTG9va3VwW2l0ZW1JZF07XHJcbiAgICAgICAgICAgIHRoZUhtbCArPSBgPGxpIGlkPVwiJHtseXIuaWR9LWxheWVyLWxpXCIgY2xhc3M9XCJsZWdlbmQtbGF5ZXItbGkgJHtsYXllckRpdkNsYXNzZXMuam9pbignICcpfVwiPmAgKyBseXIuZ2V0TGVnZW5kRGl2KCkgKyAnPC9saT4nO1xyXG5cclxuXHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGVHcm91cC5ncm91cEdyb3Vwc0xvb2t1cFtpdGVtSWRdKSB7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiB0eXBlIHtMYXllckdyb3VwfVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgbGV0IG90aGVyR3JvdXAgPSB0aGVHcm91cC5ncm91cEdyb3Vwc0xvb2t1cFtpdGVtSWRdO1xyXG5cclxuICAgICAgICAgICAgdGhlSG1sICs9IGA8bGk+YDtcclxuICAgICAgICAgICAgdGhlSG1sICs9IGA8ZGl2IGlkPVwiJHtvdGhlckdyb3VwLmdyb3VwSWR9LWxlZ2VuZC1sYXllci1kaXZcIiBgICtcclxuICAgICAgICAgICAgICAgIGBjbGFzcz1cImxlZ2VuZC1sYXllci1ncm91cCAgJHtsYXllckRpdkNsYXNzZXMuam9pbignICcpfVwiPmA7XHJcblxyXG4gICAgICAgICAgICBpZiAob3RoZXJHcm91cC5hZGRDaGVjaykge1xyXG4gICAgICAgICAgICAgICAgdGhlSG1sICs9IGA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2hlY2tlZCBpZD1cIiR7b3RoZXJHcm91cC5ncm91cElkfS1ncm91cC1jaGNrXCI+YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYDxsYWJlbCBmb3I9XCIke290aGVyR3JvdXAuZ3JvdXBJZH0tZ3JvdXAtY2hja1wiIHRpdGxlPVwiQ2xpY2sgYXJyb3cgdG8gZXhwYW5kIG9yIGNvbGxhcHNlXCI+JHtvdGhlckdyb3VwLmdyb3VwTmFtZX08L2xhYmVsPmA7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGVIbWwgKz0gYDxsYWJlbCB0aXRsZT1cIkNsaWNrIGFycm93IHRvIGV4cGFuZCBvciBjb2xsYXBzZVwiPiR7b3RoZXJHcm91cC5ncm91cE5hbWV9PC9sYWJlbD5gO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGVIbWwgKz0gYDxzcGFuIHRpdGxlPVwiRXhwYW5kL0NvbGxhcHNlXCIgY2xhc3M9XCJsYXllci1ncm91cC1leHBhbmRlcmA7XHJcbiAgICAgICAgICAgIHRoZUhtbCArPSBgJHtvdGhlckdyb3VwLmNvbGxhcHNlID8gJyBsZWdlbmQtbGF5ZXItZ3JvdXAtaW5pdGlhbC1jb2xsYXBzZScgOiAnJ31cIj5gO1xyXG4gICAgICAgICAgICB0aGVIbWwgKz0gb3RoZXJHcm91cC5jb2xsYXBzZSA/ICcmIzk2NTQ7JyA6ICcmIzk2NjA7JztcclxuICAgICAgICAgICAgdGhlSG1sICs9ICc8L3NwYW4+JztcclxuXHJcbiAgICAgICAgICAgIC8vcGFyZW50cy5wdXNoKGdyb3VwSWQpO1xyXG4gICAgICAgICAgICB0aGVIbWwgKz0gJzx1bD4nICsgdGhpcy5fYnVpbGRMZWdlbmQob3RoZXJHcm91cC5pdGVtSWRBcnJheSwgb3RoZXJHcm91cCwgbGF5ZXJEaXZDbGFzc2VzKSArICc8L3VsPic7XHJcbiAgICAgICAgICAgIHRoZUhtbCArPSAnPC9kaXY+JztcclxuICAgICAgICAgICAgdGhlSG1sICs9ICc8L2xpPic7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhlSG1sICsgdGhpcy5fYnVpbGRMZWdlbmQoaXRlbUlkcy5zbGljZSgxKSwgdGhlR3JvdXAsIGxheWVyRGl2Q2xhc3Nlcyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBhIHdyYXBwZXIgdG8gbWFrZSBhIGxlZ2VuZFxyXG4gKi9cclxuY2xhc3MgTGF5ZXJMZWdlbmQge1xyXG5cclxuICAgICRkaXZFbGVtZW50OiBhbnk7XHJcbiAgICBfbGVnZW5kSXRlbXM6IGFueTtcclxuICAgIGxheWVyR3JvdXA6IGFueTtcclxuICAgIGxlZ2VuZElkOiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtBcnJheX0gbGVnZW5kSXRlbXMgYXJyYXkgb2YgbGF5ZXJzIG9yIG9iamVjdHMgd2l0aCB7Z3JvdXBOYW1lOiAge3N0cmluZ30sIGNvbGxhcHNlOiB7Ym9vbGVhbn0sIGFkZENoZWNrOiB7Ym9vbGVhbn0sIGl0ZW1zOiB7QXJyYXl9fVxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGRpdklkIHRoZSBkaXYgd2hlcmUgdGhlIGxlZ2VuZCBzaG91bGQgYmUgYWRkZWRcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIGZvciBsZWdlbmRcclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtvcHRpb25zLmxheWVyRGl2Q2xhc3Nlcz1bXV0gb3B0aW9uYWwgYXJyYXkgb2YgY2xhc3NlcyB0byBiZSBhcHBsaWVkIHRvIHRoZSBsYXllciBsZWdlbmQgZGl2cyBmb3IgY3VzdG9tIHN0eWxpbmdcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5sZWdlbmRUaXRsZT1MZWdlbmRdIHRoZSBsZWdlbmQgdGl0bGVcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuc2NhbGVEZXBlbmRlbnQ9dHJ1ZV0gaWYgbGVnZW5kIGRpc3BsYXkgaXMgc2NhbGUgZGVwZW5kZW50XHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGxlZ2VuZEl0ZW1zLCBkaXZJZCwgb3B0aW9ucykge1xyXG4gICAgICAgIGZvciAobGV0IGkgb2YgbGVnZW5kSXRlbXMpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBpID09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyAndW5kZWZpbmVkIGl0ZW0gcGFzc2VkIGluIGFycmF5IHRvIGxlZ2VuZCBjb25zdHJ1Y3Rvcic7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xyXG5cclxuICAgICAgICBvcHRpb25zLmxlZ2VuZFRpdGxlID0gdHlwZW9mIG9wdGlvbnMubGVnZW5kVGl0bGUgPT0gJ3N0cmluZycgPyBvcHRpb25zLmxlZ2VuZFRpdGxlIDogJ0xlZ2VuZCc7XHJcbiAgICAgICAgb3B0aW9ucy5zY2FsZURlcGVuZGVudCA9IHR5cGVvZiBvcHRpb25zLnNjYWxlRGVwZW5kZW50ID09ICdib29sZWFuJyA/IG9wdGlvbnMuc2NhbGVEZXBlbmRlbnQgOiB0cnVlO1xyXG4gICAgICAgIG9wdGlvbnMubGF5ZXJEaXZDbGFzc2VzID0gb3B0aW9ucy5sYXllckRpdkNsYXNzZXMgfHwgW107XHJcblxyXG4gICAgICAgIC8vIGlmIGxlZ2VuZCBkaXNwbGF5IGlzIHNjYWxlIGRlcGVuZGVudCwgbWFrZSBzdXJlIHRoZSBtYXBNb3ZlIG9iamVjdCBpcyBpbml0aWFsaXplZCBmaXJzdFxyXG4gICAgICAgIGlmIChvcHRpb25zLnNjYWxlRGVwZW5kZW50KSB7XHJcbiAgICAgICAgICAgIG1hcE1vdmUuY2hlY2tJbml0KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLiRkaXZFbGVtZW50ID0gJCgnIycgKyBkaXZJZCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2xlZ2VuZEl0ZW1zID0gbGVnZW5kSXRlbXM7XHJcblxyXG4gICAgICAgIHRoaXMubGF5ZXJHcm91cCA9IG5ldyBMYXllckdyb3VwKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2J1aWxkVHJlZShsZWdlbmRJdGVtcyk7XHJcblxyXG4gICAgICAgIHRoaXMubGVnZW5kSWQgPSBtYWtlR3VpZCgpO1xyXG5cclxuICAgICAgICB0aGlzLiRkaXZFbGVtZW50LmFwcGVuZCh0aGlzLmxheWVyR3JvdXAuZ2V0TGVnZW5kSHRtbCh0aGlzLmxlZ2VuZElkLCBvcHRpb25zKSk7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGwgb2YgdGhpcy5sYXllckdyb3VwLmFsbExheWVyQXJyYXkpe1xyXG4gICAgICAgICAgICBsLmFwcGx5Q29sbGFwc2UoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgLy8vLyBpZiBsZWdlbmQgZGlzcGxheSBpcyBzY2FsZSBkZXBlbmRlbnQsIG1ha2Ugc3VyZSB0aGUgbWFwTW92ZSBvYmplY3QgaXMgaW5pdGlhbGl6ZWQgZmlyc3RcclxuICAgICAgICBpZiAob3B0aW9ucy5zY2FsZURlcGVuZGVudCkge1xyXG4gICAgICAgICAgICBtYXBNb3ZlLmNoZWNrSW5pdCgpO1xyXG5cclxuICAgICAgICAgICAgbWFwTW92ZS5hZGRDYWxsYmFjayhmdW5jdGlvbiAoZXh0LCB6b29tLCBldnQpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGV2dCA9PSAndW5kZWZpbmVkJyB8fCBldnQgPT0gJ2NoYW5nZTpyZXNvbHV0aW9uJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGx5ciBvZiB0aGlzLmxheWVyR3JvdXAuYWxsTGF5ZXJBcnJheSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgJGx5ckxpID0gJCgnIycgKyBseXIuaWQgKyAnLWxheWVyLWxpJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh6b29tID4gbHlyLm1heFpvb20gfHwgem9vbSA8IGx5ci5taW5ab29tKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbHlyTGkuYWRkQ2xhc3MoJ2xheWVyLW5vdC12aXNpYmxlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbHlyTGkucmVtb3ZlQ2xhc3MoJ2xheWVyLW5vdC12aXNpYmxlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sIHRoaXMsIDEwMCwgdHJ1ZSwgJ2xlZ2VuZDEnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIDxlZGl0b3ItZm9sZCBkZXNjPVwiYWRkIGV2ZW50IGxpc3RlbmVyc1wiPlxyXG5cclxuICAgICAgICB0aGlzLiRkaXZFbGVtZW50LmZpbmQoXCIuc3VwcHJlc3MtYnktZXh0ZW50XCIpLmNoYW5nZShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGxldCBsZWdlbmRMYXllckxpcyA9ICQoJy5sZWdlbmQtbGF5ZXItbGknKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tlZCkge1xyXG4gICAgICAgICAgICAgICAgbGVnZW5kTGF5ZXJMaXMucmVtb3ZlQ2xhc3MoJ2xheWVyLWZvcmNlLXNob3cnKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGxlZ2VuZExheWVyTGlzLmFkZENsYXNzKCdsYXllci1mb3JjZS1zaG93Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuJGRpdkVsZW1lbnQuZmluZCgnLmxlZ2VuZC1jaGVjaycpLmNoYW5nZShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGxldCBseXJJZCA9IHRoaXMuaWQucmVwbGFjZSgnLWxlZ2VuZC1sYXllci1jaGVjaycsICcnKTtcclxuICAgICAgICAgICAgX3RoaXMubGF5ZXJHcm91cC5hbGxMYXllckxvb2t1cFtseXJJZF0udmlzaWJsZSA9IHRoaXMuY2hlY2tlZDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy4kZGl2RWxlbWVudC5maW5kKCcubGVnZW5kLWxheWVyLWdyb3VwID4gaW5wdXRbdHlwZT1jaGVja2JveF0nKS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAkKHRoaXMpLnNpYmxpbmdzKCd1bCcpLmZpbmQoJ2lucHV0W3R5cGU9Y2hlY2tib3hdJykucHJvcCgnY2hlY2tlZCcsIHRoaXMuY2hlY2tlZCkudHJpZ2dlcignY2hhbmdlJyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuJGRpdkVsZW1lbnQuZmluZCgnLmxheWVyLWdyb3VwLWV4cGFuZGVyJykuY2xpY2soZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBsZXQgJHRoaXMgPSAkKHRoaXMpO1xyXG4gICAgICAgICAgICAkdGhpcy5yZW1vdmVDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWluaXRpYWwtY29sbGFwc2UnKTtcclxuXHJcbiAgICAgICAgICAgICR0aGlzLnNpYmxpbmdzKCd1bCcpLnNsaWRlVG9nZ2xlKCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoJHRoaXMuaGFzQ2xhc3MoJ2xlZ2VuZC1sYXllci1ncm91cC1jb2xsYXBzZWQnKSl7XHJcbiAgICAgICAgICAgICAgICAkdGhpcy5yZW1vdmVDbGFzcygnbGVnZW5kLWxheWVyLWdyb3VwLWNvbGxhcHNlZCcpO1xyXG4gICAgICAgICAgICAgICAgJHRoaXMuaHRtbCgnJiM5NjYwOycpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgJHRoaXMuYWRkQ2xhc3MoJ2xlZ2VuZC1sYXllci1ncm91cC1jb2xsYXBzZWQnKTtcclxuICAgICAgICAgICAgICAgICR0aGlzLmh0bWwoJyYjOTY1NDsnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLiRkaXZFbGVtZW50LmZpbmQoJy5sZWdlbmQtbGF5ZXItZ3JvdXAtaW5pdGlhbC1jb2xsYXBzZScpLnRyaWdnZXIoJ2NsaWNrJyk7XHJcbiAgICAgICAgLy8gPC9lZGl0b3ItZm9sZD5cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbbGVnZW5kSXRlbXM9dGhpcy5fbGF5ZXJDb25maWddIHRoZSBsZWdlbmQgaXRlbXNcclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtwYXJlbnRzPVtdXSB0aGUgb3JkZXJlZCBsaXN0IG9mIGdyb3VwcyBpbiB3aGljaCB0aGlzIGl0ZW0gaXMgYSBtZW1iZXJcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIF9idWlsZFRyZWUobGVnZW5kSXRlbXMsIHBhcmVudHM/KSB7XHJcblxyXG4gICAgICAgIGlmIChsZWdlbmRJdGVtcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgb25lSXRlbSA9IGxlZ2VuZEl0ZW1zWzBdO1xyXG5cclxuICAgICAgICAvL3Jlc2V0IHRoZSBwYXJlbnQgaWYgdGhlIGl0ZW0gaXMgaW4gdGhlIGJhc2UgYXJyYXlcclxuICAgICAgICBpZiAodGhpcy5fbGVnZW5kSXRlbXMuaW5kZXhPZihvbmVJdGVtKSA+IC0xIHx8IHR5cGVvZiBwYXJlbnRzID09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIHBhcmVudHMgPSBbXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2Ygb25lSXRlbVsnZ3JvdXBOYW1lJ10gIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIGxldCBncm91cEl0ZW0gPSBsZWdlbmRJdGVtc1swXTtcclxuICAgICAgICAgICAgbGV0IG5ld0dyb3VwID0gdGhpcy5sYXllckdyb3VwLmFkZEdyb3VwKGdyb3VwSXRlbSwgcGFyZW50cyk7XHJcbiAgICAgICAgICAgIHBhcmVudHMucHVzaChuZXdHcm91cC5ncm91cElkKTtcclxuICAgICAgICAgICAgdGhpcy5fYnVpbGRUcmVlKGdyb3VwSXRlbS5pdGVtcywgcGFyZW50cyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEB0eXBlIHtMYXllckJhc2V9XHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBsZXQgbGF5ZXJJdGVtID0gbGVnZW5kSXRlbXNbMF07XHJcblxyXG4gICAgICAgICAgICB0aGlzLmxheWVyR3JvdXAuYWRkTGVnZW5kTGF5ZXIobGF5ZXJJdGVtLCBwYXJlbnRzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2J1aWxkVHJlZShsZWdlbmRJdGVtcy5zbGljZSgxKSwgcGFyZW50cyk7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5ubS5MYXllckxlZ2VuZCA9IExheWVyTGVnZW5kO1xyXG5leHBvcnQgZGVmYXVsdCBMYXllckxlZ2VuZDtcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/collections/LayerLegend.ts\n// module id = 16\n// module chunks = 1 3","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Created by gavorhes on 9/23/2016.\r\n */\r\nvar quickMap_1 = require(\"../../src/olHelpers/quickMap\");\r\nvar LayerEsriMapServer_1 = require(\"../../src/layers/LayerEsriMapServer\");\r\nvar LayerLegend_1 = require(\"../../src/collections/LayerLegend\");\r\nvar map = quickMap_1.quickMap();\r\nvar wisDotRegions = new LayerEsriMapServer_1.LayerEsriMapServer('http://transportal.cee.wisc.edu/applications/arcgis2/rest/services/MetaManager/Metamanager_regions/MapServer');\r\nvar sixYearPlan = new LayerEsriMapServer_1.LayerEsriMapServer('http://transportal.cee.wisc.edu/applications/arcgis2/rest/services/MetaManager/SixYearPlan/MapServer', { name: 'Six Year Plan', legendCollapse: true });\r\nmap.addLayer(wisDotRegions.olLayer);\r\nmap.addLayer(sixYearPlan.olLayer);\r\nvar layerArray = [\r\n wisDotRegions,\r\n sixYearPlan\r\n // tipConfig.tipSegmentLayer,\r\n // tipConfig.metamanagerSegments,\r\n // {\r\n // groupName: 'ITS Inventory Layers',\r\n // collapse: true,\r\n // addCheck: false,\r\n // items: tipConfig.itsLayerCollection.layers\r\n // }\r\n];\r\nvar legend = new LayerLegend_1.default(layerArray, 'legend-container', {});\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlX21hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNpbXBsZV9tYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7R0FFRztBQUNILHlEQUFzRDtBQUN0RCwwRUFBdUU7QUFDdkUsaUVBQTREO0FBRzVELElBQUksR0FBRyxHQUFHLG1CQUFRLEVBQUUsQ0FBQztBQUVyQixJQUFJLGFBQWEsR0FBRyxJQUFJLHVDQUFrQixDQUN0Qyw4R0FBOEcsQ0FBQyxDQUFDO0FBRXBILElBQUksV0FBVyxHQUFHLElBQUksdUNBQWtCLENBQ3BDLHNHQUFzRyxFQUFFLEVBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztBQUUzSixHQUFHLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNwQyxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUVsQyxJQUFJLFVBQVUsR0FBRztJQUNiLGFBQWE7SUFDYixXQUFXO0lBQ1gsNkJBQTZCO0lBQzdCLGlDQUFpQztJQUNqQyxJQUFJO0lBQ0oseUNBQXlDO0lBQ3pDLHNCQUFzQjtJQUN0Qix1QkFBdUI7SUFDdkIsaURBQWlEO0lBQ2pELElBQUk7Q0FDUCxDQUFDO0FBRUYsSUFBSSxNQUFNLEdBQUcsSUFBSSxxQkFBVyxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDkvMjMvMjAxNi5cclxuICovXHJcbmltcG9ydCB7cXVpY2tNYXB9IGZyb20gJy4uLy4uL3NyYy9vbEhlbHBlcnMvcXVpY2tNYXAnO1xyXG5pbXBvcnQge0xheWVyRXNyaU1hcFNlcnZlcn0gZnJvbSBcIi4uLy4uL3NyYy9sYXllcnMvTGF5ZXJFc3JpTWFwU2VydmVyXCI7XHJcbmltcG9ydCBMYXllckxlZ2VuZCBmcm9tICcuLi8uLi9zcmMvY29sbGVjdGlvbnMvTGF5ZXJMZWdlbmQnO1xyXG5cclxuXHJcbmxldCBtYXAgPSBxdWlja01hcCgpO1xyXG5cclxubGV0IHdpc0RvdFJlZ2lvbnMgPSBuZXcgTGF5ZXJFc3JpTWFwU2VydmVyKFxyXG4gICAgJ2h0dHA6Ly90cmFuc3BvcnRhbC5jZWUud2lzYy5lZHUvYXBwbGljYXRpb25zL2FyY2dpczIvcmVzdC9zZXJ2aWNlcy9NZXRhTWFuYWdlci9NZXRhbWFuYWdlcl9yZWdpb25zL01hcFNlcnZlcicpO1xyXG5cclxubGV0IHNpeFllYXJQbGFuID0gbmV3IExheWVyRXNyaU1hcFNlcnZlcihcclxuICAgICdodHRwOi8vdHJhbnNwb3J0YWwuY2VlLndpc2MuZWR1L2FwcGxpY2F0aW9ucy9hcmNnaXMyL3Jlc3Qvc2VydmljZXMvTWV0YU1hbmFnZXIvU2l4WWVhclBsYW4vTWFwU2VydmVyJywge25hbWU6ICdTaXggWWVhciBQbGFuJywgbGVnZW5kQ29sbGFwc2U6IHRydWV9KTtcclxuXHJcbm1hcC5hZGRMYXllcih3aXNEb3RSZWdpb25zLm9sTGF5ZXIpO1xyXG5tYXAuYWRkTGF5ZXIoc2l4WWVhclBsYW4ub2xMYXllcik7XHJcblxyXG5sZXQgbGF5ZXJBcnJheSA9IFtcclxuICAgIHdpc0RvdFJlZ2lvbnMsXHJcbiAgICBzaXhZZWFyUGxhblxyXG4gICAgLy8gdGlwQ29uZmlnLnRpcFNlZ21lbnRMYXllcixcclxuICAgIC8vIHRpcENvbmZpZy5tZXRhbWFuYWdlclNlZ21lbnRzLFxyXG4gICAgLy8ge1xyXG4gICAgLy8gICAgIGdyb3VwTmFtZTogJ0lUUyBJbnZlbnRvcnkgTGF5ZXJzJyxcclxuICAgIC8vICAgICBjb2xsYXBzZTogdHJ1ZSxcclxuICAgIC8vICAgICBhZGRDaGVjazogZmFsc2UsXHJcbiAgICAvLyAgICAgaXRlbXM6IHRpcENvbmZpZy5pdHNMYXllckNvbGxlY3Rpb24ubGF5ZXJzXHJcbiAgICAvLyB9XHJcbl07XHJcblxyXG5sZXQgbGVnZW5kID0gbmV3IExheWVyTGVnZW5kKGxheWVyQXJyYXksICdsZWdlbmQtY29udGFpbmVyJywge30pO1xyXG5cclxuXHJcblxyXG4iXX0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./test/demo/simple_map.ts\n// module id = 40\n// module chunks = 3"],"sourceRoot":""} \ No newline at end of file diff --git a/test/serve/js/slider-test.js b/test/serve/js/slider-test.js index d6119b2..4cfd06b 100644 --- a/test/serve/js/slider-test.js +++ b/test/serve/js/slider-test.js @@ -63,7 +63,7 @@ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 42); +/******/ return __webpack_require__(__webpack_require__.s = 41); /******/ }) /************************************************************************/ /******/ ({ @@ -101,7 +101,7 @@ function provide(namespace) { provide('util'); window['gv'].util.provide = provide; exports.default = provide; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3ZpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUdIOzs7O0dBSUc7QUFDSCxpQkFBaUIsU0FBUztJQUN0QixZQUFZLENBQUM7SUFDYixFQUFFLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDO1FBQ2hDLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwQyxFQUFFLENBQUMsQ0FBQyxPQUFPLFNBQVMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1lBQ2pDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUVELFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFFcEMsa0JBQWUsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTAvMjAxNS5cclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIGNyZWF0ZSBhIG5hbWVzcGFjZSBvbiB0aGUgZ3Ygb2JqZWN0XHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UgdG8gY3JlYXRlXHJcbiAqIEByZXR1cm5zIHtvYmplY3R9IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5hbWVzcGFjZVxyXG4gKi9cclxuZnVuY3Rpb24gcHJvdmlkZShuYW1lc3BhY2Upe1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvd1snZ3YnXSA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgd2luZG93WydndiddID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBhcnRzID0gbmFtZXNwYWNlLnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgbmFtZVNwYWNlID0gd2luZG93WydndiddO1xyXG5cclxuICAgIGZvciAobGV0IGk9MDsgaTwgcGFydHMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGxldCBuZXdPYmplY3QgPSBuYW1lU3BhY2VbcGFydHNbaV1dO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG5ld09iamVjdCA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgICAgIG5hbWVTcGFjZVtwYXJ0c1tpXV0gPSB7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5hbWVTcGFjZSA9IG5hbWVTcGFjZVtwYXJ0c1tpXV07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5hbWVTcGFjZTtcclxufVxyXG5cclxucHJvdmlkZSgndXRpbCcpO1xyXG53aW5kb3dbJ2d2J10udXRpbC5wcm92aWRlID0gcHJvdmlkZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHByb3ZpZGU7XHJcbiJdfQ== /***/ }), @@ -112,14 +112,7 @@ module.exports = $; /***/ }), -/***/ 18: -/***/ (function(module, exports) { - -module.exports = jquery-ui; - -/***/ }), - -/***/ 23: +/***/ 22: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -644,11 +637,11 @@ var TipSliders = (function () { exports.TipSliders = TipSliders; nm.Sliders = TipSliders; exports.default = TipSliders; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2xpZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIlNsaWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUVILDJDQUFzQztBQUN0QywwQkFBNkI7QUFFN0IsSUFBSSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQXVCaEM7SUFLSSxvQkFBWSxJQUFxQjtRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXhELElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUVmLEdBQUcsQ0FBQyxDQUFXLFVBQVksRUFBWixLQUFBLElBQUksQ0FBQyxPQUFPLEVBQVosY0FBWSxFQUFaLElBQVk7WUFBdEIsSUFBSSxFQUFFLFNBQUE7WUFDUCxNQUFNLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQztTQUN0QjtRQUVELEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQSxDQUFDO1lBQ2YsTUFBTSxnQ0FBZ0MsQ0FBQztRQUMzQyxDQUFDO0lBQ0wsQ0FBQztJQUNMLGlCQUFDO0FBQUQsQ0FBQyxBQXBCRCxJQW9CQztBQUdEO0lBdUJJOzs7O09BSUc7SUFDSCxpQkFBWSxZQUE2QjtRQUNyQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMs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QUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDO1lBQzVDLENBQUM7WUFFRCxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0IsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUN6RCxDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ0osR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztvQkFDL0MsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztnQkFDaEMsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUVQLENBQUM7SUFFRCxzQkFBSSxpREFBeUI7YUFBN0I7WUFDSSxNQUFNLENBQUMsRUFBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbEMsTUFBTSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBWSxFQUFDLENBQUE7UUFDekcsQ0FBQzs7O09BQUE7SUFDTCxpQkFBQztBQUFELENBQUMsQUFwWEQsSUFvWEM7QUFwWFksZ0NBQVU7QUFzWHZCLEVBQUUsQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDO0FBQ3hCLGtCQUFlLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzEwLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmxldCBubSA9IHByb3ZpZGUoJ2NvbGxlY3Rpb25zJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRpcFNsaWRlckNvbmZpZyB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgeWVhck9wdGlvbnM6IEFycmF5PHtjb2x1bW46IHN0cmluZywgbGFiZWw6IHN0cmluZ30+XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGlwUHJlc2V0Q29uZmlnIHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBwcmVzZXRzOiBBcnJheTx7Y29sdW1uOiBzdHJpbmcsIHZhbHVlOiBudW1iZXJ9PlxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZVJlc3BvbnNle1xyXG4gICAgcGFyYW1XZWlnaHRzOiBPYmplY3Q7XHJcbiAgICByZWdpb246IHN0cmluZztcclxuICAgIG1tVmVyc2lvbjogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZUNhbGxiYWNre1xyXG4gICAgKGNoZzogQ2hhbmdlUmVzcG9uc2UpOiBhbnlcclxufVxyXG5cclxuXHJcbmNsYXNzIFRpcFByZXNldHMgaW1wbGVtZW50cyBUaXBQcmVzZXRDb25maWcge1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIHByZXNldHM6IEFycmF5PHtjb2x1bW46IHN0cmluZywgdmFsdWU6IG51bWJlcn0+O1xyXG4gICAgZG9tSWQ6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihjb25mOiBUaXBQcmVzZXRDb25maWcpIHtcclxuICAgICAgICB0aGlzLmxhYmVsID0gY29uZi5sYWJlbDtcclxuICAgICAgICB0aGlzLnByZXNldHMgPSBjb25mLnByZXNldHM7XHJcbiAgICAgICAgdGhpcy5kb21JZCA9IHRoaXMubGFiZWwucmVwbGFjZSgvIC9nLCAnJykudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgbGV0IHRoZVN1bSA9IDA7XHJcblxyXG4gICAgICAgIGZvciAobGV0IHByIG9mIHRoaXMucHJlc2V0cyl7XHJcbiAgICAgICAgICAgIHRoZVN1bSArPSBwci52YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGVTdW0gIT0gMTAwKXtcclxuICAgICAgICAgICAgdGhyb3cgJ3ByZXNldCBzdW0gZG9lcyBub3RlIGVxdWFsIDEwMCc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuY2xhc3MgX1NsaWRlciB7XHJcbiAgICBfbWluOiBudW1iZXI7XHJcbiAgICBfbWF4OiBudW1iZXI7XHJcbiAgICBfbG9ja2VkOiBib29sZWFuO1xyXG4gICAgYXRNaW46IGJvb2xlYW47XHJcbiAgICBhdE1heDogYm9vbGVhbjtcclxuICAgIF93ZWlnaHREZWZhdWx0OiBudW1iZXI7XHJcbiAgICBfd2VpZ2h0OiBudW1iZXI7XHJcbiAgICBodG1sOiBzdHJpbmc7XHJcbiAgICBkb21JZDogc3RyaW5nO1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG5cclxuICAgIGxhYmVsTG93OiBKUXVlcnk7XHJcbiAgICBsYWJlbEhpZ2g6IEpRdWVyeTtcclxuICAgIGxhYmVsVmFsOiBKUXVlcnk7XHJcbiAgICBzbGlkZXI6IEpRdWVyeTtcclxuICAgIHNlbGVjdGlvbkJveDogSlF1ZXJ5O1xyXG4gICAgY2hrOiBKUXVlcnk7XHJcblxyXG4gICAgc2VsZWN0ZWRQYXJhbTogYW55O1xyXG4gICAgc2VsZWN0ZWRQYXJhbURlZmF1bHQ6IGFueTtcclxuICAgIF9kcm9wZG93blNlbGVjdGlvbjogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2xpZGVyIGNvbnN0cnVjdG9yXHJcbiAgICAgKiBAcGFyYW0gc2xpZGVyQ29uZmlnIC0gdGhlIGNvbmZpZ3VyYXRpb25cclxuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHNsaWRlckNvbmZpZzogVGlwU2xpZGVyQ29uZmlnKSB7XHJcbiAgICAgICAgdGhpcy5fZHJvcGRvd25TZWxlY3Rpb24gPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX3dlaWdodCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gc2xpZGVyQ29uZmlnLmxhYmVsO1xyXG4gICAgICAgIHRoaXMuZG9tSWQgPSB0aGlzLm5hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8gL2csICctJyk7XHJcblxyXG4gICAgICAgIHRoaXMuX2xvY2tlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLl9taW4gPSAwLjA7XHJcbiAgICAgICAgdGhpcy5fbWF4ID0gMTAwO1xyXG5cclxuICAgICAgICB0aGlzLmxhYmVsTG93ID0gbnVsbDtcclxuICAgICAgICB0aGlzLmxhYmVsSGlnaCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5sYWJlbFZhbCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5zbGlkZXIgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuY2hrID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5hdE1pbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuYXRNYXggPSBmYWxzZTtcclxuXHJcblxyXG4gICAgICAgIGxldCBzZWwgPSBgPHNlbGVjdCBjbGFzcz1cIiR7c2xpZGVyQ29uZmlnLnllYXJPcHRpb25zLmxlbmd0aCA9PSAxID8gJ2hpZGRlbi1zZWxlY3QnIDogJ3Nob3ctc2VsZWN0J31cIiBpZD1cIiR7dGhpcy5kb21JZH1fY2hnXCI+YDtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzbGlkZXJDb25maWcueWVhck9wdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0bSA9IHNsaWRlckNvbmZpZy55ZWFyT3B0aW9uc1tpXTtcclxuICAgICAgICAgICAgc2VsICs9IGA8b3B0aW9uIHZhbHVlPVwiJHtpdG0uY29sdW1ufVwiPiR7aXRtLmxhYmVsfTwvb3B0aW9uPmA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNlbCArPSAnPC9zZWxlY3Q+JztcclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmFtRGVmYXVsdCA9IHRoaXMuc2VsZWN0ZWRQYXJhbTtcclxuXHJcbiAgICAgICAgdGhpcy5odG1sID0gJzxkaXYgY2xhc3M9XCJzbGlkZXItZGl2XCI+JyArXHJcbiAgICAgICAgICAgIGA8bGFiZWwgZm9yPVwiJHt0aGlzLmRvbUlkfV9jaGtcIiBjbGFzcz1cInNsaWRlci1sYWJlbFwiPiR7dGhpcy5uYW1lfTwvbGFiZWw+YCArXHJcbiAgICAgICAgICAgIHNlbCArIGA8YnI+YCArXHJcbiAgICAgICAgICAgIGA8aW5wdXQgaWQ9XCIke3RoaXMuZG9tSWR9X2Noa1wiIHR5cGU9XCJjaGVja2JveFwiIHRpdGxlPVwiTG9jay9VbmxvY2sgU2xpZGVyXCI+YCArXHJcbiAgICAgICAgICAgIGA8bGFiZWwgaWQ9XCIke3RoaXMuZG9tSWR9X2xvd1wiIGNsYXNzPVwibG93LWhpZ2hcIj48L2xhYmVsPmAgK1xyXG4gICAgICAgICAgICBgPGlucHV0IGlkPVwiJHt0aGlzLmRvbUlkfVwiIHR5cGU9XCJyYW5nZVwiIHZhbHVlPVwiNTBcIiBtaW49XCIwXCIgbWF4PVwiMTAwXCIgc3RlcD1cIjAuMVwiPmAgK1xyXG4gICAgICAgICAgICBgPGxhYmVsIGlkPVwiJHt0aGlzLmRvbUlkfV9oaWdoXCIgY2xhc3M9XCJsb3ctaGlnaFwiPjwvbGFiZWw+YCArXHJcbiAgICAgICAgICAgIGA8bGFiZWwgaWQ9XCIke3RoaXMuZG9tSWR9X2xibFwiIGZvcj1cIiR7dGhpcy5kb21JZH1cIiBjbGFzcz1cInBlcmNlbnQtbGFiZWxcIj48L2xhYmVsPjwvZGl2PmA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhZGQgaHRtbCB0byBkb21cclxuICAgICAqIEBwYXJhbSB7alF1ZXJ5fSAkY29udGFpbmVyIC0gY29udGFpbmVyIGVsZW1lbnRcclxuICAgICAqL1xyXG4gICAgYWRkVG9Eb20oJGNvbnRhaW5lcikge1xyXG4gICAgICAgICRjb250YWluZXIuYXBwZW5kKHRoaXMuaHRtbCk7XHJcbiAgICAgICAgdGhpcy5sYWJlbExvdyA9ICQoYCMke3RoaXMuZG9tSWR9X2xvd2ApO1xyXG4gICAgICAgIHRoaXMubGFiZWxIaWdoID0gJChgIyR7dGhpcy5kb21JZH1faGlnaGApO1xyXG4gICAgICAgIHRoaXMubGFiZWxWYWwgPSAkKGAjJHt0aGlzLmRvbUlkfV9sYmxgKTtcclxuICAgICAgICB0aGlzLnNsaWRlciA9ICQoYCMke3RoaXMuZG9tSWR9YCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25Cb3ggPSAkKGAjJHt0aGlzLmRvbUlkfV9jaGdgKTtcclxuICAgICAgICB0aGlzLmNoayA9ICQoYCMke3RoaXMuZG9tSWR9X2Noa2ApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogaW5jcmVtZW50IHRoZSBzbGlkZXJcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkZWx0YSBjaGFuZ2UgZGVsdGFcclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IHRoZSByZW1haW5kZXIgbm90IGFibGUgdG8gYmUgYWxsb2NhdGVkIHRvIHRoaXMgc2xpZGVyXHJcbiAgICAgKi9cclxuICAgIGluY3JlbWVudChkZWx0YSkge1xyXG4gICAgICAgIGxldCByZW1haW5kZXIgPSAwO1xyXG4gICAgICAgIGRlbHRhID0gTnVtYmVyKGRlbHRhLnRvRml4ZWQoMSkpO1xyXG5cclxuICAgICAgICB0aGlzLl93ZWlnaHQgKz0gZGVsdGE7XHJcbiAgICAgICAgaWYgKHRoaXMuX3dlaWdodCA8IHRoaXMuX21pbikge1xyXG4gICAgICAgICAgICByZW1haW5kZXIgPSB0aGlzLl9taW4gLSB0aGlzLl93ZWlnaHQ7XHJcbiAgICAgICAgICAgIHRoaXMuX3dlaWdodCA9IHRoaXMuX21pbjtcclxuICAgICAgICAgICAgdGhpcy5hdE1pbiA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl93ZWlnaHQgPiB0aGlzLl9tYXgpIHtcclxuICAgICAgICAgICAgcmVtYWluZGVyID0gdGhpcy5fbWF4IC0gdGhpcy5fd2VpZ2h0O1xyXG4gICAgICAgICAgICB0aGlzLl93ZWlnaHQgPSB0aGlzLl9tYXg7XHJcbiAgICAgICAgICAgIHRoaXMuYXRNYXggPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXRNaW4gPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5hdE1heCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zbGlkZXIudmFsKHRoaXMuX3dlaWdodC50b0ZpeGVkKDEpKTtcclxuICAgICAgICB0aGlzLmxhYmVsVmFsLmh0bWwodGhpcy5fd2VpZ2h0LnRvRml4ZWQoMSkgKyAnJScpO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVtYWluZGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IHRoZSB2YWx1ZSBhbmQgZHJvcCBkb3duXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbmV3VmFsIHRoZSBuZXcgdmFsdWVcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZWxlY3RlZFBhcmFtIHRoZSBzZWxlY3RlZCBwYXJhbWV0ZXJcclxuICAgICAqL1xyXG4gICAgc2V0VmFsQW5kRHJvcERvd24obmV3VmFsOiBudW1iZXIsIHNlbGVjdGVkUGFyYW06IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMubWluID0gMDtcclxuICAgICAgICB0aGlzLm1heCA9IDEwMDtcclxuICAgICAgICB0aGlzLndlaWdodCA9IG5ld1ZhbDtcclxuICAgICAgICB0aGlzLnNsaWRlci52YWwobmV3VmFsLnRvRml4ZWQoMSkpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQm94LnZhbChzZWxlY3RlZFBhcmFtKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUGFyYW0gPSBzZWxlY3RlZFBhcmFtO1xyXG4gICAgICAgIHRoaXMubG9ja2VkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gaWYgbG9ja2VkXHJcbiAgICAgKi9cclxuICAgIGdldCBsb2NrZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2tlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHZhbCBpZiBsb2NrZWRcclxuICAgICAqL1xyXG4gICAgc2V0IGxvY2tlZCh2YWwpIHtcclxuICAgICAgICB0aGlzLl9sb2NrZWQgPSB2YWw7XHJcbiAgICAgICAgdGhpcy5zbGlkZXIucHJvcCgnZGlzYWJsZWQnLCB0aGlzLl9sb2NrZWQpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQm94LnByb3AoJ2Rpc2FibGVkJywgdGhpcy5fbG9ja2VkKTtcclxuICAgICAgICB0aGlzLmNoay5wcm9wKCdjaGVja2VkJywgIXRoaXMuX2xvY2tlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gdGhlIG1pbmltdW1cclxuICAgICAqL1xyXG4gICAgZ2V0IG1pbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWluO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBuZXdWYWwgbmV3IG1pbmltdW1cclxuICAgICAqL1xyXG4gICAgc2V0IG1pbihuZXdWYWwpIHtcclxuICAgICAgICB0aGlzLl9taW4gPSBOdW1iZXIobmV3VmFsLnRvRml4ZWQoMSkpO1xyXG4gICAgICAgIGlmICh0aGlzLl9taW4gPCAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX21pbiA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFiZWxMb3cuaHRtbCh0aGlzLl9taW4udG9GaXhlZCgxKSk7XHJcbiAgICAgICAgdGhpcy5zbGlkZXIuYXR0cignbWluJywgdGhpcy5fbWluLnRvRml4ZWQoMSkpO1xyXG4gICAgICAgIHRoaXMuYXRNaW4gPSB0aGlzLl93ZWlnaHQgPT0gdGhpcy5fbWluO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IHRoZSBtYXhpbXVtXHJcbiAgICAgKi9cclxuICAgIGdldCBtYXgoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbmV3VmFsIHRoZSBtYXhpbXVtXHJcbiAgICAgKi9cclxuICAgIHNldCBtYXgobmV3VmFsKSB7XHJcbiAgICAgICAgdGhpcy5fbWF4ID0gTnVtYmVyKG5ld1ZhbC50b0ZpeGVkKDEpKTtcclxuICAgICAgICBpZiAodGhpcy5fbWF4ID4gMTAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX21heCA9IDEwMC4wO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxhYmVsSGlnaC5odG1sKHRoaXMuX21heC50b0ZpeGVkKDEpKTtcclxuICAgICAgICB0aGlzLnNsaWRlci5hdHRyKCdtYXgnLCB0aGlzLl9tYXgudG9GaXhlZCgxKSk7XHJcbiAgICAgICAgdGhpcy5hdE1heCA9IHRoaXMuX3dlaWdodCA9PSB0aGlzLl9tYXg7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gdGhlIHdlaWdodFxyXG4gICAgICovXHJcbiAgICBnZXQgd2VpZ2h0KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl93ZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG5ld1ZhbCB0aGUgd2VpZ2h0XHJcbiAgICAgKi9cclxuICAgIHNldCB3ZWlnaHQobmV3VmFsKSB7XHJcbiAgICAgICAgdGhpcy5fd2VpZ2h0ID0gTnVtYmVyKG5ld1ZhbC50b0ZpeGVkKDEpKTtcclxuICAgICAgICB0aGlzLmxhYmVsVmFsLmh0bWwodGhpcy5fd2VpZ2h0LnRvRml4ZWQoMSkgKyAnJScpO1xyXG4gICAgICAgIGlmICh0aGlzLl93ZWlnaHQgPD0gdGhpcy5fbWluKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXRNaW4gPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmF0TWF4ID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl93ZWlnaHQgPj0gdGhpcy5fbWF4KSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXRNaW4gPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5hdE1heCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hdE1pbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmF0TWF4ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5ubS5fU2xpZGVyID0gX1NsaWRlcjtcclxuXHJcblxyXG4vKipcclxuICogY2xhc3MgdG8ga2VlcCB0cmFjayBvZiB0aGUgc2xpZGVyc1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRpcFNsaWRlcnMge1xyXG4gICAgJGNvbnRhaW5lcjogSlF1ZXJ5O1xyXG4gICAgcmVzZXJ2ZWRQZXJjZW50OiBudW1iZXI7XHJcbiAgICBsb2NrZWRDb3VudDogbnVtYmVyO1xyXG4gICAgbm90TG9ja2VkQ291bnQ6IG51bWJlcjtcclxuICAgIHByaXZhdGUgX3NsaWRlckxpc3Q6IEFycmF5PF9TbGlkZXI+O1xyXG4gICAgcHJpdmF0ZSBfc2xpZGVyTG9va3VwOiB7W3M6IHN0cmluZ106IF9TbGlkZXJ9O1xyXG4gICAgcHJpdmF0ZSByZXNldHRpbmc6IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIF9jaGFuZ2VkQ2FsbGJhY2s6IENoYW5nZUNhbGxiYWNrO1xyXG5cclxuICAgIHByaXZhdGUgX2xvY2tlZExpc3Q6IEFycmF5PF9TbGlkZXI+O1xyXG4gICAgcHJpdmF0ZSBfaW5SYW5nZUxpc3Q6IEFycmF5PF9TbGlkZXI+O1xyXG4gICAgcHJpdmF0ZSBfYXRNaW5MaXN0OiBBcnJheTxfU2xpZGVyPjtcclxuICAgIHByaXZhdGUgX2F0TWF4TGlzdDogQXJyYXk8X1NsaWRlcj47XHJcblxyXG4gICAgcHJpdmF0ZSBfcHJlc2V0QXJyYXk6IEFycmF5PFRpcFByZXNldHM+O1xyXG4gICAgcHJpdmF0ZSBfcHJlc2V0TG9va3VwOiB7W3M6IHN0cmluZ106IFRpcFByZXNldHN9O1xyXG5cclxuICAgIHByaXZhdGUgXyRwcmVzZXRTZWxlY3RvcjogSlF1ZXJ5O1xyXG4gICAgcHJpdmF0ZSBfJHJlZ2lvblNlbGVjdG9yOiBKUXVlcnk7XHJcbiAgICBwcml2YXRlIF8kdmVyc2lvblNlbGVjdG9yOiBKUXVlcnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHNsaWRlckNvbmZpZ3NcclxuICAgICAqIEBwYXJhbSBwcmVzZXRDb25maWdcclxuICAgICAqIEBwYXJhbSBkaXZJZFxyXG4gICAgICogQHBhcmFtIHByZXNldFNlbGVjdG9yXHJcbiAgICAgKiBAcGFyYW0gcmVnaW9uU2VsZWN0b3JcclxuICAgICAqIEBwYXJhbSB2ZXJzaW9uU2VsZWN0b3JcclxuICAgICAqIEBwYXJhbSBjaGdDYWxsYmFja1xyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihzbGlkZXJDb25maWdzOiBBcnJheTxUaXBTbGlkZXJDb25maWc+LCBwcmVzZXRDb25maWc6IEFycmF5PFRpcFByZXNldENvbmZpZz4sXHJcbiAgICAgICAgICAgICAgICBkaXZJZDogc3RyaW5nLCBwcmVzZXRTZWxlY3RvcjogSlF1ZXJ5LCByZWdpb25TZWxlY3RvcjogSlF1ZXJ5LCB2ZXJzaW9uU2VsZWN0b3I6IEpRdWVyeSxcclxuICAgICAgICAgICAgICAgIGNoZ0NhbGxiYWNrPzogQ2hhbmdlQ2FsbGJhY2spIHtcclxuXHJcbiAgICAgICAgdGhpcy5yZXNldHRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlc2VydmVkUGVyY2VudCA9IDAuMDtcclxuICAgICAgICB0aGlzLiRjb250YWluZXIgPSAkKCcjJyArIGRpdklkKTtcclxuICAgICAgICB0aGlzLiRjb250YWluZXIuYWRkQ2xhc3MoJ3NsaWRlci1jb250YWluZXInKTtcclxuXHJcbiAgICAgICAgdGhpcy5fY2hhbmdlZENhbGxiYWNrID0gdHlwZW9mIGNoZ0NhbGxiYWNrID09ICdmdW5jdGlvbicgPyBjaGdDYWxsYmFjayA6ICgpID0+IHt9O1xyXG5cclxuICAgICAgICB0aGlzLl8kcHJlc2V0U2VsZWN0b3IgPSBwcmVzZXRTZWxlY3RvcjtcclxuICAgICAgICB0aGlzLl8kcmVnaW9uU2VsZWN0b3IgPSByZWdpb25TZWxlY3RvcjtcclxuICAgICAgICB0aGlzLl8kdmVyc2lvblNlbGVjdG9yID0gdmVyc2lvblNlbGVjdG9yO1xyXG5cclxuICAgICAgICB0aGlzLl9zbGlkZXJMaXN0ID0gW107XHJcbiAgICAgICAgdGhpcy5fc2xpZGVyTG9va3VwID0ge307XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2xpZGVyQ29uZmlncy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgc2xkID0gbmV3IF9TbGlkZXIoc2xpZGVyQ29uZmlnc1tpXSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NsaWRlckxpc3QucHVzaChzbGQpO1xyXG4gICAgICAgICAgICB0aGlzLl9zbGlkZXJMb29rdXBbc2xkLmRvbUlkXSA9IHNsZDtcclxuICAgICAgICAgICAgc2xkLmFkZFRvRG9tKHRoaXMuJGNvbnRhaW5lcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9wcmVzZXRBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3ByZXNldExvb2t1cCA9IHt9O1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByZXNldENvbmZpZy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgcHJlc2V0ID0gbmV3IFRpcFByZXNldHMocHJlc2V0Q29uZmlnW2ldKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBpZHggPSAoaSArIDEpLnRvRml4ZWQoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3ByZXNldExvb2t1cFtpZHhdID0gcHJlc2V0O1xyXG4gICAgICAgICAgICB0aGlzLl9wcmVzZXRBcnJheS5wdXNoKHByZXNldCk7XHJcbiAgICAgICAgICAgIHRoaXMuXyRwcmVzZXRTZWxlY3Rvci5hcHBlbmQoYDxvcHRpb24gdmFsdWU9XCIke2lkeH1cIj4ke3ByZXNldC5sYWJlbH08L29wdGlvbj5gKTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9sb2NrZWRMaXN0ID0gW107XHJcbiAgICAgICAgdGhpcy5faW5SYW5nZUxpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLl9hdE1pbkxpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLl9hdE1heExpc3QgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5sb2NrZWRDb3VudCA9IDEwO1xyXG4gICAgICAgIHRoaXMubm90TG9ja2VkQ291bnQgPSAwO1xyXG5cclxuICAgICAgICB0aGlzLl9zcGxpdFNsaWRlckFycmF5KCk7XHJcblxyXG5cclxuICAgICAgICB0aGlzLl8kcHJlc2V0U2VsZWN0b3IuY2hhbmdlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRQcmVzZXRWYWx1ZXMoKTtcclxuICAgICAgICAgICAgdGhpcy5fcnVuQ2hhbmdlZENhbGxiYWNrKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuXyRyZWdpb25TZWxlY3Rvci5jaGFuZ2UoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9ydW5DaGFuZ2VkQ2FsbGJhY2soKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHZlcnNpb25TZWxlY3Rvci5jaGFuZ2UoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9ydW5DaGFuZ2VkQ2FsbGJhY2soKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHByZXNldFNlbGVjdG9yLnRyaWdnZXIoJ2NoYW5nZScpO1xyXG5cclxuICAgICAgICB0aGlzLl9hZGRFdmVudExpc3RlbmVycygpO1xyXG4gICAgfVxyXG5cclxuICAgIF9ydW5DaGFuZ2VkQ2FsbGJhY2soKXtcclxuICAgICAgICB0aGlzLl9jaGFuZ2VkQ2FsbGJhY2sodGhpcy5wYXJhbVdlaWdodHNSZWdpb25WZXJzaW9uKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY2hhbmdlZENhbGxiYWNrKCk6IENoYW5nZUNhbGxiYWNre1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jaGFuZ2VkQ2FsbGJhY2tcclxuICAgIH1cclxuXHJcbiAgICBzZXQgY2hhbmdlZENhbGxiYWNrKGNoZzogQ2hhbmdlQ2FsbGJhY2spe1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZWRDYWxsYmFjayA9IGNoZztcclxuICAgICAgICB0aGlzLl9ydW5DaGFuZ2VkQ2FsbGJhY2soKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRQcmVzZXRWYWx1ZXMoKSB7XHJcbiAgICAgICAgbGV0IGlkeCA9IHRoaXMuXyRwcmVzZXRTZWxlY3Rvci52YWwoKSB8fCAnMSc7XHJcblxyXG4gICAgICAgIGxldCB0aGVQcmVzZXQgPSB0aGlzLl9wcmVzZXRMb29rdXBbaWR4XTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGVQcmVzZXQucHJlc2V0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgcHJlc2V0VmFsdWVzID0gdGhlUHJlc2V0LnByZXNldHNbaV07XHJcbiAgICAgICAgICAgIGxldCB0aGVTbGlkZXIgPSB0aGlzLl9zbGlkZXJMaXN0W2ldO1xyXG5cclxuICAgICAgICAgICAgdGhlU2xpZGVyLmxvY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoZVNsaWRlci5zZXRWYWxBbmREcm9wRG93bihwcmVzZXRWYWx1ZXMudmFsdWUsIHByZXNldFZhbHVlcy5jb2x1bW4pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNwbGl0IGFycmF5IGludG8gc3ViYXJyYXlzIGhvbGRpbmcgdGhlIHNsaWRlcnNcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIF9zcGxpdFNsaWRlckFycmF5KCkge1xyXG4gICAgICAgIHRoaXMuX2xvY2tlZExpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLl9pblJhbmdlTGlzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMuX2F0TWluTGlzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMuX2F0TWF4TGlzdCA9IFtdO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3NsaWRlckxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IHNsZCA9IHRoaXMuX3NsaWRlckxpc3RbaV07XHJcblxyXG4gICAgICAgICAgICBpZiAoc2xkLmxvY2tlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbG9ja2VkTGlzdC5wdXNoKHNsZCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc2xkLmF0TWluKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hdE1pbkxpc3QucHVzaChzbGQpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNsZC5hdE1heCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYXRNYXhMaXN0LnB1c2goc2xkKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2luUmFuZ2VMaXN0LnB1c2goc2xkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxvY2tlZENvdW50ID0gdGhpcy5fbG9ja2VkTGlzdC5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5ub3RMb2NrZWRDb3VudCA9IHRoaXMuX3NsaWRlckxpc3QubGVuZ3RoIC0gdGhpcy5sb2NrZWRDb3VudDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGhhbmRsZSByZW1haW5kZXIsIHJlY3Vyc2l2ZSB0byB0YWtlIGNhcmUgb2YgbWluIG1heCBvdmVyc2hvb3RzXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcmVtYWluIHRoZSByZW1haW5kZXJcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBza2lwRG9tSWQgLSB0aGlzIGRvbSBpZFxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgX2hhbmRsZVJlbWFpbmRlcihyZW1haW4sIHNraXBEb21JZCkge1xyXG5cclxuICAgICAgICByZW1haW4gPSBOdW1iZXIocmVtYWluLnRvRml4ZWQoMSkpO1xyXG4gICAgICAgIGlmIChyZW1haW4gPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zcGxpdFNsaWRlckFycmF5KCk7XHJcblxyXG4gICAgICAgIGxldCBjYW5DaGFuZ2VBcnJheSA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5faW5SYW5nZUxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IHNsZCA9IHRoaXMuX2luUmFuZ2VMaXN0W2ldO1xyXG4gICAgICAgICAgICBpZiAoc2xkLmRvbUlkID09IHNraXBEb21JZCkge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FuQ2hhbmdlQXJyYXkucHVzaChzbGQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlbWFpbiA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9hdE1heExpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCBzbGQgPSB0aGlzLl9hdE1heExpc3RbaV07XHJcbiAgICAgICAgICAgICAgICBpZiAoc2xkLmRvbUlkID09IHNraXBEb21JZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2FuQ2hhbmdlQXJyYXkucHVzaChzbGQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9hdE1pbkxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCBzbGQgPSB0aGlzLl9hdE1pbkxpc3RbaV07XHJcbiAgICAgICAgICAgICAgICBpZiAoc2xkLmRvbUlkID09IHNraXBEb21JZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2FuQ2hhbmdlQXJyYXkucHVzaChzbGQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2FuQ2hhbmdlQXJyYXkubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGluYyA9IC0xICogTnVtYmVyKChyZW1haW4gLyBjYW5DaGFuZ2VBcnJheS5sZW5ndGgpLnRvRml4ZWQoMSkpO1xyXG5cclxuICAgICAgICBsZXQgbmV3UmVtYWluZGVyID0gMDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbkNoYW5nZUFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIG5ld1JlbWFpbmRlciArPSBjYW5DaGFuZ2VBcnJheVtpXS5pbmNyZW1lbnQoaW5jKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2hhbmRsZVJlbWFpbmRlcihuZXdSZW1haW5kZXIsIHNraXBEb21JZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGtleVZhbExpc3Qga2V5IGFuZCB2YWx1ZSBsaXN0XHJcbiAgICAgKi9cclxuICAgIHNldFZhbHVlcyhrZXlWYWxMaXN0KSB7XHJcbiAgICAgICAgdGhpcy5yZXNldHRpbmcgPSB0cnVlO1xyXG4gICAgICAgIGZvciAobGV0IGsgaW4ga2V5VmFsTGlzdCkge1xyXG4gICAgICAgICAgICBpZiAoa2V5VmFsTGlzdC5oYXNPd25Qcm9wZXJ0eShrKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc2xpZGVyTG9va3VwW2tdLnNldFZhbEFuZERyb3BEb3duKGtleVZhbExpc3Rba11bMF0sIGtleVZhbExpc3Rba11bMV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmVzZXR0aW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIHdlaWdodCBzdW1cclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IHRoZSB3ZWlnaHQgc3VtXHJcbiAgICAgKi9cclxuICAgIGdldFN1bSgpIHtcclxuICAgICAgICBsZXQgdG90YWwgPSAwO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fc2xpZGVyTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgc2xkID0gdGhpcy5fc2xpZGVyTGlzdFtpXTtcclxuICAgICAgICAgICAgdG90YWwgKz0gTnVtYmVyKHNsZC53ZWlnaHQudG9GaXhlZCgxKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdG90YWw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIHBhcmFtZXRlciB3ZWlnaHRzXHJcbiAgICAgKiBAcmV0dXJucyB7b2JqZWN0fSBsb29rdXAgd2l0aCBwYXJhbWV0ZXIgd2VpZ2h0c1xyXG4gICAgICovXHJcbiAgICBnZXRQYXJhbXMoKSB7XHJcbiAgICAgICAgbGV0IHBhcmFtV2VpZ2h0cyA9IHt9O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fc2xpZGVyTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgc2xkID0gdGhpcy5fc2xpZGVyTGlzdFtpXTtcclxuICAgICAgICAgICAgcGFyYW1XZWlnaHRzW3NsZC5zZWxlY3RlZFBhcmFtXSA9IE51bWJlcihzbGQud2VpZ2h0LnRvRml4ZWQoMSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHBhcmFtV2VpZ2h0cztcclxuICAgIH1cclxuXHJcbiAgICBfYWRkRXZlbnRMaXN0ZW5lcnMoKSB7XHJcbiAgICAgICAgbGV0IF9fX3RoaXMgPSB0aGlzO1xyXG5cclxuXHJcbiAgICAgICAgLy9jaGFuZ2UgZnVuY3Rpb25cclxuICAgICAgICB0aGlzLiRjb250YWluZXIuZmluZCgnaW5wdXRbdHlwZT1cInJhbmdlXCJdJykuY2hhbmdlKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIGlmIChfX190aGlzLnJlc2V0dGluZykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgJHRoaXMgPSAkKHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgbGV0IGRvbUlkID0gdGhpc1snaWQnXTtcclxuICAgICAgICAgICAgICAgIGxldCBzbGRyID0gX19fdGhpcy5fc2xpZGVyTG9va3VwW2RvbUlkXTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWUgPSBwYXJzZUZsb2F0KCR0aGlzLnZhbCgpKTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgb2xkVmFsdWUgPSBzbGRyLndlaWdodDtcclxuICAgICAgICAgICAgICAgIGxldCBkaWZmID0gbmV3VmFsdWUgLSBvbGRWYWx1ZTtcclxuICAgICAgICAgICAgICAgIGRpZmYgPSBOdW1iZXIoZGlmZi50b0ZpeGVkKDEpKTtcclxuXHJcbiAgICAgICAgICAgICAgICBzbGRyLndlaWdodCA9IE51bWJlcihuZXdWYWx1ZS50b0ZpeGVkKDEpKTtcclxuXHJcbiAgICAgICAgICAgICAgICBfX190aGlzLl9oYW5kbGVSZW1haW5kZXIoZGlmZiwgZG9tSWQpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vY2xlYW51cCwgbWFrZSBzdXJlIHRoZSBzdW0gaXMgc3RpbGwgMTAwXHJcbiAgICAgICAgICAgICAgICBsZXQgc3VtID0gTnVtYmVyKF9fX3RoaXMuZ2V0U3VtKCkudG9GaXhlZCgxKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHN1bSA+IDEwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxvb3AxOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBfX190aGlzLl9zbGlkZXJMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNsZCA9IF9fX3RoaXMuX3NsaWRlckxpc3RbaV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNsZC5kb21JZCA9PSBkb21JZCB8fCBzbGQubG9ja2VkIHx8IHNsZC5hdE1pbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xkLmluY3JlbWVudCgtMC4xKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW0gLT0gMC4xO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdW0udG9GaXhlZCgxKSA9PSAnMTAwLjAnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGxvb3AxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdW0gPCAxMDApIHtcclxuICAgICAgICAgICAgICAgICAgICBsb29wMTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgX19fdGhpcy5fc2xpZGVyTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzbGQgPSBfX190aGlzLl9zbGlkZXJMaXN0W2ldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzbGQuZG9tSWQgPT0gZG9tSWQgfHwgc2xkLmxvY2tlZCB8fCBzbGQuYXRNYXgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsZC5pbmNyZW1lbnQoMC4xKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW0gKz0gMC4xO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdW0udG9GaXhlZCgxKSA9PSAnMTAwLjAnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGxvb3AxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIF9fX3RoaXMuXyRwcmVzZXRTZWxlY3Rvci52YWwoJzAnKTtcclxuICAgICAgICAgICAgICAgIF9fX3RoaXMuX3J1bkNoYW5nZWRDYWxsYmFjaygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgLy91cGRhdGUgdGhlIHNlbGVjdGVkIHBhcmFtZXRlciB3aGVuIHRoZSBzZWxlY3Rpb24gaXMgY2hhbmdlZFxyXG4gICAgICAgICQoJy5zaG93LXNlbGVjdCcpLmNoYW5nZShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChfX190aGlzLnJlc2V0dGluZykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF9fX3RoaXMuX3NsaWRlckxvb2t1cFt0aGlzWydpZCddLnJlcGxhY2UoJ19jaGcnLCAnJyldLnNlbGVjdGVkUGFyYW0gPSAkKHRoaXMpLnZhbCgpO1xyXG5cclxuICAgICAgICAgICAgX19fdGhpcy5fJHByZXNldFNlbGVjdG9yLnZhbCgnMCcpO1xyXG5cclxuICAgICAgICAgICAgX19fdGhpcy5fcnVuQ2hhbmdlZENhbGxiYWNrKCk7XHJcblxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvL2xvY2sgdGhlIHNsaWRlciBhbmQgdXBkYXRlIHRoZSByZXNlcnZlZCBwZXJjZW50XHJcbiAgICAgICAgdGhpcy4kY29udGFpbmVyLmZpbmQoJ2lucHV0W3R5cGU9XCJjaGVja2JveFwiXScpLmNoYW5nZShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGxldCBkb21FbCA9IHRoaXM7XHJcblxyXG4gICAgICAgICAgICBfX190aGlzLl9zbGlkZXJMb29rdXBbZG9tRWwuaWQucmVwbGFjZSgnX2NoaycsICcnKV0ubG9ja2VkID0gIWRvbUVsLmNoZWNrZWQ7XHJcbiAgICAgICAgICAgIF9fX3RoaXMucmVzZXJ2ZWRQZXJjZW50ID0gMC4wO1xyXG4gICAgICAgICAgICBfX190aGlzLm5vdExvY2tlZENvdW50ID0gMDtcclxuXHJcbiAgICAgICAgICAgIGxldCBub3RMb2NrZWRTbGlkZXJzID0gW107XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IF9fX3RoaXMuX3NsaWRlckxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCBzbGQgPSBfX190aGlzLl9zbGlkZXJMaXN0W2ldO1xyXG4gICAgICAgICAgICAgICAgaWYgKHNsZC5sb2NrZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBfX190aGlzLnJlc2VydmVkUGVyY2VudCArPSBzbGQud2VpZ2h0O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgbm90TG9ja2VkU2xpZGVycy5wdXNoKHNsZCk7XHJcbiAgICAgICAgICAgICAgICBfX190aGlzLm5vdExvY2tlZENvdW50Kys7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgX19fdGhpcy5fc2xpZGVyTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHNsZCA9IF9fX3RoaXMuX3NsaWRlckxpc3RbaV07XHJcbiAgICAgICAgICAgICAgICBpZiAoc2xkLmxvY2tlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgc2xkLm1heCA9IDEwMCAtIF9fX3RoaXMucmVzZXJ2ZWRQZXJjZW50O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAobm90TG9ja2VkU2xpZGVycy5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgbm90TG9ja2VkU2xpZGVyc1swXS5taW4gPSBub3RMb2NrZWRTbGlkZXJzWzBdLndlaWdodDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm90TG9ja2VkU2xpZGVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIG5vdExvY2tlZFNsaWRlcnNbaV0ubWluID0gMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBnZXQgcGFyYW1XZWlnaHRzUmVnaW9uVmVyc2lvbigpOiBDaGFuZ2VSZXNwb25zZXtcclxuICAgICAgICByZXR1cm4ge3BhcmFtV2VpZ2h0czogdGhpcy5nZXRQYXJhbXMoKSxcclxuICAgICAgICAgICAgcmVnaW9uOiB0aGlzLl8kcmVnaW9uU2VsZWN0b3IudmFsKCkgYXMgc3RyaW5nLCBtbVZlcnNpb246IHRoaXMuXyR2ZXJzaW9uU2VsZWN0b3IudmFsKCkgYXMgc3RyaW5nfVxyXG4gICAgfVxyXG59XHJcblxyXG5ubS5TbGlkZXJzID0gVGlwU2xpZGVycztcclxuZXhwb3J0IGRlZmF1bHQgVGlwU2xpZGVycztcclxuIl19 /***/ }), -/***/ 42: +/***/ 41: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -657,9 +650,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); /** * Created by gavorhes on 6/22/2016. */ -var Sliders_1 = __webpack_require__(23); +var Sliders_1 = __webpack_require__(22); var $ = __webpack_require__(1); -__webpack_require__(18); +__webpack_require__(1); exports.tipConfig = { $loadingGif: $('#loading-gif'), $presetSelector: $('#preset-selector'), @@ -837,7 +830,7 @@ var sliders = new Sliders_1.TipSliders(exports.tipConfig.slidersConfig, exports. window['glob'] = sliders; window['hat'] = sliders; window['bird'] = sliders; - +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLXRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzbGlkZXItdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOztHQUVHO0FBQ0gseURBQTJGO0FBQzNGLDBCQUE2QjtBQUU3QixxQkFBbUI7QUFtQk4sUUFBQSxTQUFTLEdBQUc7SUFDckIsV0FBVyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUM7SUFDOUIsZUFBZSxFQUFFLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztJQUN0QyxlQUFlLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO0lBQ3RDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztJQUN4QyxzQkFBc0IsRUFBRSxFQUFFO0lBQzFCLGFBQWEsRUFBRTtRQUNQO1lBQ0ksS0FBSyxFQUFFLE1BQU07WUFDYixXQUFXLEVBQUU7Z0JBQ1QsRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUM7YUFDbkM7U0FDSjtRQUNEO1lBQ0ksS0FBSyxFQUFFLGFBQWE7WUFDcEIsV0FBVyxFQUFFO2dCQUNULEVBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFDO2dCQUNoQyxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBQztnQkFDbEMsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUM7Z0JBQ2xDLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFDO2FBQ3JDO1NBQ0o7UUFDRDtZQUNJLEtBQUssRUFBRSxRQUFRO1lBQ2YsV0FBVyxFQUFFO2dCQUNULEVBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFDO2dCQUNoQyxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBQztnQkFDbEMsRUFBQyxLQUFLLEVBQUUsSUFBSSxF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aEIsaUJBQVMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLDZDQUE2QyxDQUFDLENBQUM7QUFFaEYsSUFBSSxPQUFPLEdBQUcsSUFBSSxvQkFBVSxDQUFDLGlCQUFTLENBQUMsYUFBYSxFQUFFLGlCQUFTLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUM1RixpQkFBUyxDQUFDLGVBQWUsRUFBRSxpQkFBUyxDQUFDLGVBQWUsRUFBRSxpQkFBUyxDQUFDLGVBQWUsRUFBRSxVQUFDLEdBQUcsSUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUM7QUFFbEgseURBQXlEO0FBRXpELE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUM7QUFDekIsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQztBQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gNi8yMi8yMDE2LlxyXG4gKi9cclxuaW1wb3J0IHtUaXBTbGlkZXJzLCBUaXBQcmVzZXRDb25maWcsIFRpcFNsaWRlckNvbmZpZ30gZnJvbSAnLi4vLi4vc3JjL2NvbGxlY3Rpb25zL1NsaWRlcnMnO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5pbXBvcnQgb2wgPSByZXF1aXJlKCdjdXN0b20tb2wnKTtcclxuaW1wb3J0ICdqcXVlcnktdWknO1xyXG5cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElUaXBDb25maWd7XHJcbiAgICBzbGlkZXJzQ29uZmlnOiBBcnJheTxUaXBTbGlkZXJDb25maWc+O1xyXG4gICAgcHJlc2V0Q29uZmlnOiBBcnJheTxUaXBQcmVzZXRDb25maWc+O1xyXG4gICAgdGlwU2VnbWVudExheWVyTWluWm9vbTogbnVtYmVyO1xyXG4gICAgc2xpZGVyczogVGlwU2xpZGVycztcclxuICAgIF9tYXA6IG9sLk1hcDtcclxuICAgICRsb2FkaW5nR2lmOiBKUXVlcnk7XHJcbiAgICAkcHJlc2V0U2VsZWN0b3I6IEpRdWVyeTtcclxuICAgICRyZWdpb25TZWxlY3RvcjogSlF1ZXJ5O1xyXG4gICAgJHZlcnNpb25TZWxlY3RvcjogSlF1ZXJ5O1xyXG4gICAgaXRzTGF5ZXJDb2xsZWN0aW9uOiBhbnk7XHJcbiAgICB0aXBTZWdtZW50TGF5ZXI6IGFueTtcclxuICAgIG1ldGFtYW5hZ2VyU2VnbWVudHM6IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHRpcENvbmZpZyA9IHtcclxuICAgICRsb2FkaW5nR2lmOiAkKCcjbG9hZGluZy1naWYnKSxcclxuICAgICRwcmVzZXRTZWxlY3RvcjogJCgnI3ByZXNldC1zZWxlY3RvcicpLFxyXG4gICAgJHJlZ2lvblNlbGVjdG9yOiAkKCcjcmVnaW9uLXNlbGVjdG9yJyksXHJcbiAgICAkdmVyc2lvblNlbGVjdG9yOiAkKCcjdmVyc2lvbi1zZWxlY3RvcicpLFxyXG4gICAgdGlwU2VnbWVudExheWVyTWluWm9vbTogMTAsXHJcbiAgICBzbGlkZXJzQ29uZmlnOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnQUFEVCcsXHJcbiAgICAgICAgICAgICAgICB5ZWFyT3B0aW9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbDogJzEnLCBjb2x1bW46ICdhYWR0eXJfMSd9XHJcbiAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnQUFEVCBGdXR1cmUnLFxyXG4gICAgICAgICAgICAgICAgeWVhck9wdGlvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7bGFiZWw6ICc1JywgY29sdW1uOiAnYWFkdHlyXzUnfSxcclxuICAgICAgICAgICAgICAgICAgICB7bGFiZWw6ICcxMCcsIGNvbHVtbjogJ2FhZHR5cl8xMCd9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbDogJzE1JywgY29sdW1uOiAnYWFkdHlyXzE1J30sXHJcbiAgICAgICAgICAgICAgICAgICAge2xhYmVsOiAnMjAnLCBjb2x1bW46ICdhYWR0eXJfMjAnfVxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0dyb3d0aCcsXHJcbiAgICAgICAgICAgICAgICB5ZWFyT3B0aW9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbDogJzUnLCBjb2x1bW46ICdncm93dGhfNSd9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbDogJzEwJywgY29sdW1uOiAnZ3Jvd3RoXzEwJ30sXHJcbiAgICAgICAgICAgICAgICAgICAge2xhYmVsOiAnMTUnLCBjb2x1bW46ICdncm93dGhfMTUnfSxcclxuICAgICAgICAgICAgICAgICAgICB7bGFiZWw6ICcyMCcsIGNvbHVtbjogJ2dyb3d0aF8yMCd9XHJcbiAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnVHJ1Y2snLFxyXG4gICAgICAgICAgICAgICAgeWVhck9wdGlvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7bGFiZWw6ICcxJywgY29sdW1uOiAndHJrZHlyXzEnfSxcclxuICAgICAgICAgICAgICAgICAgICB7bGFiZWw6ICcyMCcsIGNvbHVtbjogJ3Rya2R5cl8yMCd9XHJcbiAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnTE9TJyxcclxuICAgICAgICAgICAgICAgIHllYXJPcHRpb25zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge2xhYmVsOiAnMScsIGNvbHVtbjogJ2xvc3lyXzEnfVxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0xPUyBGdXR1cmUnLFxyXG4gICAgICAgICAgICAgICAgeWVhck9wdGlvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7bGFiZWw6ICc1JywgY29sdW1uOiAnbG9zeXJfNSd9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbDogJzEwJywgY29sdW1uOiAnbG9zeXJfMTAnfSxcclxuICAgICAgICAgICAgICAgICAgICB7bGFiZWw6ICcxNScsIGNvbHVtbjogJ2xvc3lyXzE1J30sXHJcbiAgICAgICAgICAgICAgICAgICAge2xhYmVsOiAnMjAnLCBjb2x1bW46ICdsb3N5cl8yMCd9XHJcbiAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnQ3Jhc2ggUmF0ZScsXHJcbiAgICAgICAgICAgICAgICB5ZWFyT3B0aW9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbDogMSwgY29sdW1uOiAnY3Jhc2hfcmF0ZSd9XHJcbiAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnU2V2ZXJpdHknLFxyXG4gICAgICAgICAgICAgICAgeWVhck9wdGlvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7bGFiZWw6IDEsIGNvbHVtbjogJ2NyYXNoX3NldmVyaXR5J31cclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdXZWF0aGVyJyxcclxuICAgICAgICAgICAgICAgIHllYXJPcHRpb25zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge2xhYmVsOiAxLCBjb2x1bW46ICd3ZWF0aGVyJ31cclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdFdmVudCcsXHJcbiAgICAgICAgICAgICAgICB5ZWFyT3B0aW9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbDogMSwgY29sdW1uOiAnZXZlbnQnfVxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXSBhcyBBcnJheTxUaXBTbGlkZXJDb25maWc+LFxyXG4gICAgcHJlc2V0Q29uZmlnOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnRGVmYXVsdCBUSVAnLFxyXG4gICAgICAgICAgICAgICAgcHJlc2V0czogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdhYWR0eXJfMScsIHZhbHVlOiAxMC4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnYWFkdHlyXzIwJywgdmFsdWU6IDcuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2dyb3d0aF8yMCcsIHZhbHVlOiA3LjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICd0cmtkeXJfMScsIHZhbHVlOiA0LjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdsb3N5cl8xJywgdmFsdWU6IDEyLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdsb3N5cl8yMCcsIHZhbHVlOiAxMi4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnY3Jhc2hfcmF0ZScsIHZhbHVlOiAxNS4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnY3Jhc2hfc2V2ZXJpdHknLCB2YWx1ZTogMTMuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ3dlYXRoZXInLCB2YWx1ZTogOS4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnZXZlbnQnLCB2YWx1ZTogMTEuMH1cclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdTYWZldHknLFxyXG4gICAgICAgICAgICAgICAgcHJlc2V0czogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdhYWR0eXJfMScsIHZhbHVlOiAyMC4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnYWFkdHlyXzIwJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2dyb3d0aF8yMCcsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICd0cmtkeXJfMScsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdsb3N5cl8xJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2xvc3lyXzIwJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2NyYXNoX3JhdGUnLCB2YWx1ZTogNDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2NyYXNoX3NldmVyaXR5JywgdmFsdWU6IDQwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICd3ZWF0aGVyJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2V2ZW50JywgdmFsdWU6IDAuMH1cclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdNb2JpbGl0eSBQcmVzZW50JyxcclxuICAgICAgICAgICAgICAgIHByZXNldHM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnYWFkdHlyXzEnLCB2YWx1ZTogMjUuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2FhZHR5cl8yMCcsIHZhbHVlOiAyNS4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnZ3Jvd3RoXzIwJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ3Rya2R5cl8xJywgdmFsdWU6IDI1LjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdsb3N5cl8xJywgdmFsdWU6IDI1LjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdsb3N5cl8yMCcsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdjcmFzaF9yYXRlJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2NyYXNoX3NldmVyaXR5JywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ3dlYXRoZXInLCB2YWx1ZTogMC4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnZXZlbnQnLCB2YWx1ZTogMC4wfVxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ01vYmlsaXR5IEZ1dHVyZScsXHJcbiAgICAgICAgICAgICAgICBwcmVzZXRzOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2FhZHR5cl8xJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2FhZHR5cl8yMCcsIHZhbHVlOiAyNS4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnZ3Jvd3RoXzIwJywgdmFsdWU6IDI1LjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICd0cmtkeXJfMScsIHZhbHVlOiAyNS4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnbG9zeXJfMScsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdsb3N5cl8yMCcsIHZhbHVlOiAyNS4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnY3Jhc2hfcmF0ZScsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdjcmFzaF9zZXZlcml0eScsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICd3ZWF0aGVyJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2V2ZW50JywgdmFsdWU6IDAuMH1cclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdTZXJ2aWNlJyxcclxuICAgICAgICAgICAgICAgIHByZXNldHM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnYWFkdHlyXzEnLCB2YWx1ZTogMzAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2FhZHR5cl8yMCcsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdncm93dGhfMjAnLCB2YWx1ZTogMTAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ3Rya2R5cl8xJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2xvc3lyXzEnLCB2YWx1ZTogMzAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2xvc3lyXzIwJywgdmFsdWU6IDMwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdjcmFzaF9yYXRlJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2NyYXNoX3NldmVyaXR5JywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ3dlYXRoZXInLCB2YWx1ZTogMC4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnZXZlbnQnLCB2YWx1ZTogMC4wfVxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0ZyZWlnaHQgUGVyZm9ybWFuY2UnLFxyXG4gICAgICAgICAgICAgICAgcHJlc2V0czogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdhYWR0eXJfMScsIHZhbHVlOiAyMC4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnYWFkdHlyXzIwJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2dyb3d0aF8yMCcsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICd0cmtkeXJfMScsIHZhbHVlOiA2MC4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnbG9zeXJfMScsIHZhbHVlOiAyMC4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnbG9zeXJfMjAnLCB2YWx1ZTogMC4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnY3Jhc2hfcmF0ZScsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdjcmFzaF9zZXZlcml0eScsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICd3ZWF0aGVyJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2V2ZW50JywgdmFsdWU6IDAuMH1cclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIF0gYXMgQXJyYXk8VGlwUHJlc2V0Q29uZmlnPlxyXG5cclxufSBhcyBJVGlwQ29uZmlnO1xyXG5cclxudGlwQ29uZmlnLiRwcmVzZXRTZWxlY3Rvci5hcHBlbmQoJzxvcHRpb24gdmFsdWU9XCIwXCIgZGlzYWJsZWQ9PkN1c3RvbTwvb3B0aW9uPicpO1xyXG5cclxubGV0IHNsaWRlcnMgPSBuZXcgVGlwU2xpZGVycyh0aXBDb25maWcuc2xpZGVyc0NvbmZpZywgdGlwQ29uZmlnLnByZXNldENvbmZpZywgJ3NsaWRlci1jb250YWluZXInLFxyXG4gICAgdGlwQ29uZmlnLiRwcmVzZXRTZWxlY3RvciwgdGlwQ29uZmlnLiRyZWdpb25TZWxlY3RvciwgdGlwQ29uZmlnLiRyZWdpb25TZWxlY3RvciwgKGNoZykgPT4ge2NvbnNvbGUubG9nKGNoZyl9KTtcclxuXHJcbi8vIHNsaWRlcnMuY2hhbmdlZENhbGxiYWNrID0gKGNoZykgPT4ge2NvbnNvbGUubG9nKGNoZyl9O1xyXG5cclxud2luZG93WydnbG9iJ10gPSBzbGlkZXJzO1xyXG53aW5kb3dbJ2hhdCddID0gc2xpZGVycztcclxud2luZG93WydiaXJkJ10gPSBzbGlkZXJzO1xyXG5cclxuIl19 /***/ }) diff --git a/test/serve/js/slider-test.js.map b/test/serve/js/slider-test.js.map index b1996bf..fe8ccaf 100644 --- a/test/serve/js/slider-test.js.map +++ b/test/serve/js/slider-test.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap b4e25e5e5539f3f3f6dd?fe66*****","webpack:///./src/util/provide.ts?5c82*****","webpack:///external \"$\"?57aa*****","webpack:///external \"jquery-ui\"?42af","webpack:///./src/collections/Sliders.ts","webpack:///./test/demo/slider-test.ts"],"names":[],"mappings":"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","file":"slider-test.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\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 42);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap b4e25e5e5539f3f3f6dd","/**\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","module.exports = $;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"$\"\n// module id = 1\n// module chunks = 0 1 2 3 4 5 6","module.exports = jquery-ui;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"jquery-ui\"\n// module id = 18\n// module chunks = 5 6","/**\r\n * Created by gavorhes on 12/10/2015.\r\n */\r\n\r\nimport provide from '../util/provide';\r\nimport $ = require('jquery');\r\n\r\nlet nm = provide('collections');\r\n\r\nexport interface TipSliderConfig {\r\n label: string;\r\n yearOptions: Array<{column: string, label: string}>\r\n}\r\n\r\nexport interface TipPresetConfig {\r\n label: string;\r\n presets: Array<{column: string, value: number}>\r\n}\r\n\r\nexport interface ChangeResponse{\r\n paramWeights: Object;\r\n region: string;\r\n mmVersion: string;\r\n}\r\n\r\nexport interface ChangeCallback{\r\n (chg: ChangeResponse): any\r\n}\r\n\r\n\r\nclass TipPresets implements TipPresetConfig {\r\n label: string;\r\n presets: Array<{column: string, value: number}>;\r\n domId: string;\r\n\r\n constructor(conf: TipPresetConfig) {\r\n this.label = conf.label;\r\n this.presets = conf.presets;\r\n this.domId = this.label.replace(/ /g, '').toLowerCase();\r\n\r\n let theSum = 0;\r\n\r\n for (let pr of this.presets){\r\n theSum += pr.value;\r\n }\r\n\r\n if (theSum != 100){\r\n throw 'preset sum does note equal 100';\r\n }\r\n }\r\n}\r\n\r\n\r\nclass _Slider {\r\n _min: number;\r\n _max: number;\r\n _locked: boolean;\r\n atMin: boolean;\r\n atMax: boolean;\r\n _weightDefault: number;\r\n _weight: number;\r\n html: string;\r\n domId: string;\r\n name: string;\r\n\r\n labelLow: JQuery;\r\n labelHigh: JQuery;\r\n labelVal: JQuery;\r\n slider: JQuery;\r\n selectionBox: JQuery;\r\n chk: JQuery;\r\n\r\n selectedParam: any;\r\n selectedParamDefault: any;\r\n _dropdownSelection: string;\r\n\r\n /**\r\n * Slider constructor\r\n * @param sliderConfig - the configuration\r\n\r\n */\r\n constructor(sliderConfig: TipSliderConfig) {\r\n this._dropdownSelection = null;\r\n this._weight = null;\r\n this.name = sliderConfig.label;\r\n this.domId = this.name.toLowerCase().replace(/ /g, '-');\r\n\r\n this._locked = false;\r\n\r\n this._min = 0.0;\r\n this._max = 100;\r\n\r\n this.labelLow = null;\r\n this.labelHigh = null;\r\n this.labelVal = null;\r\n this.slider = null;\r\n this.chk = null;\r\n\r\n this.atMin = false;\r\n this.atMax = false;\r\n\r\n\r\n let sel = `<select class=\"${sliderConfig.yearOptions.length == 1 ? 'hidden-select' : 'show-select'}\" id=\"${this.domId}_chg\">`;\r\n\r\n for (let i = 0; i < sliderConfig.yearOptions.length; i++) {\r\n let itm = sliderConfig.yearOptions[i];\r\n sel += `<option value=\"${itm.column}\">${itm.label}</option>`;\r\n }\r\n sel += '</select>';\r\n\r\n this.selectedParamDefault = this.selectedParam;\r\n\r\n this.html = '<div class=\"slider-div\">' +\r\n `<label for=\"${this.domId}_chk\" class=\"slider-label\">${this.name}</label>` +\r\n sel + `<br>` +\r\n `<input id=\"${this.domId}_chk\" type=\"checkbox\" title=\"Lock/Unlock Slider\">` +\r\n `<label id=\"${this.domId}_low\" class=\"low-high\"></label>` +\r\n `<input id=\"${this.domId}\" type=\"range\" value=\"50\" min=\"0\" max=\"100\" step=\"0.1\">` +\r\n `<label id=\"${this.domId}_high\" class=\"low-high\"></label>` +\r\n `<label id=\"${this.domId}_lbl\" for=\"${this.domId}\" class=\"percent-label\"></label></div>`;\r\n }\r\n\r\n /**\r\n * add html to dom\r\n * @param {jQuery} $container - container element\r\n */\r\n addToDom($container) {\r\n $container.append(this.html);\r\n this.labelLow = $(`#${this.domId}_low`);\r\n this.labelHigh = $(`#${this.domId}_high`);\r\n this.labelVal = $(`#${this.domId}_lbl`);\r\n this.slider = $(`#${this.domId}`);\r\n this.selectionBox = $(`#${this.domId}_chg`);\r\n this.chk = $(`#${this.domId}_chk`);\r\n }\r\n\r\n /**\r\n * increment the slider\r\n * @param {number} delta change delta\r\n * @returns {number} the remainder not able to be allocated to this slider\r\n */\r\n increment(delta) {\r\n let remainder = 0;\r\n delta = Number(delta.toFixed(1));\r\n\r\n this._weight += delta;\r\n if (this._weight < this._min) {\r\n remainder = this._min - this._weight;\r\n this._weight = this._min;\r\n this.atMin = true;\r\n } else if (this._weight > this._max) {\r\n remainder = this._max - this._weight;\r\n this._weight = this._max;\r\n this.atMax = true;\r\n } else {\r\n this.atMin = false;\r\n this.atMax = false;\r\n }\r\n\r\n this.slider.val(this._weight.toFixed(1));\r\n this.labelVal.html(this._weight.toFixed(1) + '%');\r\n\r\n return remainder;\r\n }\r\n\r\n /**\r\n * set the value and drop down\r\n * @param {number} newVal the new value\r\n * @param {string} selectedParam the selected parameter\r\n */\r\n setValAndDropDown(newVal: number, selectedParam: string) {\r\n this.min = 0;\r\n this.max = 100;\r\n this.weight = newVal;\r\n this.slider.val(newVal.toFixed(1));\r\n this.selectionBox.val(selectedParam);\r\n this.selectedParam = selectedParam;\r\n this.locked = true;\r\n }\r\n\r\n /**\r\n *\r\n * @returns {boolean} if locked\r\n */\r\n get locked() {\r\n return this._locked;\r\n }\r\n\r\n /**\r\n *\r\n * @param {boolean} val if locked\r\n */\r\n set locked(val) {\r\n this._locked = val;\r\n this.slider.prop('disabled', this._locked);\r\n this.selectionBox.prop('disabled', this._locked);\r\n this.chk.prop('checked', !this._locked);\r\n }\r\n\r\n /**\r\n *\r\n * @returns {number} the minimum\r\n */\r\n get min() {\r\n return this._min;\r\n }\r\n\r\n /**\r\n *\r\n * @param {number} newVal new minimum\r\n */\r\n set min(newVal) {\r\n this._min = Number(newVal.toFixed(1));\r\n if (this._min < 0) {\r\n this._min = 0;\r\n }\r\n this.labelLow.html(this._min.toFixed(1));\r\n this.slider.attr('min', this._min.toFixed(1));\r\n this.atMin = this._weight == this._min;\r\n }\r\n\r\n /**\r\n *\r\n * @returns {number} the maximum\r\n */\r\n get max() {\r\n return this._max;\r\n }\r\n\r\n /**\r\n *\r\n * @param {number} newVal the maximum\r\n */\r\n set max(newVal) {\r\n this._max = Number(newVal.toFixed(1));\r\n if (this._max > 100) {\r\n this._max = 100.0;\r\n }\r\n this.labelHigh.html(this._max.toFixed(1));\r\n this.slider.attr('max', this._max.toFixed(1));\r\n this.atMax = this._weight == this._max;\r\n }\r\n\r\n /**\r\n *\r\n * @returns {number} the weight\r\n */\r\n get weight() {\r\n return this._weight;\r\n }\r\n\r\n /**\r\n *\r\n * @param {number} newVal the weight\r\n */\r\n set weight(newVal) {\r\n this._weight = Number(newVal.toFixed(1));\r\n this.labelVal.html(this._weight.toFixed(1) + '%');\r\n if (this._weight <= this._min) {\r\n this.atMin = true;\r\n this.atMax = false;\r\n } else if (this._weight >= this._max) {\r\n this.atMin = false;\r\n this.atMax = true;\r\n } else {\r\n this.atMin = false;\r\n this.atMax = false;\r\n }\r\n }\r\n}\r\n\r\nnm._Slider = _Slider;\r\n\r\n\r\n/**\r\n * class to keep track of the sliders\r\n */\r\nexport class TipSliders {\r\n $container: JQuery;\r\n reservedPercent: number;\r\n lockedCount: number;\r\n notLockedCount: number;\r\n private _sliderList: Array<_Slider>;\r\n private _sliderLookup: {[s: string]: _Slider};\r\n private resetting: boolean;\r\n private _changedCallback: ChangeCallback;\r\n\r\n private _lockedList: Array<_Slider>;\r\n private _inRangeList: Array<_Slider>;\r\n private _atMinList: Array<_Slider>;\r\n private _atMaxList: Array<_Slider>;\r\n\r\n private _presetArray: Array<TipPresets>;\r\n private _presetLookup: {[s: string]: TipPresets};\r\n\r\n private _$presetSelector: JQuery;\r\n private _$regionSelector: JQuery;\r\n private _$versionSelector: JQuery;\r\n\r\n /**\r\n *\r\n * @param sliderConfigs\r\n * @param presetConfig\r\n * @param divId\r\n * @param presetSelector\r\n * @param regionSelector\r\n * @param versionSelector\r\n * @param chgCallback\r\n */\r\n constructor(sliderConfigs: Array<TipSliderConfig>, presetConfig: Array<TipPresetConfig>,\r\n divId: string, presetSelector: JQuery, regionSelector: JQuery, versionSelector: JQuery,\r\n chgCallback?: ChangeCallback) {\r\n\r\n this.resetting = false;\r\n this.reservedPercent = 0.0;\r\n this.$container = $('#' + divId);\r\n this.$container.addClass('slider-container');\r\n\r\n this._changedCallback = typeof chgCallback == 'function' ? chgCallback : () => {};\r\n\r\n this._$presetSelector = presetSelector;\r\n this._$regionSelector = regionSelector;\r\n this._$versionSelector = versionSelector;\r\n\r\n this._sliderList = [];\r\n this._sliderLookup = {};\r\n\r\n for (let i = 0; i < sliderConfigs.length; i++) {\r\n let sld = new _Slider(sliderConfigs[i]);\r\n this._sliderList.push(sld);\r\n this._sliderLookup[sld.domId] = sld;\r\n sld.addToDom(this.$container);\r\n }\r\n\r\n this._presetArray = [];\r\n this._presetLookup = {};\r\n\r\n for (let i = 0; i < presetConfig.length; i++) {\r\n let preset = new TipPresets(presetConfig[i]);\r\n\r\n let idx = (i + 1).toFixed();\r\n\r\n this._presetLookup[idx] = preset;\r\n this._presetArray.push(preset);\r\n this._$presetSelector.append(`<option value=\"${idx}\">${preset.label}</option>`);\r\n }\r\n\r\n\r\n this._lockedList = [];\r\n this._inRangeList = [];\r\n this._atMinList = [];\r\n this._atMaxList = [];\r\n\r\n this.lockedCount = 10;\r\n this.notLockedCount = 0;\r\n\r\n this._splitSliderArray();\r\n\r\n\r\n this._$presetSelector.change(() => {\r\n this.setPresetValues();\r\n this._runChangedCallback();\r\n });\r\n\r\n this._$regionSelector.change(() => {\r\n this._runChangedCallback();\r\n });\r\n\r\n this._$versionSelector.change(() => {\r\n this._runChangedCallback();\r\n });\r\n\r\n this._$presetSelector.trigger('change');\r\n\r\n this._addEventListeners();\r\n }\r\n\r\n _runChangedCallback(){\r\n this._changedCallback(this.paramWeightsRegionVersion);\r\n }\r\n\r\n get changedCallback(): ChangeCallback{\r\n return this._changedCallback\r\n }\r\n\r\n set changedCallback(chg: ChangeCallback){\r\n this._changedCallback = chg;\r\n this._runChangedCallback();\r\n }\r\n\r\n setPresetValues() {\r\n let idx = this._$presetSelector.val() || '1';\r\n\r\n let thePreset = this._presetLookup[idx];\r\n\r\n for (let i = 0; i < thePreset.presets.length; i++) {\r\n let presetValues = thePreset.presets[i];\r\n let theSlider = this._sliderList[i];\r\n\r\n theSlider.locked = true;\r\n theSlider.setValAndDropDown(presetValues.value, presetValues.column);\r\n }\r\n }\r\n\r\n /**\r\n * split array into subarrays holding the sliders\r\n * @private\r\n */\r\n _splitSliderArray() {\r\n this._lockedList = [];\r\n this._inRangeList = [];\r\n this._atMinList = [];\r\n this._atMaxList = [];\r\n\r\n for (let i = 0; i < this._sliderList.length; i++) {\r\n let sld = this._sliderList[i];\r\n\r\n if (sld.locked) {\r\n this._lockedList.push(sld);\r\n } else if (sld.atMin) {\r\n this._atMinList.push(sld);\r\n } else if (sld.atMax) {\r\n this._atMaxList.push(sld);\r\n } else {\r\n this._inRangeList.push(sld);\r\n }\r\n }\r\n this.lockedCount = this._lockedList.length;\r\n this.notLockedCount = this._sliderList.length - this.lockedCount;\r\n }\r\n\r\n /**\r\n * handle remainder, recursive to take care of min max overshoots\r\n * @param {number} remain the remainder\r\n * @param {string} skipDomId - this dom id\r\n * @private\r\n */\r\n _handleRemainder(remain, skipDomId) {\r\n\r\n remain = Number(remain.toFixed(1));\r\n if (remain == 0) {\r\n return;\r\n }\r\n\r\n this._splitSliderArray();\r\n\r\n let canChangeArray = [];\r\n for (let i = 0; i < this._inRangeList.length; i++) {\r\n let sld = this._inRangeList[i];\r\n if (sld.domId == skipDomId) {\r\n continue;\r\n }\r\n canChangeArray.push(sld);\r\n }\r\n\r\n if (remain > 0) {\r\n for (let i = 0; i < this._atMaxList.length; i++) {\r\n let sld = this._atMaxList[i];\r\n if (sld.domId == skipDomId) {\r\n continue;\r\n }\r\n canChangeArray.push(sld);\r\n }\r\n } else {\r\n for (let i = 0; i < this._atMinList.length; i++) {\r\n let sld = this._atMinList[i];\r\n if (sld.domId == skipDomId) {\r\n continue;\r\n }\r\n canChangeArray.push(sld);\r\n }\r\n }\r\n\r\n if (canChangeArray.length == 0) {\r\n return;\r\n }\r\n\r\n let inc = -1 * Number((remain / canChangeArray.length).toFixed(1));\r\n\r\n let newRemainder = 0;\r\n for (let i = 0; i < canChangeArray.length; i++) {\r\n newRemainder += canChangeArray[i].increment(inc);\r\n }\r\n\r\n this._handleRemainder(newRemainder, skipDomId);\r\n }\r\n\r\n /**\r\n *\r\n * @param {object} keyValList key and value list\r\n */\r\n setValues(keyValList) {\r\n this.resetting = true;\r\n for (let k in keyValList) {\r\n if (keyValList.hasOwnProperty(k)) {\r\n this._sliderLookup[k].setValAndDropDown(keyValList[k][0], keyValList[k][1]);\r\n }\r\n }\r\n this.resetting = false;\r\n }\r\n\r\n /**\r\n * get the weight sum\r\n * @returns {number} the weight sum\r\n */\r\n getSum() {\r\n let total = 0;\r\n for (let i = 0; i < this._sliderList.length; i++) {\r\n let sld = this._sliderList[i];\r\n total += Number(sld.weight.toFixed(1));\r\n }\r\n\r\n return total;\r\n }\r\n\r\n /**\r\n * get the parameter weights\r\n * @returns {object} lookup with parameter weights\r\n */\r\n getParams() {\r\n let paramWeights = {};\r\n for (let i = 0; i < this._sliderList.length; i++) {\r\n let sld = this._sliderList[i];\r\n paramWeights[sld.selectedParam] = Number(sld.weight.toFixed(1));\r\n }\r\n\r\n return paramWeights;\r\n }\r\n\r\n _addEventListeners() {\r\n let ___this = this;\r\n\r\n\r\n //change function\r\n this.$container.find('input[type=\"range\"]').change(function () {\r\n if (___this.resetting) {\r\n return;\r\n }\r\n\r\n let $this = $(this);\r\n let domId = this['id'];\r\n let sldr = ___this._sliderLookup[domId];\r\n\r\n let newValue = parseFloat($this.val());\r\n\r\n let oldValue = sldr.weight;\r\n let diff = newValue - oldValue;\r\n diff = Number(diff.toFixed(1));\r\n\r\n sldr.weight = Number(newValue.toFixed(1));\r\n\r\n ___this._handleRemainder(diff, domId);\r\n\r\n //cleanup, make sure the sum is still 100\r\n let sum = Number(___this.getSum().toFixed(1));\r\n\r\n if (sum > 100) {\r\n loop1:\r\n while (true) {\r\n for (let i = 0; i < ___this._sliderList.length; i++) {\r\n let sld = ___this._sliderList[i];\r\n if (sld.domId == domId || sld.locked || sld.atMin) {\r\n continue;\r\n }\r\n sld.increment(-0.1);\r\n sum -= 0.1;\r\n if (sum.toFixed(1) == '100.0') {\r\n break loop1;\r\n }\r\n }\r\n }\r\n } else if (sum < 100) {\r\n loop1:\r\n while (true) {\r\n for (let i = 0; i < ___this._sliderList.length; i++) {\r\n let sld = ___this._sliderList[i];\r\n if (sld.domId == domId || sld.locked || sld.atMax) {\r\n continue;\r\n }\r\n sld.increment(0.1);\r\n sum += 0.1;\r\n if (sum.toFixed(1) == '100.0') {\r\n break loop1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n ___this._$presetSelector.val('0');\r\n ___this._runChangedCallback();\r\n }\r\n );\r\n\r\n //update the selected parameter when the selection is changed\r\n $('.show-select').change(function () {\r\n if (___this.resetting) {\r\n return;\r\n }\r\n ___this._sliderLookup[this['id'].replace('_chg', '')].selectedParam = $(this).val();\r\n\r\n ___this._$presetSelector.val('0');\r\n\r\n ___this._runChangedCallback();\r\n\r\n });\r\n\r\n //lock the slider and update the reserved percent\r\n this.$container.find('input[type=\"checkbox\"]').change(function () {\r\n let domEl = this;\r\n\r\n ___this._sliderLookup[domEl.id.replace('_chk', '')].locked = !domEl.checked;\r\n ___this.reservedPercent = 0.0;\r\n ___this.notLockedCount = 0;\r\n\r\n let notLockedSliders = [];\r\n\r\n for (let i = 0; i < ___this._sliderList.length; i++) {\r\n let sld = ___this._sliderList[i];\r\n if (sld.locked) {\r\n ___this.reservedPercent += sld.weight;\r\n continue;\r\n }\r\n notLockedSliders.push(sld);\r\n ___this.notLockedCount++;\r\n }\r\n\r\n for (let i = 0; i < ___this._sliderList.length; i++) {\r\n let sld = ___this._sliderList[i];\r\n if (sld.locked) {\r\n continue;\r\n }\r\n sld.max = 100 - ___this.reservedPercent;\r\n }\r\n\r\n if (notLockedSliders.length == 1) {\r\n notLockedSliders[0].min = notLockedSliders[0].weight;\r\n } else {\r\n for (let i = 0; i < notLockedSliders.length; i++) {\r\n notLockedSliders[i].min = 0;\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n get paramWeightsRegionVersion(): ChangeResponse{\r\n return {paramWeights: this.getParams(),\r\n region: this._$regionSelector.val() as string, mmVersion: this._$versionSelector.val() as string}\r\n }\r\n}\r\n\r\nnm.Sliders = TipSliders;\r\nexport default TipSliders;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/collections/Sliders.ts","/**\r\n * Created by gavorhes on 6/22/2016.\r\n */\r\nimport {TipSliders, TipPresetConfig, TipSliderConfig} from '../../src/collections/Sliders';\r\nimport $ = require('jquery');\r\nimport ol = require('custom-ol');\r\nimport 'jquery-ui';\r\n\r\n\r\n\r\nexport interface ITipConfig{\r\n slidersConfig: Array<TipSliderConfig>;\r\n presetConfig: Array<TipPresetConfig>;\r\n tipSegmentLayerMinZoom: number;\r\n sliders: TipSliders;\r\n _map: ol.Map;\r\n $loadingGif: JQuery;\r\n $presetSelector: JQuery;\r\n $regionSelector: JQuery;\r\n $versionSelector: JQuery;\r\n itsLayerCollection: any;\r\n tipSegmentLayer: any;\r\n metamanagerSegments: any;\r\n}\r\n\r\nexport const tipConfig = {\r\n $loadingGif: $('#loading-gif'),\r\n $presetSelector: $('#preset-selector'),\r\n $regionSelector: $('#region-selector'),\r\n $versionSelector: $('#version-selector'),\r\n tipSegmentLayerMinZoom: 10,\r\n slidersConfig: [\r\n {\r\n label: 'AADT',\r\n yearOptions: [\r\n {label: '1', column: 'aadtyr_1'}\r\n ]\r\n },\r\n {\r\n label: 'AADT Future',\r\n yearOptions: [\r\n {label: '5', column: 'aadtyr_5'},\r\n {label: '10', column: 'aadtyr_10'},\r\n {label: '15', column: 'aadtyr_15'},\r\n {label: '20', column: 'aadtyr_20'}\r\n ]\r\n },\r\n {\r\n label: 'Growth',\r\n yearOptions: [\r\n {label: '5', column: 'growth_5'},\r\n {label: '10', column: 'growth_10'},\r\n {label: '15', column: 'growth_15'},\r\n {label: '20', column: 'growth_20'}\r\n ]\r\n },\r\n {\r\n label: 'Truck',\r\n yearOptions: [\r\n {label: '1', column: 'trkdyr_1'},\r\n {label: '20', column: 'trkdyr_20'}\r\n ]\r\n },\r\n {\r\n label: 'LOS',\r\n yearOptions: [\r\n {label: '1', column: 'losyr_1'}\r\n ]\r\n },\r\n {\r\n label: 'LOS Future',\r\n yearOptions: [\r\n {label: '5', column: 'losyr_5'},\r\n {label: '10', column: 'losyr_10'},\r\n {label: '15', column: 'losyr_15'},\r\n {label: '20', column: 'losyr_20'}\r\n ]\r\n },\r\n {\r\n label: 'Crash Rate',\r\n yearOptions: [\r\n {label: 1, column: 'crash_rate'}\r\n ]\r\n },\r\n {\r\n label: 'Severity',\r\n yearOptions: [\r\n {label: 1, column: 'crash_severity'}\r\n ]\r\n },\r\n {\r\n label: 'Weather',\r\n yearOptions: [\r\n {label: 1, column: 'weather'}\r\n ]\r\n },\r\n {\r\n label: 'Event',\r\n yearOptions: [\r\n {label: 1, column: 'event'}\r\n ]\r\n }\r\n ] as Array<TipSliderConfig>,\r\n presetConfig: [\r\n {\r\n label: 'Default TIP',\r\n presets: [\r\n {column: 'aadtyr_1', value: 10.0},\r\n {column: 'aadtyr_20', value: 7.0},\r\n {column: 'growth_20', value: 7.0},\r\n {column: 'trkdyr_1', value: 4.0},\r\n {column: 'losyr_1', value: 12.0},\r\n {column: 'losyr_20', value: 12.0},\r\n {column: 'crash_rate', value: 15.0},\r\n {column: 'crash_severity', value: 13.0},\r\n {column: 'weather', value: 9.0},\r\n {column: 'event', value: 11.0}\r\n ]\r\n },\r\n {\r\n label: 'Safety',\r\n presets: [\r\n {column: 'aadtyr_1', value: 20.0},\r\n {column: 'aadtyr_20', value: 0.0},\r\n {column: 'growth_20', value: 0.0},\r\n {column: 'trkdyr_1', value: 0.0},\r\n {column: 'losyr_1', value: 0.0},\r\n {column: 'losyr_20', value: 0.0},\r\n {column: 'crash_rate', value: 40.0},\r\n {column: 'crash_severity', value: 40.0},\r\n {column: 'weather', value: 0.0},\r\n {column: 'event', value: 0.0}\r\n ]\r\n },\r\n {\r\n label: 'Mobility Present',\r\n presets: [\r\n {column: 'aadtyr_1', value: 25.0},\r\n {column: 'aadtyr_20', value: 25.0},\r\n {column: 'growth_20', value: 0.0},\r\n {column: 'trkdyr_1', value: 25.0},\r\n {column: 'losyr_1', value: 25.0},\r\n {column: 'losyr_20', value: 0.0},\r\n {column: 'crash_rate', value: 0.0},\r\n {column: 'crash_severity', value: 0.0},\r\n {column: 'weather', value: 0.0},\r\n {column: 'event', value: 0.0}\r\n ]\r\n },\r\n {\r\n label: 'Mobility Future',\r\n presets: [\r\n {column: 'aadtyr_1', value: 0.0},\r\n {column: 'aadtyr_20', value: 25.0},\r\n {column: 'growth_20', value: 25.0},\r\n {column: 'trkdyr_1', value: 25.0},\r\n {column: 'losyr_1', value: 0.0},\r\n {column: 'losyr_20', value: 25.0},\r\n {column: 'crash_rate', value: 0.0},\r\n {column: 'crash_severity', value: 0.0},\r\n {column: 'weather', value: 0.0},\r\n {column: 'event', value: 0.0}\r\n ]\r\n },\r\n {\r\n label: 'Service',\r\n presets: [\r\n {column: 'aadtyr_1', value: 30.0},\r\n {column: 'aadtyr_20', value: 0.0},\r\n {column: 'growth_20', value: 10.0},\r\n {column: 'trkdyr_1', value: 0.0},\r\n {column: 'losyr_1', value: 30.0},\r\n {column: 'losyr_20', value: 30.0},\r\n {column: 'crash_rate', value: 0.0},\r\n {column: 'crash_severity', value: 0.0},\r\n {column: 'weather', value: 0.0},\r\n {column: 'event', value: 0.0}\r\n ]\r\n },\r\n {\r\n label: 'Freight Performance',\r\n presets: [\r\n {column: 'aadtyr_1', value: 20.0},\r\n {column: 'aadtyr_20', value: 0.0},\r\n {column: 'growth_20', value: 0.0},\r\n {column: 'trkdyr_1', value: 60.0},\r\n {column: 'losyr_1', value: 20.0},\r\n {column: 'losyr_20', value: 0.0},\r\n {column: 'crash_rate', value: 0.0},\r\n {column: 'crash_severity', value: 0.0},\r\n {column: 'weather', value: 0.0},\r\n {column: 'event', value: 0.0}\r\n ]\r\n }\r\n ] as Array<TipPresetConfig>\r\n\r\n} as ITipConfig;\r\n\r\ntipConfig.$presetSelector.append('<option value=\"0\" disabled=>Custom</option>');\r\n\r\nlet sliders = new TipSliders(tipConfig.slidersConfig, tipConfig.presetConfig, 'slider-container',\r\n tipConfig.$presetSelector, tipConfig.$regionSelector, tipConfig.$regionSelector, (chg) => {console.log(chg)});\r\n\r\n// sliders.changedCallback = (chg) => {console.log(chg)};\r\n\r\nwindow['glob'] = sliders;\r\nwindow['hat'] = sliders;\r\nwindow['bird'] = sliders;\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./test/demo/slider-test.ts"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 1b9d70c904b3cb6688ad?eabd*****","webpack:///./src/util/provide.ts?76dd*****","webpack:///external \"$\"?57aa*****","webpack:///./src/collections/Sliders.ts","webpack:///./test/demo/slider-test.ts"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;AChEA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,2wE;;;;;;;AC7B3C,mB;;;;;;;;ACAA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gBAAgB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qCAAqC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8FAA8F;AAC9F;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,8BAA8B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8BAA8B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gCAAgC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gCAAgC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6BAA6B;AAC5D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB;AACpB;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA,2CAA2C,+rhD;;;;;;;;ACzgB3C;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB,iCAAiC;AAClD,iBAAiB,mCAAmC;AACpD,iBAAiB,mCAAmC;AACpD,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB,iCAAiC;AAClD,iBAAiB,mCAAmC;AACpD,iBAAiB,mCAAmC;AACpD,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB,iCAAiC;AAClD,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB,gCAAgC;AACjD,iBAAiB,kCAAkC;AACnD,iBAAiB,kCAAkC;AACnD,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kCAAkC;AACnD,iBAAiB,kCAAkC;AACnD,iBAAiB,kCAAkC;AACnD,iBAAiB,iCAAiC;AAClD,iBAAiB,iCAAiC;AAClD,iBAAiB,kCAAkC;AACnD,iBAAiB,oCAAoC;AACrD,iBAAiB,wCAAwC;AACzD,iBAAiB,gCAAgC;AACjD,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB,kCAAkC;AACnD,iBAAiB,kCAAkC;AACnD,iBAAiB,kCAAkC;AACnD,iBAAiB,iCAAiC;AAClD,iBAAiB,gCAAgC;AACjD,iBAAiB,iCAAiC;AAClD,iBAAiB,oCAAoC;AACrD,iBAAiB,wCAAwC;AACzD,iBAAiB,gCAAgC;AACjD,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB,kCAAkC;AACnD,iBAAiB,mCAAmC;AACpD,iBAAiB,kCAAkC;AACnD,iBAAiB,kCAAkC;AACnD,iBAAiB,iCAAiC;AAClD,iBAAiB,iCAAiC;AAClD,iBAAiB,mCAAmC;AACpD,iBAAiB,uCAAuC;AACxD,iBAAiB,gCAAgC;AACjD,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB,iCAAiC;AAClD,iBAAiB,mCAAmC;AACpD,iBAAiB,mCAAmC;AACpD,iBAAiB,kCAAkC;AACnD,iBAAiB,gCAAgC;AACjD,iBAAiB,kCAAkC;AACnD,iBAAiB,mCAAmC;AACpD,iBAAiB,uCAAuC;AACxD,iBAAiB,gCAAgC;AACjD,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB,kCAAkC;AACnD,iBAAiB,kCAAkC;AACnD,iBAAiB,mCAAmC;AACpD,iBAAiB,iCAAiC;AAClD,iBAAiB,iCAAiC;AAClD,iBAAiB,kCAAkC;AACnD,iBAAiB,mCAAmC;AACpD,iBAAiB,uCAAuC;AACxD,iBAAiB,gCAAgC;AACjD,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB,kCAAkC;AACnD,iBAAiB,kCAAkC;AACnD,iBAAiB,kCAAkC;AACnD,iBAAiB,kCAAkC;AACnD,iBAAiB,iCAAiC;AAClD,iBAAiB,iCAAiC;AAClD,iBAAiB,mCAAmC;AACpD,iBAAiB,uCAAuC;AACxD,iBAAiB,gCAAgC;AACjD,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qPAAqP,kBAAkB,EAAE;AACzQ,uCAAuC;AACvC;AACA;AACA;AACA,2CAA2C,2ykB","file":"slider-test.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\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 41);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1b9d70c904b3cb6688ad","/**\r\n * Created by gavorhes on 12/10/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\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 var parts = namespace.split('.');\r\n var nameSpace = window['gv'];\r\n for (var i = 0; i < parts.length; i++) {\r\n var newObject = nameSpace[parts[i]];\r\n if (typeof newObject == 'undefined') {\r\n nameSpace[parts[i]] = {};\r\n }\r\n nameSpace = nameSpace[parts[i]];\r\n }\r\n return nameSpace;\r\n}\r\nprovide('util');\r\nwindow['gv'].util.provide = provide;\r\nexports.default = provide;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3ZpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUdIOzs7O0dBSUc7QUFDSCxpQkFBaUIsU0FBUztJQUN0QixZQUFZLENBQUM7SUFDYixFQUFFLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDO1FBQ2hDLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwQyxFQUFFLENBQUMsQ0FBQyxPQUFPLFNBQVMsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1lBQ2pDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUVELFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFFcEMsa0JBQWUsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gMTIvMTAvMjAxNS5cclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIGNyZWF0ZSBhIG5hbWVzcGFjZSBvbiB0aGUgZ3Ygb2JqZWN0XHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UgdG8gY3JlYXRlXHJcbiAqIEByZXR1cm5zIHtvYmplY3R9IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5hbWVzcGFjZVxyXG4gKi9cclxuZnVuY3Rpb24gcHJvdmlkZShuYW1lc3BhY2Upe1xyXG4gICAgXCJ1c2Ugc3RyaWN0XCI7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvd1snZ3YnXSA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgd2luZG93WydndiddID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBhcnRzID0gbmFtZXNwYWNlLnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgbmFtZVNwYWNlID0gd2luZG93WydndiddO1xyXG5cclxuICAgIGZvciAobGV0IGk9MDsgaTwgcGFydHMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgIGxldCBuZXdPYmplY3QgPSBuYW1lU3BhY2VbcGFydHNbaV1dO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIG5ld09iamVjdCA9PSAndW5kZWZpbmVkJyl7XHJcbiAgICAgICAgICAgIG5hbWVTcGFjZVtwYXJ0c1tpXV0gPSB7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5hbWVTcGFjZSA9IG5hbWVTcGFjZVtwYXJ0c1tpXV07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5hbWVTcGFjZTtcclxufVxyXG5cclxucHJvdmlkZSgndXRpbCcpO1xyXG53aW5kb3dbJ2d2J10udXRpbC5wcm92aWRlID0gcHJvdmlkZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHByb3ZpZGU7XHJcbiJdfQ==\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/util/provide.ts\n// module id = 0\n// module chunks = 0 1 2 3 4 5 6","module.exports = $;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"$\"\n// module id = 1\n// module chunks = 0 1 2 3 4 5 6","/**\r\n * Created by gavorhes on 12/10/2015.\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar provide_1 = require(\"../util/provide\");\r\nvar $ = require(\"jquery\");\r\nvar nm = provide_1.default('collections');\r\nvar TipPresets = (function () {\r\n function TipPresets(conf) {\r\n this.label = conf.label;\r\n this.presets = conf.presets;\r\n this.domId = this.label.replace(/ /g, '').toLowerCase();\r\n var theSum = 0;\r\n for (var _i = 0, _a = this.presets; _i < _a.length; _i++) {\r\n var pr = _a[_i];\r\n theSum += pr.value;\r\n }\r\n if (theSum != 100) {\r\n throw 'preset sum does note equal 100';\r\n }\r\n }\r\n return TipPresets;\r\n}());\r\nvar _Slider = (function () {\r\n /**\r\n * Slider constructor\r\n * @param sliderConfig - the configuration\r\n\r\n */\r\n function _Slider(sliderConfig) {\r\n this._dropdownSelection = null;\r\n this._weight = null;\r\n this.name = sliderConfig.label;\r\n this.domId = this.name.toLowerCase().replace(/ /g, '-');\r\n this._locked = false;\r\n this._min = 0.0;\r\n this._max = 100;\r\n this.labelLow = null;\r\n this.labelHigh = null;\r\n this.labelVal = null;\r\n this.slider = null;\r\n this.chk = null;\r\n this.atMin = false;\r\n this.atMax = false;\r\n var sel = \"<select class=\\\"\" + (sliderConfig.yearOptions.length == 1 ? 'hidden-select' : 'show-select') + \"\\\" id=\\\"\" + this.domId + \"_chg\\\">\";\r\n for (var i = 0; i < sliderConfig.yearOptions.length; i++) {\r\n var itm = sliderConfig.yearOptions[i];\r\n sel += \"<option value=\\\"\" + itm.column + \"\\\">\" + itm.label + \"</option>\";\r\n }\r\n sel += '</select>';\r\n this.selectedParamDefault = this.selectedParam;\r\n this.html = '<div class=\"slider-div\">' +\r\n (\"<label for=\\\"\" + this.domId + \"_chk\\\" class=\\\"slider-label\\\">\" + this.name + \"</label>\") +\r\n sel + \"<br>\" +\r\n (\"<input id=\\\"\" + this.domId + \"_chk\\\" type=\\\"checkbox\\\" title=\\\"Lock/Unlock Slider\\\">\") +\r\n (\"<label id=\\\"\" + this.domId + \"_low\\\" class=\\\"low-high\\\"></label>\") +\r\n (\"<input id=\\\"\" + this.domId + \"\\\" type=\\\"range\\\" value=\\\"50\\\" min=\\\"0\\\" max=\\\"100\\\" step=\\\"0.1\\\">\") +\r\n (\"<label id=\\\"\" + this.domId + \"_high\\\" class=\\\"low-high\\\"></label>\") +\r\n (\"<label id=\\\"\" + this.domId + \"_lbl\\\" for=\\\"\" + this.domId + \"\\\" class=\\\"percent-label\\\"></label></div>\");\r\n }\r\n /**\r\n * add html to dom\r\n * @param {jQuery} $container - container element\r\n */\r\n _Slider.prototype.addToDom = function ($container) {\r\n $container.append(this.html);\r\n this.labelLow = $(\"#\" + this.domId + \"_low\");\r\n this.labelHigh = $(\"#\" + this.domId + \"_high\");\r\n this.labelVal = $(\"#\" + this.domId + \"_lbl\");\r\n this.slider = $(\"#\" + this.domId);\r\n this.selectionBox = $(\"#\" + this.domId + \"_chg\");\r\n this.chk = $(\"#\" + this.domId + \"_chk\");\r\n };\r\n /**\r\n * increment the slider\r\n * @param {number} delta change delta\r\n * @returns {number} the remainder not able to be allocated to this slider\r\n */\r\n _Slider.prototype.increment = function (delta) {\r\n var remainder = 0;\r\n delta = Number(delta.toFixed(1));\r\n this._weight += delta;\r\n if (this._weight < this._min) {\r\n remainder = this._min - this._weight;\r\n this._weight = this._min;\r\n this.atMin = true;\r\n }\r\n else if (this._weight > this._max) {\r\n remainder = this._max - this._weight;\r\n this._weight = this._max;\r\n this.atMax = true;\r\n }\r\n else {\r\n this.atMin = false;\r\n this.atMax = false;\r\n }\r\n this.slider.val(this._weight.toFixed(1));\r\n this.labelVal.html(this._weight.toFixed(1) + '%');\r\n return remainder;\r\n };\r\n /**\r\n * set the value and drop down\r\n * @param {number} newVal the new value\r\n * @param {string} selectedParam the selected parameter\r\n */\r\n _Slider.prototype.setValAndDropDown = function (newVal, selectedParam) {\r\n this.min = 0;\r\n this.max = 100;\r\n this.weight = newVal;\r\n this.slider.val(newVal.toFixed(1));\r\n this.selectionBox.val(selectedParam);\r\n this.selectedParam = selectedParam;\r\n this.locked = true;\r\n };\r\n Object.defineProperty(_Slider.prototype, \"locked\", {\r\n /**\r\n *\r\n * @returns {boolean} if locked\r\n */\r\n get: function () {\r\n return this._locked;\r\n },\r\n /**\r\n *\r\n * @param {boolean} val if locked\r\n */\r\n set: function (val) {\r\n this._locked = val;\r\n this.slider.prop('disabled', this._locked);\r\n this.selectionBox.prop('disabled', this._locked);\r\n this.chk.prop('checked', !this._locked);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(_Slider.prototype, \"min\", {\r\n /**\r\n *\r\n * @returns {number} the minimum\r\n */\r\n get: function () {\r\n return this._min;\r\n },\r\n /**\r\n *\r\n * @param {number} newVal new minimum\r\n */\r\n set: function (newVal) {\r\n this._min = Number(newVal.toFixed(1));\r\n if (this._min < 0) {\r\n this._min = 0;\r\n }\r\n this.labelLow.html(this._min.toFixed(1));\r\n this.slider.attr('min', this._min.toFixed(1));\r\n this.atMin = this._weight == this._min;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(_Slider.prototype, \"max\", {\r\n /**\r\n *\r\n * @returns {number} the maximum\r\n */\r\n get: function () {\r\n return this._max;\r\n },\r\n /**\r\n *\r\n * @param {number} newVal the maximum\r\n */\r\n set: function (newVal) {\r\n this._max = Number(newVal.toFixed(1));\r\n if (this._max > 100) {\r\n this._max = 100.0;\r\n }\r\n this.labelHigh.html(this._max.toFixed(1));\r\n this.slider.attr('max', this._max.toFixed(1));\r\n this.atMax = this._weight == this._max;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(_Slider.prototype, \"weight\", {\r\n /**\r\n *\r\n * @returns {number} the weight\r\n */\r\n get: function () {\r\n return this._weight;\r\n },\r\n /**\r\n *\r\n * @param {number} newVal the weight\r\n */\r\n set: function (newVal) {\r\n this._weight = Number(newVal.toFixed(1));\r\n this.labelVal.html(this._weight.toFixed(1) + '%');\r\n if (this._weight <= this._min) {\r\n this.atMin = true;\r\n this.atMax = false;\r\n }\r\n else if (this._weight >= this._max) {\r\n this.atMin = false;\r\n this.atMax = true;\r\n }\r\n else {\r\n this.atMin = false;\r\n this.atMax = false;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return _Slider;\r\n}());\r\nnm._Slider = _Slider;\r\n/**\r\n * class to keep track of the sliders\r\n */\r\nvar TipSliders = (function () {\r\n /**\r\n *\r\n * @param sliderConfigs\r\n * @param presetConfig\r\n * @param divId\r\n * @param presetSelector\r\n * @param regionSelector\r\n * @param versionSelector\r\n * @param chgCallback\r\n */\r\n function TipSliders(sliderConfigs, presetConfig, divId, presetSelector, regionSelector, versionSelector, chgCallback) {\r\n var _this = this;\r\n this.resetting = false;\r\n this.reservedPercent = 0.0;\r\n this.$container = $('#' + divId);\r\n this.$container.addClass('slider-container');\r\n this._changedCallback = typeof chgCallback == 'function' ? chgCallback : function () { };\r\n this._$presetSelector = presetSelector;\r\n this._$regionSelector = regionSelector;\r\n this._$versionSelector = versionSelector;\r\n this._sliderList = [];\r\n this._sliderLookup = {};\r\n for (var i = 0; i < sliderConfigs.length; i++) {\r\n var sld = new _Slider(sliderConfigs[i]);\r\n this._sliderList.push(sld);\r\n this._sliderLookup[sld.domId] = sld;\r\n sld.addToDom(this.$container);\r\n }\r\n this._presetArray = [];\r\n this._presetLookup = {};\r\n for (var i = 0; i < presetConfig.length; i++) {\r\n var preset = new TipPresets(presetConfig[i]);\r\n var idx = (i + 1).toFixed();\r\n this._presetLookup[idx] = preset;\r\n this._presetArray.push(preset);\r\n this._$presetSelector.append(\"<option value=\\\"\" + idx + \"\\\">\" + preset.label + \"</option>\");\r\n }\r\n this._lockedList = [];\r\n this._inRangeList = [];\r\n this._atMinList = [];\r\n this._atMaxList = [];\r\n this.lockedCount = 10;\r\n this.notLockedCount = 0;\r\n this._splitSliderArray();\r\n this._$presetSelector.change(function () {\r\n _this.setPresetValues();\r\n _this._runChangedCallback();\r\n });\r\n this._$regionSelector.change(function () {\r\n _this._runChangedCallback();\r\n });\r\n this._$versionSelector.change(function () {\r\n _this._runChangedCallback();\r\n });\r\n this._$presetSelector.trigger('change');\r\n this._addEventListeners();\r\n }\r\n TipSliders.prototype._runChangedCallback = function () {\r\n this._changedCallback(this.paramWeightsRegionVersion);\r\n };\r\n Object.defineProperty(TipSliders.prototype, \"changedCallback\", {\r\n get: function () {\r\n return this._changedCallback;\r\n },\r\n set: function (chg) {\r\n this._changedCallback = chg;\r\n this._runChangedCallback();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TipSliders.prototype.setPresetValues = function () {\r\n var idx = this._$presetSelector.val() || '1';\r\n var thePreset = this._presetLookup[idx];\r\n for (var i = 0; i < thePreset.presets.length; i++) {\r\n var presetValues = thePreset.presets[i];\r\n var theSlider = this._sliderList[i];\r\n theSlider.locked = true;\r\n theSlider.setValAndDropDown(presetValues.value, presetValues.column);\r\n }\r\n };\r\n /**\r\n * split array into subarrays holding the sliders\r\n * @private\r\n */\r\n TipSliders.prototype._splitSliderArray = function () {\r\n this._lockedList = [];\r\n this._inRangeList = [];\r\n this._atMinList = [];\r\n this._atMaxList = [];\r\n for (var i = 0; i < this._sliderList.length; i++) {\r\n var sld = this._sliderList[i];\r\n if (sld.locked) {\r\n this._lockedList.push(sld);\r\n }\r\n else if (sld.atMin) {\r\n this._atMinList.push(sld);\r\n }\r\n else if (sld.atMax) {\r\n this._atMaxList.push(sld);\r\n }\r\n else {\r\n this._inRangeList.push(sld);\r\n }\r\n }\r\n this.lockedCount = this._lockedList.length;\r\n this.notLockedCount = this._sliderList.length - this.lockedCount;\r\n };\r\n /**\r\n * handle remainder, recursive to take care of min max overshoots\r\n * @param {number} remain the remainder\r\n * @param {string} skipDomId - this dom id\r\n * @private\r\n */\r\n TipSliders.prototype._handleRemainder = function (remain, skipDomId) {\r\n remain = Number(remain.toFixed(1));\r\n if (remain == 0) {\r\n return;\r\n }\r\n this._splitSliderArray();\r\n var canChangeArray = [];\r\n for (var i = 0; i < this._inRangeList.length; i++) {\r\n var sld = this._inRangeList[i];\r\n if (sld.domId == skipDomId) {\r\n continue;\r\n }\r\n canChangeArray.push(sld);\r\n }\r\n if (remain > 0) {\r\n for (var i = 0; i < this._atMaxList.length; i++) {\r\n var sld = this._atMaxList[i];\r\n if (sld.domId == skipDomId) {\r\n continue;\r\n }\r\n canChangeArray.push(sld);\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < this._atMinList.length; i++) {\r\n var sld = this._atMinList[i];\r\n if (sld.domId == skipDomId) {\r\n continue;\r\n }\r\n canChangeArray.push(sld);\r\n }\r\n }\r\n if (canChangeArray.length == 0) {\r\n return;\r\n }\r\n var inc = -1 * Number((remain / canChangeArray.length).toFixed(1));\r\n var newRemainder = 0;\r\n for (var i = 0; i < canChangeArray.length; i++) {\r\n newRemainder += canChangeArray[i].increment(inc);\r\n }\r\n this._handleRemainder(newRemainder, skipDomId);\r\n };\r\n /**\r\n *\r\n * @param {object} keyValList key and value list\r\n */\r\n TipSliders.prototype.setValues = function (keyValList) {\r\n this.resetting = true;\r\n for (var k in keyValList) {\r\n if (keyValList.hasOwnProperty(k)) {\r\n this._sliderLookup[k].setValAndDropDown(keyValList[k][0], keyValList[k][1]);\r\n }\r\n }\r\n this.resetting = false;\r\n };\r\n /**\r\n * get the weight sum\r\n * @returns {number} the weight sum\r\n */\r\n TipSliders.prototype.getSum = function () {\r\n var total = 0;\r\n for (var i = 0; i < this._sliderList.length; i++) {\r\n var sld = this._sliderList[i];\r\n total += Number(sld.weight.toFixed(1));\r\n }\r\n return total;\r\n };\r\n /**\r\n * get the parameter weights\r\n * @returns {object} lookup with parameter weights\r\n */\r\n TipSliders.prototype.getParams = function () {\r\n var paramWeights = {};\r\n for (var i = 0; i < this._sliderList.length; i++) {\r\n var sld = this._sliderList[i];\r\n paramWeights[sld.selectedParam] = Number(sld.weight.toFixed(1));\r\n }\r\n return paramWeights;\r\n };\r\n TipSliders.prototype._addEventListeners = function () {\r\n var ___this = this;\r\n //change function\r\n this.$container.find('input[type=\"range\"]').change(function () {\r\n if (___this.resetting) {\r\n return;\r\n }\r\n var $this = $(this);\r\n var domId = this['id'];\r\n var sldr = ___this._sliderLookup[domId];\r\n var newValue = parseFloat($this.val());\r\n var oldValue = sldr.weight;\r\n var diff = newValue - oldValue;\r\n diff = Number(diff.toFixed(1));\r\n sldr.weight = Number(newValue.toFixed(1));\r\n ___this._handleRemainder(diff, domId);\r\n //cleanup, make sure the sum is still 100\r\n var sum = Number(___this.getSum().toFixed(1));\r\n if (sum > 100) {\r\n loop1: while (true) {\r\n for (var i = 0; i < ___this._sliderList.length; i++) {\r\n var sld = ___this._sliderList[i];\r\n if (sld.domId == domId || sld.locked || sld.atMin) {\r\n continue;\r\n }\r\n sld.increment(-0.1);\r\n sum -= 0.1;\r\n if (sum.toFixed(1) == '100.0') {\r\n break loop1;\r\n }\r\n }\r\n }\r\n }\r\n else if (sum < 100) {\r\n loop1: while (true) {\r\n for (var i = 0; i < ___this._sliderList.length; i++) {\r\n var sld = ___this._sliderList[i];\r\n if (sld.domId == domId || sld.locked || sld.atMax) {\r\n continue;\r\n }\r\n sld.increment(0.1);\r\n sum += 0.1;\r\n if (sum.toFixed(1) == '100.0') {\r\n break loop1;\r\n }\r\n }\r\n }\r\n }\r\n ___this._$presetSelector.val('0');\r\n ___this._runChangedCallback();\r\n });\r\n //update the selected parameter when the selection is changed\r\n $('.show-select').change(function () {\r\n if (___this.resetting) {\r\n return;\r\n }\r\n ___this._sliderLookup[this['id'].replace('_chg', '')].selectedParam = $(this).val();\r\n ___this._$presetSelector.val('0');\r\n ___this._runChangedCallback();\r\n });\r\n //lock the slider and update the reserved percent\r\n this.$container.find('input[type=\"checkbox\"]').change(function () {\r\n var domEl = this;\r\n ___this._sliderLookup[domEl.id.replace('_chk', '')].locked = !domEl.checked;\r\n ___this.reservedPercent = 0.0;\r\n ___this.notLockedCount = 0;\r\n var notLockedSliders = [];\r\n for (var i = 0; i < ___this._sliderList.length; i++) {\r\n var sld = ___this._sliderList[i];\r\n if (sld.locked) {\r\n ___this.reservedPercent += sld.weight;\r\n continue;\r\n }\r\n notLockedSliders.push(sld);\r\n ___this.notLockedCount++;\r\n }\r\n for (var i = 0; i < ___this._sliderList.length; i++) {\r\n var sld = ___this._sliderList[i];\r\n if (sld.locked) {\r\n continue;\r\n }\r\n sld.max = 100 - ___this.reservedPercent;\r\n }\r\n if (notLockedSliders.length == 1) {\r\n notLockedSliders[0].min = notLockedSliders[0].weight;\r\n }\r\n else {\r\n for (var i = 0; i < notLockedSliders.length; i++) {\r\n notLockedSliders[i].min = 0;\r\n }\r\n }\r\n });\r\n };\r\n Object.defineProperty(TipSliders.prototype, \"paramWeightsRegionVersion\", {\r\n get: function () {\r\n return { paramWeights: this.getParams(),\r\n region: this._$regionSelector.val(), mmVersion: this._$versionSelector.val() };\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return TipSliders;\r\n}());\r\nexports.TipSliders = TipSliders;\r\nnm.Sliders = TipSliders;\r\nexports.default = TipSliders;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2xpZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIlNsaWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7OztBQUVILDJDQUFzQztBQUN0QywwQkFBNkI7QUFFN0IsSUFBSSxFQUFFLEdBQUcsaUJBQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQXVCaEM7SUFLSSxvQkFBWSxJQUFxQjtRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXhELElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUVmLEdBQUcsQ0FBQyxDQUFXLFVBQVksRUFBWixLQUFBLElBQUksQ0FBQyxPQUFPLEVBQVosY0FBWSxFQUFaLElBQVk7WUFBdEIsSUFBSSxFQUFFLFNBQUE7WUFDUCxNQUFNLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQztTQUN0QjtRQUVELEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQSxDQUFDO1lBQ2YsTUFBTSxnQ0FBZ0MsQ0FBQztRQUMzQyxDQUFDO0lBQ0wsQ0FBQztJQUNMLGlCQUFDO0FBQUQsQ0FBQyxBQXBCRCxJQW9CQztBQUdEO0lBdUJJOzs7O09BSUc7SUFDSCxpQkFBWSxZQUE2QjtRQUNyQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMs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QUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDO1lBQzVDLENBQUM7WUFFRCxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0IsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUN6RCxDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ0osR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztvQkFDL0MsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztnQkFDaEMsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUVQLENBQUM7SUFFRCxzQkFBSSxpREFBeUI7YUFBN0I7WUFDSSxNQUFNLENBQUMsRUFBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbEMsTUFBTSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBWSxFQUFDLENBQUE7UUFDekcsQ0FBQzs7O09BQUE7SUFDTCxpQkFBQztBQUFELENBQUMsQUFwWEQsSUFvWEM7QUFwWFksZ0NBQVU7QUFzWHZCLEVBQUUsQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDO0FBQ3hCLGtCQUFlLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVkIGJ5IGdhdm9yaGVzIG9uIDEyLzEwLzIwMTUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHByb3ZpZGUgZnJvbSAnLi4vdXRpbC9wcm92aWRlJztcclxuaW1wb3J0ICQgPSByZXF1aXJlKCdqcXVlcnknKTtcclxuXHJcbmxldCBubSA9IHByb3ZpZGUoJ2NvbGxlY3Rpb25zJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRpcFNsaWRlckNvbmZpZyB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgeWVhck9wdGlvbnM6IEFycmF5PHtjb2x1bW46IHN0cmluZywgbGFiZWw6IHN0cmluZ30+XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGlwUHJlc2V0Q29uZmlnIHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBwcmVzZXRzOiBBcnJheTx7Y29sdW1uOiBzdHJpbmcsIHZhbHVlOiBudW1iZXJ9PlxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZVJlc3BvbnNle1xyXG4gICAgcGFyYW1XZWlnaHRzOiBPYmplY3Q7XHJcbiAgICByZWdpb246IHN0cmluZztcclxuICAgIG1tVmVyc2lvbjogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZUNhbGxiYWNre1xyXG4gICAgKGNoZzogQ2hhbmdlUmVzcG9uc2UpOiBhbnlcclxufVxyXG5cclxuXHJcbmNsYXNzIFRpcFByZXNldHMgaW1wbGVtZW50cyBUaXBQcmVzZXRDb25maWcge1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIHByZXNldHM6IEFycmF5PHtjb2x1bW46IHN0cmluZywgdmFsdWU6IG51bWJlcn0+O1xyXG4gICAgZG9tSWQ6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihjb25mOiBUaXBQcmVzZXRDb25maWcpIHtcclxuICAgICAgICB0aGlzLmxhYmVsID0gY29uZi5sYWJlbDtcclxuICAgICAgICB0aGlzLnByZXNldHMgPSBjb25mLnByZXNldHM7XHJcbiAgICAgICAgdGhpcy5kb21JZCA9IHRoaXMubGFiZWwucmVwbGFjZSgvIC9nLCAnJykudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgbGV0IHRoZVN1bSA9IDA7XHJcblxyXG4gICAgICAgIGZvciAobGV0IHByIG9mIHRoaXMucHJlc2V0cyl7XHJcbiAgICAgICAgICAgIHRoZVN1bSArPSBwci52YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGVTdW0gIT0gMTAwKXtcclxuICAgICAgICAgICAgdGhyb3cgJ3ByZXNldCBzdW0gZG9lcyBub3RlIGVxdWFsIDEwMCc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuY2xhc3MgX1NsaWRlciB7XHJcbiAgICBfbWluOiBudW1iZXI7XHJcbiAgICBfbWF4OiBudW1iZXI7XHJcbiAgICBfbG9ja2VkOiBib29sZWFuO1xyXG4gICAgYXRNaW46IGJvb2xlYW47XHJcbiAgICBhdE1heDogYm9vbGVhbjtcclxuICAgIF93ZWlnaHREZWZhdWx0OiBudW1iZXI7XHJcbiAgICBfd2VpZ2h0OiBudW1iZXI7XHJcbiAgICBodG1sOiBzdHJpbmc7XHJcbiAgICBkb21JZDogc3RyaW5nO1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG5cclxuICAgIGxhYmVsTG93OiBKUXVlcnk7XHJcbiAgICBsYWJlbEhpZ2g6IEpRdWVyeTtcclxuICAgIGxhYmVsVmFsOiBKUXVlcnk7XHJcbiAgICBzbGlkZXI6IEpRdWVyeTtcclxuICAgIHNlbGVjdGlvbkJveDogSlF1ZXJ5O1xyXG4gICAgY2hrOiBKUXVlcnk7XHJcblxyXG4gICAgc2VsZWN0ZWRQYXJhbTogYW55O1xyXG4gICAgc2VsZWN0ZWRQYXJhbURlZmF1bHQ6IGFueTtcclxuICAgIF9kcm9wZG93blNlbGVjdGlvbjogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2xpZGVyIGNvbnN0cnVjdG9yXHJcbiAgICAgKiBAcGFyYW0gc2xpZGVyQ29uZmlnIC0gdGhlIGNvbmZpZ3VyYXRpb25cclxuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHNsaWRlckNvbmZpZzogVGlwU2xpZGVyQ29uZmlnKSB7XHJcbiAgICAgICAgdGhpcy5fZHJvcGRvd25TZWxlY3Rpb24gPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX3dlaWdodCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gc2xpZGVyQ29uZmlnLmxhYmVsO1xyXG4gICAgICAgIHRoaXMuZG9tSWQgPSB0aGlzLm5hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8gL2csICctJyk7XHJcblxyXG4gICAgICAgIHRoaXMuX2xvY2tlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLl9taW4gPSAwLjA7XHJcbiAgICAgICAgdGhpcy5fbWF4ID0gMTAwO1xyXG5cclxuICAgICAgICB0aGlzLmxhYmVsTG93ID0gbnVsbDtcclxuICAgICAgICB0aGlzLmxhYmVsSGlnaCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5sYWJlbFZhbCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5zbGlkZXIgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuY2hrID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5hdE1pbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuYXRNYXggPSBmYWxzZTtcclxuXHJcblxyXG4gICAgICAgIGxldCBzZWwgPSBgPHNlbGVjdCBjbGFzcz1cIiR7c2xpZGVyQ29uZmlnLnllYXJPcHRpb25zLmxlbmd0aCA9PSAxID8gJ2hpZGRlbi1zZWxlY3QnIDogJ3Nob3ctc2VsZWN0J31cIiBpZD1cIiR7dGhpcy5kb21JZH1fY2hnXCI+YDtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzbGlkZXJDb25maWcueWVhck9wdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0bSA9IHNsaWRlckNvbmZpZy55ZWFyT3B0aW9uc1tpXTtcclxuICAgICAgICAgICAgc2VsICs9IGA8b3B0aW9uIHZhbHVlPVwiJHtpdG0uY29sdW1ufVwiPiR7aXRtLmxhYmVsfTwvb3B0aW9uPmA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNlbCArPSAnPC9zZWxlY3Q+JztcclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmFtRGVmYXVsdCA9IHRoaXMuc2VsZWN0ZWRQYXJhbTtcclxuXHJcbiAgICAgICAgdGhpcy5odG1sID0gJzxkaXYgY2xhc3M9XCJzbGlkZXItZGl2XCI+JyArXHJcbiAgICAgICAgICAgIGA8bGFiZWwgZm9yPVwiJHt0aGlzLmRvbUlkfV9jaGtcIiBjbGFzcz1cInNsaWRlci1sYWJlbFwiPiR7dGhpcy5uYW1lfTwvbGFiZWw+YCArXHJcbiAgICAgICAgICAgIHNlbCArIGA8YnI+YCArXHJcbiAgICAgICAgICAgIGA8aW5wdXQgaWQ9XCIke3RoaXMuZG9tSWR9X2Noa1wiIHR5cGU9XCJjaGVja2JveFwiIHRpdGxlPVwiTG9jay9VbmxvY2sgU2xpZGVyXCI+YCArXHJcbiAgICAgICAgICAgIGA8bGFiZWwgaWQ9XCIke3RoaXMuZG9tSWR9X2xvd1wiIGNsYXNzPVwibG93LWhpZ2hcIj48L2xhYmVsPmAgK1xyXG4gICAgICAgICAgICBgPGlucHV0IGlkPVwiJHt0aGlzLmRvbUlkfVwiIHR5cGU9XCJyYW5nZVwiIHZhbHVlPVwiNTBcIiBtaW49XCIwXCIgbWF4PVwiMTAwXCIgc3RlcD1cIjAuMVwiPmAgK1xyXG4gICAgICAgICAgICBgPGxhYmVsIGlkPVwiJHt0aGlzLmRvbUlkfV9oaWdoXCIgY2xhc3M9XCJsb3ctaGlnaFwiPjwvbGFiZWw+YCArXHJcbiAgICAgICAgICAgIGA8bGFiZWwgaWQ9XCIke3RoaXMuZG9tSWR9X2xibFwiIGZvcj1cIiR7dGhpcy5kb21JZH1cIiBjbGFzcz1cInBlcmNlbnQtbGFiZWxcIj48L2xhYmVsPjwvZGl2PmA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhZGQgaHRtbCB0byBkb21cclxuICAgICAqIEBwYXJhbSB7alF1ZXJ5fSAkY29udGFpbmVyIC0gY29udGFpbmVyIGVsZW1lbnRcclxuICAgICAqL1xyXG4gICAgYWRkVG9Eb20oJGNvbnRhaW5lcikge1xyXG4gICAgICAgICRjb250YWluZXIuYXBwZW5kKHRoaXMuaHRtbCk7XHJcbiAgICAgICAgdGhpcy5sYWJlbExvdyA9ICQoYCMke3RoaXMuZG9tSWR9X2xvd2ApO1xyXG4gICAgICAgIHRoaXMubGFiZWxIaWdoID0gJChgIyR7dGhpcy5kb21JZH1faGlnaGApO1xyXG4gICAgICAgIHRoaXMubGFiZWxWYWwgPSAkKGAjJHt0aGlzLmRvbUlkfV9sYmxgKTtcclxuICAgICAgICB0aGlzLnNsaWRlciA9ICQoYCMke3RoaXMuZG9tSWR9YCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25Cb3ggPSAkKGAjJHt0aGlzLmRvbUlkfV9jaGdgKTtcclxuICAgICAgICB0aGlzLmNoayA9ICQoYCMke3RoaXMuZG9tSWR9X2Noa2ApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogaW5jcmVtZW50IHRoZSBzbGlkZXJcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkZWx0YSBjaGFuZ2UgZGVsdGFcclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IHRoZSByZW1haW5kZXIgbm90IGFibGUgdG8gYmUgYWxsb2NhdGVkIHRvIHRoaXMgc2xpZGVyXHJcbiAgICAgKi9cclxuICAgIGluY3JlbWVudChkZWx0YSkge1xyXG4gICAgICAgIGxldCByZW1haW5kZXIgPSAwO1xyXG4gICAgICAgIGRlbHRhID0gTnVtYmVyKGRlbHRhLnRvRml4ZWQoMSkpO1xyXG5cclxuICAgICAgICB0aGlzLl93ZWlnaHQgKz0gZGVsdGE7XHJcbiAgICAgICAgaWYgKHRoaXMuX3dlaWdodCA8IHRoaXMuX21pbikge1xyXG4gICAgICAgICAgICByZW1haW5kZXIgPSB0aGlzLl9taW4gLSB0aGlzLl93ZWlnaHQ7XHJcbiAgICAgICAgICAgIHRoaXMuX3dlaWdodCA9IHRoaXMuX21pbjtcclxuICAgICAgICAgICAgdGhpcy5hdE1pbiA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl93ZWlnaHQgPiB0aGlzLl9tYXgpIHtcclxuICAgICAgICAgICAgcmVtYWluZGVyID0gdGhpcy5fbWF4IC0gdGhpcy5fd2VpZ2h0O1xyXG4gICAgICAgICAgICB0aGlzLl93ZWlnaHQgPSB0aGlzLl9tYXg7XHJcbiAgICAgICAgICAgIHRoaXMuYXRNYXggPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXRNaW4gPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5hdE1heCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zbGlkZXIudmFsKHRoaXMuX3dlaWdodC50b0ZpeGVkKDEpKTtcclxuICAgICAgICB0aGlzLmxhYmVsVmFsLmh0bWwodGhpcy5fd2VpZ2h0LnRvRml4ZWQoMSkgKyAnJScpO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVtYWluZGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IHRoZSB2YWx1ZSBhbmQgZHJvcCBkb3duXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbmV3VmFsIHRoZSBuZXcgdmFsdWVcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZWxlY3RlZFBhcmFtIHRoZSBzZWxlY3RlZCBwYXJhbWV0ZXJcclxuICAgICAqL1xyXG4gICAgc2V0VmFsQW5kRHJvcERvd24obmV3VmFsOiBudW1iZXIsIHNlbGVjdGVkUGFyYW06IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMubWluID0gMDtcclxuICAgICAgICB0aGlzLm1heCA9IDEwMDtcclxuICAgICAgICB0aGlzLndlaWdodCA9IG5ld1ZhbDtcclxuICAgICAgICB0aGlzLnNsaWRlci52YWwobmV3VmFsLnRvRml4ZWQoMSkpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQm94LnZhbChzZWxlY3RlZFBhcmFtKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUGFyYW0gPSBzZWxlY3RlZFBhcmFtO1xyXG4gICAgICAgIHRoaXMubG9ja2VkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gaWYgbG9ja2VkXHJcbiAgICAgKi9cclxuICAgIGdldCBsb2NrZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2tlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHZhbCBpZiBsb2NrZWRcclxuICAgICAqL1xyXG4gICAgc2V0IGxvY2tlZCh2YWwpIHtcclxuICAgICAgICB0aGlzLl9sb2NrZWQgPSB2YWw7XHJcbiAgICAgICAgdGhpcy5zbGlkZXIucHJvcCgnZGlzYWJsZWQnLCB0aGlzLl9sb2NrZWQpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQm94LnByb3AoJ2Rpc2FibGVkJywgdGhpcy5fbG9ja2VkKTtcclxuICAgICAgICB0aGlzLmNoay5wcm9wKCdjaGVja2VkJywgIXRoaXMuX2xvY2tlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gdGhlIG1pbmltdW1cclxuICAgICAqL1xyXG4gICAgZ2V0IG1pbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWluO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBuZXdWYWwgbmV3IG1pbmltdW1cclxuICAgICAqL1xyXG4gICAgc2V0IG1pbihuZXdWYWwpIHtcclxuICAgICAgICB0aGlzLl9taW4gPSBOdW1iZXIobmV3VmFsLnRvRml4ZWQoMSkpO1xyXG4gICAgICAgIGlmICh0aGlzLl9taW4gPCAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX21pbiA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFiZWxMb3cuaHRtbCh0aGlzLl9taW4udG9GaXhlZCgxKSk7XHJcbiAgICAgICAgdGhpcy5zbGlkZXIuYXR0cignbWluJywgdGhpcy5fbWluLnRvRml4ZWQoMSkpO1xyXG4gICAgICAgIHRoaXMuYXRNaW4gPSB0aGlzLl93ZWlnaHQgPT0gdGhpcy5fbWluO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IHRoZSBtYXhpbXVtXHJcbiAgICAgKi9cclxuICAgIGdldCBtYXgoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbmV3VmFsIHRoZSBtYXhpbXVtXHJcbiAgICAgKi9cclxuICAgIHNldCBtYXgobmV3VmFsKSB7XHJcbiAgICAgICAgdGhpcy5fbWF4ID0gTnVtYmVyKG5ld1ZhbC50b0ZpeGVkKDEpKTtcclxuICAgICAgICBpZiAodGhpcy5fbWF4ID4gMTAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX21heCA9IDEwMC4wO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxhYmVsSGlnaC5odG1sKHRoaXMuX21heC50b0ZpeGVkKDEpKTtcclxuICAgICAgICB0aGlzLnNsaWRlci5hdHRyKCdtYXgnLCB0aGlzLl9tYXgudG9GaXhlZCgxKSk7XHJcbiAgICAgICAgdGhpcy5hdE1heCA9IHRoaXMuX3dlaWdodCA9PSB0aGlzLl9tYXg7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gdGhlIHdlaWdodFxyXG4gICAgICovXHJcbiAgICBnZXQgd2VpZ2h0KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl93ZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG5ld1ZhbCB0aGUgd2VpZ2h0XHJcbiAgICAgKi9cclxuICAgIHNldCB3ZWlnaHQobmV3VmFsKSB7XHJcbiAgICAgICAgdGhpcy5fd2VpZ2h0ID0gTnVtYmVyKG5ld1ZhbC50b0ZpeGVkKDEpKTtcclxuICAgICAgICB0aGlzLmxhYmVsVmFsLmh0bWwodGhpcy5fd2VpZ2h0LnRvRml4ZWQoMSkgKyAnJScpO1xyXG4gICAgICAgIGlmICh0aGlzLl93ZWlnaHQgPD0gdGhpcy5fbWluKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXRNaW4gPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmF0TWF4ID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl93ZWlnaHQgPj0gdGhpcy5fbWF4KSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXRNaW4gPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5hdE1heCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hdE1pbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmF0TWF4ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5ubS5fU2xpZGVyID0gX1NsaWRlcjtcclxuXHJcblxyXG4vKipcclxuICogY2xhc3MgdG8ga2VlcCB0cmFjayBvZiB0aGUgc2xpZGVyc1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRpcFNsaWRlcnMge1xyXG4gICAgJGNvbnRhaW5lcjogSlF1ZXJ5O1xyXG4gICAgcmVzZXJ2ZWRQZXJjZW50OiBudW1iZXI7XHJcbiAgICBsb2NrZWRDb3VudDogbnVtYmVyO1xyXG4gICAgbm90TG9ja2VkQ291bnQ6IG51bWJlcjtcclxuICAgIHByaXZhdGUgX3NsaWRlckxpc3Q6IEFycmF5PF9TbGlkZXI+O1xyXG4gICAgcHJpdmF0ZSBfc2xpZGVyTG9va3VwOiB7W3M6IHN0cmluZ106IF9TbGlkZXJ9O1xyXG4gICAgcHJpdmF0ZSByZXNldHRpbmc6IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIF9jaGFuZ2VkQ2FsbGJhY2s6IENoYW5nZUNhbGxiYWNrO1xyXG5cclxuICAgIHByaXZhdGUgX2xvY2tlZExpc3Q6IEFycmF5PF9TbGlkZXI+O1xyXG4gICAgcHJpdmF0ZSBfaW5SYW5nZUxpc3Q6IEFycmF5PF9TbGlkZXI+O1xyXG4gICAgcHJpdmF0ZSBfYXRNaW5MaXN0OiBBcnJheTxfU2xpZGVyPjtcclxuICAgIHByaXZhdGUgX2F0TWF4TGlzdDogQXJyYXk8X1NsaWRlcj47XHJcblxyXG4gICAgcHJpdmF0ZSBfcHJlc2V0QXJyYXk6IEFycmF5PFRpcFByZXNldHM+O1xyXG4gICAgcHJpdmF0ZSBfcHJlc2V0TG9va3VwOiB7W3M6IHN0cmluZ106IFRpcFByZXNldHN9O1xyXG5cclxuICAgIHByaXZhdGUgXyRwcmVzZXRTZWxlY3RvcjogSlF1ZXJ5O1xyXG4gICAgcHJpdmF0ZSBfJHJlZ2lvblNlbGVjdG9yOiBKUXVlcnk7XHJcbiAgICBwcml2YXRlIF8kdmVyc2lvblNlbGVjdG9yOiBKUXVlcnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHNsaWRlckNvbmZpZ3NcclxuICAgICAqIEBwYXJhbSBwcmVzZXRDb25maWdcclxuICAgICAqIEBwYXJhbSBkaXZJZFxyXG4gICAgICogQHBhcmFtIHByZXNldFNlbGVjdG9yXHJcbiAgICAgKiBAcGFyYW0gcmVnaW9uU2VsZWN0b3JcclxuICAgICAqIEBwYXJhbSB2ZXJzaW9uU2VsZWN0b3JcclxuICAgICAqIEBwYXJhbSBjaGdDYWxsYmFja1xyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihzbGlkZXJDb25maWdzOiBBcnJheTxUaXBTbGlkZXJDb25maWc+LCBwcmVzZXRDb25maWc6IEFycmF5PFRpcFByZXNldENvbmZpZz4sXHJcbiAgICAgICAgICAgICAgICBkaXZJZDogc3RyaW5nLCBwcmVzZXRTZWxlY3RvcjogSlF1ZXJ5LCByZWdpb25TZWxlY3RvcjogSlF1ZXJ5LCB2ZXJzaW9uU2VsZWN0b3I6IEpRdWVyeSxcclxuICAgICAgICAgICAgICAgIGNoZ0NhbGxiYWNrPzogQ2hhbmdlQ2FsbGJhY2spIHtcclxuXHJcbiAgICAgICAgdGhpcy5yZXNldHRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlc2VydmVkUGVyY2VudCA9IDAuMDtcclxuICAgICAgICB0aGlzLiRjb250YWluZXIgPSAkKCcjJyArIGRpdklkKTtcclxuICAgICAgICB0aGlzLiRjb250YWluZXIuYWRkQ2xhc3MoJ3NsaWRlci1jb250YWluZXInKTtcclxuXHJcbiAgICAgICAgdGhpcy5fY2hhbmdlZENhbGxiYWNrID0gdHlwZW9mIGNoZ0NhbGxiYWNrID09ICdmdW5jdGlvbicgPyBjaGdDYWxsYmFjayA6ICgpID0+IHt9O1xyXG5cclxuICAgICAgICB0aGlzLl8kcHJlc2V0U2VsZWN0b3IgPSBwcmVzZXRTZWxlY3RvcjtcclxuICAgICAgICB0aGlzLl8kcmVnaW9uU2VsZWN0b3IgPSByZWdpb25TZWxlY3RvcjtcclxuICAgICAgICB0aGlzLl8kdmVyc2lvblNlbGVjdG9yID0gdmVyc2lvblNlbGVjdG9yO1xyXG5cclxuICAgICAgICB0aGlzLl9zbGlkZXJMaXN0ID0gW107XHJcbiAgICAgICAgdGhpcy5fc2xpZGVyTG9va3VwID0ge307XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2xpZGVyQ29uZmlncy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgc2xkID0gbmV3IF9TbGlkZXIoc2xpZGVyQ29uZmlnc1tpXSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NsaWRlckxpc3QucHVzaChzbGQpO1xyXG4gICAgICAgICAgICB0aGlzLl9zbGlkZXJMb29rdXBbc2xkLmRvbUlkXSA9IHNsZDtcclxuICAgICAgICAgICAgc2xkLmFkZFRvRG9tKHRoaXMuJGNvbnRhaW5lcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9wcmVzZXRBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuX3ByZXNldExvb2t1cCA9IHt9O1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByZXNldENvbmZpZy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgcHJlc2V0ID0gbmV3IFRpcFByZXNldHMocHJlc2V0Q29uZmlnW2ldKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBpZHggPSAoaSArIDEpLnRvRml4ZWQoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3ByZXNldExvb2t1cFtpZHhdID0gcHJlc2V0O1xyXG4gICAgICAgICAgICB0aGlzLl9wcmVzZXRBcnJheS5wdXNoKHByZXNldCk7XHJcbiAgICAgICAgICAgIHRoaXMuXyRwcmVzZXRTZWxlY3Rvci5hcHBlbmQoYDxvcHRpb24gdmFsdWU9XCIke2lkeH1cIj4ke3ByZXNldC5sYWJlbH08L29wdGlvbj5gKTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB0aGlzLl9sb2NrZWRMaXN0ID0gW107XHJcbiAgICAgICAgdGhpcy5faW5SYW5nZUxpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLl9hdE1pbkxpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLl9hdE1heExpc3QgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5sb2NrZWRDb3VudCA9IDEwO1xyXG4gICAgICAgIHRoaXMubm90TG9ja2VkQ291bnQgPSAwO1xyXG5cclxuICAgICAgICB0aGlzLl9zcGxpdFNsaWRlckFycmF5KCk7XHJcblxyXG5cclxuICAgICAgICB0aGlzLl8kcHJlc2V0U2VsZWN0b3IuY2hhbmdlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRQcmVzZXRWYWx1ZXMoKTtcclxuICAgICAgICAgICAgdGhpcy5fcnVuQ2hhbmdlZENhbGxiYWNrKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuXyRyZWdpb25TZWxlY3Rvci5jaGFuZ2UoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9ydW5DaGFuZ2VkQ2FsbGJhY2soKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHZlcnNpb25TZWxlY3Rvci5jaGFuZ2UoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9ydW5DaGFuZ2VkQ2FsbGJhY2soKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fJHByZXNldFNlbGVjdG9yLnRyaWdnZXIoJ2NoYW5nZScpO1xyXG5cclxuICAgICAgICB0aGlzLl9hZGRFdmVudExpc3RlbmVycygpO1xyXG4gICAgfVxyXG5cclxuICAgIF9ydW5DaGFuZ2VkQ2FsbGJhY2soKXtcclxuICAgICAgICB0aGlzLl9jaGFuZ2VkQ2FsbGJhY2sodGhpcy5wYXJhbVdlaWdodHNSZWdpb25WZXJzaW9uKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY2hhbmdlZENhbGxiYWNrKCk6IENoYW5nZUNhbGxiYWNre1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jaGFuZ2VkQ2FsbGJhY2tcclxuICAgIH1cclxuXHJcbiAgICBzZXQgY2hhbmdlZENhbGxiYWNrKGNoZzogQ2hhbmdlQ2FsbGJhY2spe1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZWRDYWxsYmFjayA9IGNoZztcclxuICAgICAgICB0aGlzLl9ydW5DaGFuZ2VkQ2FsbGJhY2soKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRQcmVzZXRWYWx1ZXMoKSB7XHJcbiAgICAgICAgbGV0IGlkeCA9IHRoaXMuXyRwcmVzZXRTZWxlY3Rvci52YWwoKSB8fCAnMSc7XHJcblxyXG4gICAgICAgIGxldCB0aGVQcmVzZXQgPSB0aGlzLl9wcmVzZXRMb29rdXBbaWR4XTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGVQcmVzZXQucHJlc2V0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgcHJlc2V0VmFsdWVzID0gdGhlUHJlc2V0LnByZXNldHNbaV07XHJcbiAgICAgICAgICAgIGxldCB0aGVTbGlkZXIgPSB0aGlzLl9zbGlkZXJMaXN0W2ldO1xyXG5cclxuICAgICAgICAgICAgdGhlU2xpZGVyLmxvY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoZVNsaWRlci5zZXRWYWxBbmREcm9wRG93bihwcmVzZXRWYWx1ZXMudmFsdWUsIHByZXNldFZhbHVlcy5jb2x1bW4pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNwbGl0IGFycmF5IGludG8gc3ViYXJyYXlzIGhvbGRpbmcgdGhlIHNsaWRlcnNcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIF9zcGxpdFNsaWRlckFycmF5KCkge1xyXG4gICAgICAgIHRoaXMuX2xvY2tlZExpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLl9pblJhbmdlTGlzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMuX2F0TWluTGlzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMuX2F0TWF4TGlzdCA9IFtdO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3NsaWRlckxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IHNsZCA9IHRoaXMuX3NsaWRlckxpc3RbaV07XHJcblxyXG4gICAgICAgICAgICBpZiAoc2xkLmxvY2tlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbG9ja2VkTGlzdC5wdXNoKHNsZCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc2xkLmF0TWluKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hdE1pbkxpc3QucHVzaChzbGQpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNsZC5hdE1heCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYXRNYXhMaXN0LnB1c2goc2xkKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2luUmFuZ2VMaXN0LnB1c2goc2xkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxvY2tlZENvdW50ID0gdGhpcy5fbG9ja2VkTGlzdC5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5ub3RMb2NrZWRDb3VudCA9IHRoaXMuX3NsaWRlckxpc3QubGVuZ3RoIC0gdGhpcy5sb2NrZWRDb3VudDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGhhbmRsZSByZW1haW5kZXIsIHJlY3Vyc2l2ZSB0byB0YWtlIGNhcmUgb2YgbWluIG1heCBvdmVyc2hvb3RzXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcmVtYWluIHRoZSByZW1haW5kZXJcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBza2lwRG9tSWQgLSB0aGlzIGRvbSBpZFxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgX2hhbmRsZVJlbWFpbmRlcihyZW1haW4sIHNraXBEb21JZCkge1xyXG5cclxuICAgICAgICByZW1haW4gPSBOdW1iZXIocmVtYWluLnRvRml4ZWQoMSkpO1xyXG4gICAgICAgIGlmIChyZW1haW4gPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zcGxpdFNsaWRlckFycmF5KCk7XHJcblxyXG4gICAgICAgIGxldCBjYW5DaGFuZ2VBcnJheSA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5faW5SYW5nZUxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IHNsZCA9IHRoaXMuX2luUmFuZ2VMaXN0W2ldO1xyXG4gICAgICAgICAgICBpZiAoc2xkLmRvbUlkID09IHNraXBEb21JZCkge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FuQ2hhbmdlQXJyYXkucHVzaChzbGQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlbWFpbiA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9hdE1heExpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCBzbGQgPSB0aGlzLl9hdE1heExpc3RbaV07XHJcbiAgICAgICAgICAgICAgICBpZiAoc2xkLmRvbUlkID09IHNraXBEb21JZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2FuQ2hhbmdlQXJyYXkucHVzaChzbGQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9hdE1pbkxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCBzbGQgPSB0aGlzLl9hdE1pbkxpc3RbaV07XHJcbiAgICAgICAgICAgICAgICBpZiAoc2xkLmRvbUlkID09IHNraXBEb21JZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2FuQ2hhbmdlQXJyYXkucHVzaChzbGQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2FuQ2hhbmdlQXJyYXkubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGluYyA9IC0xICogTnVtYmVyKChyZW1haW4gLyBjYW5DaGFuZ2VBcnJheS5sZW5ndGgpLnRvRml4ZWQoMSkpO1xyXG5cclxuICAgICAgICBsZXQgbmV3UmVtYWluZGVyID0gMDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbkNoYW5nZUFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIG5ld1JlbWFpbmRlciArPSBjYW5DaGFuZ2VBcnJheVtpXS5pbmNyZW1lbnQoaW5jKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2hhbmRsZVJlbWFpbmRlcihuZXdSZW1haW5kZXIsIHNraXBEb21JZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGtleVZhbExpc3Qga2V5IGFuZCB2YWx1ZSBsaXN0XHJcbiAgICAgKi9cclxuICAgIHNldFZhbHVlcyhrZXlWYWxMaXN0KSB7XHJcbiAgICAgICAgdGhpcy5yZXNldHRpbmcgPSB0cnVlO1xyXG4gICAgICAgIGZvciAobGV0IGsgaW4ga2V5VmFsTGlzdCkge1xyXG4gICAgICAgICAgICBpZiAoa2V5VmFsTGlzdC5oYXNPd25Qcm9wZXJ0eShrKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc2xpZGVyTG9va3VwW2tdLnNldFZhbEFuZERyb3BEb3duKGtleVZhbExpc3Rba11bMF0sIGtleVZhbExpc3Rba11bMV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmVzZXR0aW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIHdlaWdodCBzdW1cclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IHRoZSB3ZWlnaHQgc3VtXHJcbiAgICAgKi9cclxuICAgIGdldFN1bSgpIHtcclxuICAgICAgICBsZXQgdG90YWwgPSAwO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fc2xpZGVyTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgc2xkID0gdGhpcy5fc2xpZGVyTGlzdFtpXTtcclxuICAgICAgICAgICAgdG90YWwgKz0gTnVtYmVyKHNsZC53ZWlnaHQudG9GaXhlZCgxKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdG90YWw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBnZXQgdGhlIHBhcmFtZXRlciB3ZWlnaHRzXHJcbiAgICAgKiBAcmV0dXJucyB7b2JqZWN0fSBsb29rdXAgd2l0aCBwYXJhbWV0ZXIgd2VpZ2h0c1xyXG4gICAgICovXHJcbiAgICBnZXRQYXJhbXMoKSB7XHJcbiAgICAgICAgbGV0IHBhcmFtV2VpZ2h0cyA9IHt9O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fc2xpZGVyTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgc2xkID0gdGhpcy5fc2xpZGVyTGlzdFtpXTtcclxuICAgICAgICAgICAgcGFyYW1XZWlnaHRzW3NsZC5zZWxlY3RlZFBhcmFtXSA9IE51bWJlcihzbGQud2VpZ2h0LnRvRml4ZWQoMSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHBhcmFtV2VpZ2h0cztcclxuICAgIH1cclxuXHJcbiAgICBfYWRkRXZlbnRMaXN0ZW5lcnMoKSB7XHJcbiAgICAgICAgbGV0IF9fX3RoaXMgPSB0aGlzO1xyXG5cclxuXHJcbiAgICAgICAgLy9jaGFuZ2UgZnVuY3Rpb25cclxuICAgICAgICB0aGlzLiRjb250YWluZXIuZmluZCgnaW5wdXRbdHlwZT1cInJhbmdlXCJdJykuY2hhbmdlKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIGlmIChfX190aGlzLnJlc2V0dGluZykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgJHRoaXMgPSAkKHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgbGV0IGRvbUlkID0gdGhpc1snaWQnXTtcclxuICAgICAgICAgICAgICAgIGxldCBzbGRyID0gX19fdGhpcy5fc2xpZGVyTG9va3VwW2RvbUlkXTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWUgPSBwYXJzZUZsb2F0KCR0aGlzLnZhbCgpKTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgb2xkVmFsdWUgPSBzbGRyLndlaWdodDtcclxuICAgICAgICAgICAgICAgIGxldCBkaWZmID0gbmV3VmFsdWUgLSBvbGRWYWx1ZTtcclxuICAgICAgICAgICAgICAgIGRpZmYgPSBOdW1iZXIoZGlmZi50b0ZpeGVkKDEpKTtcclxuXHJcbiAgICAgICAgICAgICAgICBzbGRyLndlaWdodCA9IE51bWJlcihuZXdWYWx1ZS50b0ZpeGVkKDEpKTtcclxuXHJcbiAgICAgICAgICAgICAgICBfX190aGlzLl9oYW5kbGVSZW1haW5kZXIoZGlmZiwgZG9tSWQpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vY2xlYW51cCwgbWFrZSBzdXJlIHRoZSBzdW0gaXMgc3RpbGwgMTAwXHJcbiAgICAgICAgICAgICAgICBsZXQgc3VtID0gTnVtYmVyKF9fX3RoaXMuZ2V0U3VtKCkudG9GaXhlZCgxKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHN1bSA+IDEwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxvb3AxOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBfX190aGlzLl9zbGlkZXJMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNsZCA9IF9fX3RoaXMuX3NsaWRlckxpc3RbaV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNsZC5kb21JZCA9PSBkb21JZCB8fCBzbGQubG9ja2VkIHx8IHNsZC5hdE1pbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xkLmluY3JlbWVudCgtMC4xKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW0gLT0gMC4xO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdW0udG9GaXhlZCgxKSA9PSAnMTAwLjAnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGxvb3AxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdW0gPCAxMDApIHtcclxuICAgICAgICAgICAgICAgICAgICBsb29wMTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgX19fdGhpcy5fc2xpZGVyTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzbGQgPSBfX190aGlzLl9zbGlkZXJMaXN0W2ldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzbGQuZG9tSWQgPT0gZG9tSWQgfHwgc2xkLmxvY2tlZCB8fCBzbGQuYXRNYXgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsZC5pbmNyZW1lbnQoMC4xKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW0gKz0gMC4xO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdW0udG9GaXhlZCgxKSA9PSAnMTAwLjAnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGxvb3AxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIF9fX3RoaXMuXyRwcmVzZXRTZWxlY3Rvci52YWwoJzAnKTtcclxuICAgICAgICAgICAgICAgIF9fX3RoaXMuX3J1bkNoYW5nZWRDYWxsYmFjaygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgLy91cGRhdGUgdGhlIHNlbGVjdGVkIHBhcmFtZXRlciB3aGVuIHRoZSBzZWxlY3Rpb24gaXMgY2hhbmdlZFxyXG4gICAgICAgICQoJy5zaG93LXNlbGVjdCcpLmNoYW5nZShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChfX190aGlzLnJlc2V0dGluZykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF9fX3RoaXMuX3NsaWRlckxvb2t1cFt0aGlzWydpZCddLnJlcGxhY2UoJ19jaGcnLCAnJyldLnNlbGVjdGVkUGFyYW0gPSAkKHRoaXMpLnZhbCgpO1xyXG5cclxuICAgICAgICAgICAgX19fdGhpcy5fJHByZXNldFNlbGVjdG9yLnZhbCgnMCcpO1xyXG5cclxuICAgICAgICAgICAgX19fdGhpcy5fcnVuQ2hhbmdlZENhbGxiYWNrKCk7XHJcblxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvL2xvY2sgdGhlIHNsaWRlciBhbmQgdXBkYXRlIHRoZSByZXNlcnZlZCBwZXJjZW50XHJcbiAgICAgICAgdGhpcy4kY29udGFpbmVyLmZpbmQoJ2lucHV0W3R5cGU9XCJjaGVja2JveFwiXScpLmNoYW5nZShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGxldCBkb21FbCA9IHRoaXM7XHJcblxyXG4gICAgICAgICAgICBfX190aGlzLl9zbGlkZXJMb29rdXBbZG9tRWwuaWQucmVwbGFjZSgnX2NoaycsICcnKV0ubG9ja2VkID0gIWRvbUVsLmNoZWNrZWQ7XHJcbiAgICAgICAgICAgIF9fX3RoaXMucmVzZXJ2ZWRQZXJjZW50ID0gMC4wO1xyXG4gICAgICAgICAgICBfX190aGlzLm5vdExvY2tlZENvdW50ID0gMDtcclxuXHJcbiAgICAgICAgICAgIGxldCBub3RMb2NrZWRTbGlkZXJzID0gW107XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IF9fX3RoaXMuX3NsaWRlckxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCBzbGQgPSBfX190aGlzLl9zbGlkZXJMaXN0W2ldO1xyXG4gICAgICAgICAgICAgICAgaWYgKHNsZC5sb2NrZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBfX190aGlzLnJlc2VydmVkUGVyY2VudCArPSBzbGQud2VpZ2h0O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgbm90TG9ja2VkU2xpZGVycy5wdXNoKHNsZCk7XHJcbiAgICAgICAgICAgICAgICBfX190aGlzLm5vdExvY2tlZENvdW50Kys7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgX19fdGhpcy5fc2xpZGVyTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHNsZCA9IF9fX3RoaXMuX3NsaWRlckxpc3RbaV07XHJcbiAgICAgICAgICAgICAgICBpZiAoc2xkLmxvY2tlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgc2xkLm1heCA9IDEwMCAtIF9fX3RoaXMucmVzZXJ2ZWRQZXJjZW50O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAobm90TG9ja2VkU2xpZGVycy5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgbm90TG9ja2VkU2xpZGVyc1swXS5taW4gPSBub3RMb2NrZWRTbGlkZXJzWzBdLndlaWdodDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm90TG9ja2VkU2xpZGVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIG5vdExvY2tlZFNsaWRlcnNbaV0ubWluID0gMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBnZXQgcGFyYW1XZWlnaHRzUmVnaW9uVmVyc2lvbigpOiBDaGFuZ2VSZXNwb25zZXtcclxuICAgICAgICByZXR1cm4ge3BhcmFtV2VpZ2h0czogdGhpcy5nZXRQYXJhbXMoKSxcclxuICAgICAgICAgICAgcmVnaW9uOiB0aGlzLl8kcmVnaW9uU2VsZWN0b3IudmFsKCkgYXMgc3RyaW5nLCBtbVZlcnNpb246IHRoaXMuXyR2ZXJzaW9uU2VsZWN0b3IudmFsKCkgYXMgc3RyaW5nfVxyXG4gICAgfVxyXG59XHJcblxyXG5ubS5TbGlkZXJzID0gVGlwU2xpZGVycztcclxuZXhwb3J0IGRlZmF1bHQgVGlwU2xpZGVycztcclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/collections/Sliders.ts\n// module id = 22\n// module chunks = 6","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Created by gavorhes on 6/22/2016.\r\n */\r\nvar Sliders_1 = require(\"../../src/collections/Sliders\");\r\nvar $ = require(\"jquery\");\r\nrequire(\"jquery-ui\");\r\nexports.tipConfig = {\r\n $loadingGif: $('#loading-gif'),\r\n $presetSelector: $('#preset-selector'),\r\n $regionSelector: $('#region-selector'),\r\n $versionSelector: $('#version-selector'),\r\n tipSegmentLayerMinZoom: 10,\r\n slidersConfig: [\r\n {\r\n label: 'AADT',\r\n yearOptions: [\r\n { label: '1', column: 'aadtyr_1' }\r\n ]\r\n },\r\n {\r\n label: 'AADT Future',\r\n yearOptions: [\r\n { label: '5', column: 'aadtyr_5' },\r\n { label: '10', column: 'aadtyr_10' },\r\n { label: '15', column: 'aadtyr_15' },\r\n { label: '20', column: 'aadtyr_20' }\r\n ]\r\n },\r\n {\r\n label: 'Growth',\r\n yearOptions: [\r\n { label: '5', column: 'growth_5' },\r\n { label: '10', column: 'growth_10' },\r\n { label: '15', column: 'growth_15' },\r\n { label: '20', column: 'growth_20' }\r\n ]\r\n },\r\n {\r\n label: 'Truck',\r\n yearOptions: [\r\n { label: '1', column: 'trkdyr_1' },\r\n { label: '20', column: 'trkdyr_20' }\r\n ]\r\n },\r\n {\r\n label: 'LOS',\r\n yearOptions: [\r\n { label: '1', column: 'losyr_1' }\r\n ]\r\n },\r\n {\r\n label: 'LOS Future',\r\n yearOptions: [\r\n { label: '5', column: 'losyr_5' },\r\n { label: '10', column: 'losyr_10' },\r\n { label: '15', column: 'losyr_15' },\r\n { label: '20', column: 'losyr_20' }\r\n ]\r\n },\r\n {\r\n label: 'Crash Rate',\r\n yearOptions: [\r\n { label: 1, column: 'crash_rate' }\r\n ]\r\n },\r\n {\r\n label: 'Severity',\r\n yearOptions: [\r\n { label: 1, column: 'crash_severity' }\r\n ]\r\n },\r\n {\r\n label: 'Weather',\r\n yearOptions: [\r\n { label: 1, column: 'weather' }\r\n ]\r\n },\r\n {\r\n label: 'Event',\r\n yearOptions: [\r\n { label: 1, column: 'event' }\r\n ]\r\n }\r\n ],\r\n presetConfig: [\r\n {\r\n label: 'Default TIP',\r\n presets: [\r\n { column: 'aadtyr_1', value: 10.0 },\r\n { column: 'aadtyr_20', value: 7.0 },\r\n { column: 'growth_20', value: 7.0 },\r\n { column: 'trkdyr_1', value: 4.0 },\r\n { column: 'losyr_1', value: 12.0 },\r\n { column: 'losyr_20', value: 12.0 },\r\n { column: 'crash_rate', value: 15.0 },\r\n { column: 'crash_severity', value: 13.0 },\r\n { column: 'weather', value: 9.0 },\r\n { column: 'event', value: 11.0 }\r\n ]\r\n },\r\n {\r\n label: 'Safety',\r\n presets: [\r\n { column: 'aadtyr_1', value: 20.0 },\r\n { column: 'aadtyr_20', value: 0.0 },\r\n { column: 'growth_20', value: 0.0 },\r\n { column: 'trkdyr_1', value: 0.0 },\r\n { column: 'losyr_1', value: 0.0 },\r\n { column: 'losyr_20', value: 0.0 },\r\n { column: 'crash_rate', value: 40.0 },\r\n { column: 'crash_severity', value: 40.0 },\r\n { column: 'weather', value: 0.0 },\r\n { column: 'event', value: 0.0 }\r\n ]\r\n },\r\n {\r\n label: 'Mobility Present',\r\n presets: [\r\n { column: 'aadtyr_1', value: 25.0 },\r\n { column: 'aadtyr_20', value: 25.0 },\r\n { column: 'growth_20', value: 0.0 },\r\n { column: 'trkdyr_1', value: 25.0 },\r\n { column: 'losyr_1', value: 25.0 },\r\n { column: 'losyr_20', value: 0.0 },\r\n { column: 'crash_rate', value: 0.0 },\r\n { column: 'crash_severity', value: 0.0 },\r\n { column: 'weather', value: 0.0 },\r\n { column: 'event', value: 0.0 }\r\n ]\r\n },\r\n {\r\n label: 'Mobility Future',\r\n presets: [\r\n { column: 'aadtyr_1', value: 0.0 },\r\n { column: 'aadtyr_20', value: 25.0 },\r\n { column: 'growth_20', value: 25.0 },\r\n { column: 'trkdyr_1', value: 25.0 },\r\n { column: 'losyr_1', value: 0.0 },\r\n { column: 'losyr_20', value: 25.0 },\r\n { column: 'crash_rate', value: 0.0 },\r\n { column: 'crash_severity', value: 0.0 },\r\n { column: 'weather', value: 0.0 },\r\n { column: 'event', value: 0.0 }\r\n ]\r\n },\r\n {\r\n label: 'Service',\r\n presets: [\r\n { column: 'aadtyr_1', value: 30.0 },\r\n { column: 'aadtyr_20', value: 0.0 },\r\n { column: 'growth_20', value: 10.0 },\r\n { column: 'trkdyr_1', value: 0.0 },\r\n { column: 'losyr_1', value: 30.0 },\r\n { column: 'losyr_20', value: 30.0 },\r\n { column: 'crash_rate', value: 0.0 },\r\n { column: 'crash_severity', value: 0.0 },\r\n { column: 'weather', value: 0.0 },\r\n { column: 'event', value: 0.0 }\r\n ]\r\n },\r\n {\r\n label: 'Freight Performance',\r\n presets: [\r\n { column: 'aadtyr_1', value: 20.0 },\r\n { column: 'aadtyr_20', value: 0.0 },\r\n { column: 'growth_20', value: 0.0 },\r\n { column: 'trkdyr_1', value: 60.0 },\r\n { column: 'losyr_1', value: 20.0 },\r\n { column: 'losyr_20', value: 0.0 },\r\n { column: 'crash_rate', value: 0.0 },\r\n { column: 'crash_severity', value: 0.0 },\r\n { column: 'weather', value: 0.0 },\r\n { column: 'event', value: 0.0 }\r\n ]\r\n }\r\n ]\r\n};\r\nexports.tipConfig.$presetSelector.append('<option value=\"0\" disabled=>Custom</option>');\r\nvar sliders = new Sliders_1.TipSliders(exports.tipConfig.slidersConfig, exports.tipConfig.presetConfig, 'slider-container', exports.tipConfig.$presetSelector, exports.tipConfig.$regionSelector, exports.tipConfig.$regionSelector, function (chg) { console.log(chg); });\r\n// sliders.changedCallback = (chg) => {console.log(chg)};\r\nwindow['glob'] = sliders;\r\nwindow['hat'] = sliders;\r\nwindow['bird'] = sliders;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLXRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzbGlkZXItdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOztHQUVHO0FBQ0gseURBQTJGO0FBQzNGLDBCQUE2QjtBQUU3QixxQkFBbUI7QUFtQk4sUUFBQSxTQUFTLEdBQUc7SUFDckIsV0FBVyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUM7SUFDOUIsZUFBZSxFQUFFLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztJQUN0QyxlQUFlLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO0lBQ3RDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztJQUN4QyxzQkFBc0IsRUFBRSxFQUFFO0lBQzFCLGFBQWEsRUFBRTtRQUNQO1lBQ0ksS0FBSyxFQUFFLE1BQU07WUFDYixXQUFXLEVBQUU7Z0JBQ1QsRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUM7YUFDbkM7U0FDSjtRQUNEO1lBQ0ksS0FBSyxFQUFFLGFBQWE7WUFDcEIsV0FBVyxFQUFFO2dCQUNULEVBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFDO2dCQUNoQyxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBQztnQkFDbEMsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUM7Z0JBQ2xDLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFDO2FBQ3JDO1NBQ0o7UUFDRDtZQUNJLEtBQUssRUFBRSxRQUFRO1lBQ2YsV0FBVyxFQUFFO2dCQUNULEVBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFDO2dCQUNoQyxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBQztnQkFDbEMsRUFBQyxLQUFLLEVBQUUsSUFBSSxF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aEIsaUJBQVMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLDZDQUE2QyxDQUFDLENBQUM7QUFFaEYsSUFBSSxPQUFPLEdBQUcsSUFBSSxvQkFBVSxDQUFDLGlCQUFTLENBQUMsYUFBYSxFQUFFLGlCQUFTLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUM1RixpQkFBUyxDQUFDLGVBQWUsRUFBRSxpQkFBUyxDQUFDLGVBQWUsRUFBRSxpQkFBUyxDQUFDLGVBQWUsRUFBRSxVQUFDLEdBQUcsSUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUM7QUFFbEgseURBQXlEO0FBRXpELE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUM7QUFDekIsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQztBQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkgZ2F2b3JoZXMgb24gNi8yMi8yMDE2LlxyXG4gKi9cclxuaW1wb3J0IHtUaXBTbGlkZXJzLCBUaXBQcmVzZXRDb25maWcsIFRpcFNsaWRlckNvbmZpZ30gZnJvbSAnLi4vLi4vc3JjL2NvbGxlY3Rpb25zL1NsaWRlcnMnO1xyXG5pbXBvcnQgJCA9IHJlcXVpcmUoJ2pxdWVyeScpO1xyXG5pbXBvcnQgb2wgPSByZXF1aXJlKCdjdXN0b20tb2wnKTtcclxuaW1wb3J0ICdqcXVlcnktdWknO1xyXG5cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElUaXBDb25maWd7XHJcbiAgICBzbGlkZXJzQ29uZmlnOiBBcnJheTxUaXBTbGlkZXJDb25maWc+O1xyXG4gICAgcHJlc2V0Q29uZmlnOiBBcnJheTxUaXBQcmVzZXRDb25maWc+O1xyXG4gICAgdGlwU2VnbWVudExheWVyTWluWm9vbTogbnVtYmVyO1xyXG4gICAgc2xpZGVyczogVGlwU2xpZGVycztcclxuICAgIF9tYXA6IG9sLk1hcDtcclxuICAgICRsb2FkaW5nR2lmOiBKUXVlcnk7XHJcbiAgICAkcHJlc2V0U2VsZWN0b3I6IEpRdWVyeTtcclxuICAgICRyZWdpb25TZWxlY3RvcjogSlF1ZXJ5O1xyXG4gICAgJHZlcnNpb25TZWxlY3RvcjogSlF1ZXJ5O1xyXG4gICAgaXRzTGF5ZXJDb2xsZWN0aW9uOiBhbnk7XHJcbiAgICB0aXBTZWdtZW50TGF5ZXI6IGFueTtcclxuICAgIG1ldGFtYW5hZ2VyU2VnbWVudHM6IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHRpcENvbmZpZyA9IHtcclxuICAgICRsb2FkaW5nR2lmOiAkKCcjbG9hZGluZy1naWYnKSxcclxuICAgICRwcmVzZXRTZWxlY3RvcjogJCgnI3ByZXNldC1zZWxlY3RvcicpLFxyXG4gICAgJHJlZ2lvblNlbGVjdG9yOiAkKCcjcmVnaW9uLXNlbGVjdG9yJyksXHJcbiAgICAkdmVyc2lvblNlbGVjdG9yOiAkKCcjdmVyc2lvbi1zZWxlY3RvcicpLFxyXG4gICAgdGlwU2VnbWVudExheWVyTWluWm9vbTogMTAsXHJcbiAgICBzbGlkZXJzQ29uZmlnOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnQUFEVCcsXHJcbiAgICAgICAgICAgICAgICB5ZWFyT3B0aW9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbDogJzEnLCBjb2x1bW46ICdhYWR0eXJfMSd9XHJcbiAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnQUFEVCBGdXR1cmUnLFxyXG4gICAgICAgICAgICAgICAgeWVhck9wdGlvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7bGFiZWw6ICc1JywgY29sdW1uOiAnYWFkdHlyXzUnfSxcclxuICAgICAgICAgICAgICAgICAgICB7bGFiZWw6ICcxMCcsIGNvbHVtbjogJ2FhZHR5cl8xMCd9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbDogJzE1JywgY29sdW1uOiAnYWFkdHlyXzE1J30sXHJcbiAgICAgICAgICAgICAgICAgICAge2xhYmVsOiAnMjAnLCBjb2x1bW46ICdhYWR0eXJfMjAnfVxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0dyb3d0aCcsXHJcbiAgICAgICAgICAgICAgICB5ZWFyT3B0aW9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbDogJzUnLCBjb2x1bW46ICdncm93dGhfNSd9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbDogJzEwJywgY29sdW1uOiAnZ3Jvd3RoXzEwJ30sXHJcbiAgICAgICAgICAgICAgICAgICAge2xhYmVsOiAnMTUnLCBjb2x1bW46ICdncm93dGhfMTUnfSxcclxuICAgICAgICAgICAgICAgICAgICB7bGFiZWw6ICcyMCcsIGNvbHVtbjogJ2dyb3d0aF8yMCd9XHJcbiAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnVHJ1Y2snLFxyXG4gICAgICAgICAgICAgICAgeWVhck9wdGlvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7bGFiZWw6ICcxJywgY29sdW1uOiAndHJrZHlyXzEnfSxcclxuICAgICAgICAgICAgICAgICAgICB7bGFiZWw6ICcyMCcsIGNvbHVtbjogJ3Rya2R5cl8yMCd9XHJcbiAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnTE9TJyxcclxuICAgICAgICAgICAgICAgIHllYXJPcHRpb25zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge2xhYmVsOiAnMScsIGNvbHVtbjogJ2xvc3lyXzEnfVxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0xPUyBGdXR1cmUnLFxyXG4gICAgICAgICAgICAgICAgeWVhck9wdGlvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7bGFiZWw6ICc1JywgY29sdW1uOiAnbG9zeXJfNSd9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbDogJzEwJywgY29sdW1uOiAnbG9zeXJfMTAnfSxcclxuICAgICAgICAgICAgICAgICAgICB7bGFiZWw6ICcxNScsIGNvbHVtbjogJ2xvc3lyXzE1J30sXHJcbiAgICAgICAgICAgICAgICAgICAge2xhYmVsOiAnMjAnLCBjb2x1bW46ICdsb3N5cl8yMCd9XHJcbiAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnQ3Jhc2ggUmF0ZScsXHJcbiAgICAgICAgICAgICAgICB5ZWFyT3B0aW9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbDogMSwgY29sdW1uOiAnY3Jhc2hfcmF0ZSd9XHJcbiAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnU2V2ZXJpdHknLFxyXG4gICAgICAgICAgICAgICAgeWVhck9wdGlvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7bGFiZWw6IDEsIGNvbHVtbjogJ2NyYXNoX3NldmVyaXR5J31cclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdXZWF0aGVyJyxcclxuICAgICAgICAgICAgICAgIHllYXJPcHRpb25zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge2xhYmVsOiAxLCBjb2x1bW46ICd3ZWF0aGVyJ31cclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdFdmVudCcsXHJcbiAgICAgICAgICAgICAgICB5ZWFyT3B0aW9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbDogMSwgY29sdW1uOiAnZXZlbnQnfVxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXSBhcyBBcnJheTxUaXBTbGlkZXJDb25maWc+LFxyXG4gICAgcHJlc2V0Q29uZmlnOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnRGVmYXVsdCBUSVAnLFxyXG4gICAgICAgICAgICAgICAgcHJlc2V0czogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdhYWR0eXJfMScsIHZhbHVlOiAxMC4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnYWFkdHlyXzIwJywgdmFsdWU6IDcuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2dyb3d0aF8yMCcsIHZhbHVlOiA3LjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICd0cmtkeXJfMScsIHZhbHVlOiA0LjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdsb3N5cl8xJywgdmFsdWU6IDEyLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdsb3N5cl8yMCcsIHZhbHVlOiAxMi4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnY3Jhc2hfcmF0ZScsIHZhbHVlOiAxNS4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnY3Jhc2hfc2V2ZXJpdHknLCB2YWx1ZTogMTMuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ3dlYXRoZXInLCB2YWx1ZTogOS4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnZXZlbnQnLCB2YWx1ZTogMTEuMH1cclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdTYWZldHknLFxyXG4gICAgICAgICAgICAgICAgcHJlc2V0czogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdhYWR0eXJfMScsIHZhbHVlOiAyMC4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnYWFkdHlyXzIwJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2dyb3d0aF8yMCcsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICd0cmtkeXJfMScsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdsb3N5cl8xJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2xvc3lyXzIwJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2NyYXNoX3JhdGUnLCB2YWx1ZTogNDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2NyYXNoX3NldmVyaXR5JywgdmFsdWU6IDQwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICd3ZWF0aGVyJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2V2ZW50JywgdmFsdWU6IDAuMH1cclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdNb2JpbGl0eSBQcmVzZW50JyxcclxuICAgICAgICAgICAgICAgIHByZXNldHM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnYWFkdHlyXzEnLCB2YWx1ZTogMjUuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2FhZHR5cl8yMCcsIHZhbHVlOiAyNS4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnZ3Jvd3RoXzIwJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ3Rya2R5cl8xJywgdmFsdWU6IDI1LjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdsb3N5cl8xJywgdmFsdWU6IDI1LjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdsb3N5cl8yMCcsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdjcmFzaF9yYXRlJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2NyYXNoX3NldmVyaXR5JywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ3dlYXRoZXInLCB2YWx1ZTogMC4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnZXZlbnQnLCB2YWx1ZTogMC4wfVxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ01vYmlsaXR5IEZ1dHVyZScsXHJcbiAgICAgICAgICAgICAgICBwcmVzZXRzOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2FhZHR5cl8xJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2FhZHR5cl8yMCcsIHZhbHVlOiAyNS4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnZ3Jvd3RoXzIwJywgdmFsdWU6IDI1LjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICd0cmtkeXJfMScsIHZhbHVlOiAyNS4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnbG9zeXJfMScsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdsb3N5cl8yMCcsIHZhbHVlOiAyNS4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnY3Jhc2hfcmF0ZScsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdjcmFzaF9zZXZlcml0eScsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICd3ZWF0aGVyJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2V2ZW50JywgdmFsdWU6IDAuMH1cclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdTZXJ2aWNlJyxcclxuICAgICAgICAgICAgICAgIHByZXNldHM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnYWFkdHlyXzEnLCB2YWx1ZTogMzAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2FhZHR5cl8yMCcsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdncm93dGhfMjAnLCB2YWx1ZTogMTAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ3Rya2R5cl8xJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2xvc3lyXzEnLCB2YWx1ZTogMzAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2xvc3lyXzIwJywgdmFsdWU6IDMwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdjcmFzaF9yYXRlJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2NyYXNoX3NldmVyaXR5JywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ3dlYXRoZXInLCB2YWx1ZTogMC4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnZXZlbnQnLCB2YWx1ZTogMC4wfVxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0ZyZWlnaHQgUGVyZm9ybWFuY2UnLFxyXG4gICAgICAgICAgICAgICAgcHJlc2V0czogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdhYWR0eXJfMScsIHZhbHVlOiAyMC4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnYWFkdHlyXzIwJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2dyb3d0aF8yMCcsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICd0cmtkeXJfMScsIHZhbHVlOiA2MC4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnbG9zeXJfMScsIHZhbHVlOiAyMC4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnbG9zeXJfMjAnLCB2YWx1ZTogMC4wfSxcclxuICAgICAgICAgICAgICAgICAgICB7Y29sdW1uOiAnY3Jhc2hfcmF0ZScsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICdjcmFzaF9zZXZlcml0eScsIHZhbHVlOiAwLjB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtjb2x1bW46ICd3ZWF0aGVyJywgdmFsdWU6IDAuMH0sXHJcbiAgICAgICAgICAgICAgICAgICAge2NvbHVtbjogJ2V2ZW50JywgdmFsdWU6IDAuMH1cclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIF0gYXMgQXJyYXk8VGlwUHJlc2V0Q29uZmlnPlxyXG5cclxufSBhcyBJVGlwQ29uZmlnO1xyXG5cclxudGlwQ29uZmlnLiRwcmVzZXRTZWxlY3Rvci5hcHBlbmQoJzxvcHRpb24gdmFsdWU9XCIwXCIgZGlzYWJsZWQ9PkN1c3RvbTwvb3B0aW9uPicpO1xyXG5cclxubGV0IHNsaWRlcnMgPSBuZXcgVGlwU2xpZGVycyh0aXBDb25maWcuc2xpZGVyc0NvbmZpZywgdGlwQ29uZmlnLnByZXNldENvbmZpZywgJ3NsaWRlci1jb250YWluZXInLFxyXG4gICAgdGlwQ29uZmlnLiRwcmVzZXRTZWxlY3RvciwgdGlwQ29uZmlnLiRyZWdpb25TZWxlY3RvciwgdGlwQ29uZmlnLiRyZWdpb25TZWxlY3RvciwgKGNoZykgPT4ge2NvbnNvbGUubG9nKGNoZyl9KTtcclxuXHJcbi8vIHNsaWRlcnMuY2hhbmdlZENhbGxiYWNrID0gKGNoZykgPT4ge2NvbnNvbGUubG9nKGNoZyl9O1xyXG5cclxud2luZG93WydnbG9iJ10gPSBzbGlkZXJzO1xyXG53aW5kb3dbJ2hhdCddID0gc2xpZGVycztcclxud2luZG93WydiaXJkJ10gPSBzbGlkZXJzO1xyXG5cclxuIl19\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./test/demo/slider-test.ts\n// module id = 41\n// module chunks = 6"],"sourceRoot":""} \ No newline at end of file -- GitLab