From fa6ef30d1711b291a73bb2029c66ed8bb85f63e5 Mon Sep 17 00:00:00 2001 From: Hasunie Date: Thu, 1 Dec 2016 09:26:14 +0530 Subject: [PATCH 1/5] fixing windows device view issues --- .../date-range-picker.hbs | 25 + .../date-range-picker.js | 21 + .../date-range-picker.json | 3 + .../public/css/daterangepicker.css | 361 ++++ .../public/js/daterangepicker.js | 1542 ++++++++++++++ .../public/js/moment.min.js | 7 + .../device-view.hbs | 545 ++++- .../device-view.js | 211 ++ .../device-view.json | 2 +- .../device_icons/TemperatureController.png | Bin 0 -> 234616 bytes .../public/img/device_icons/android.png | Bin 0 -> 2948 bytes .../public/img/device_icons/ios.png | Bin 0 -> 6966 bytes .../public/img/graph.png | Bin 0 -> 5431 bytes .../public/js/device-detail.js | 299 +-- .../public/js/load-map.js | 76 +- .../public/templates/applications-list.hbs | 31 + .../public/templates/operations-log.hbs | 24 + .../public/templates/policy-compliance.hbs | 79 + .../leaflet.hbs | 6 + .../leaflet.json | 3 + .../public/css/leaflet.css | 479 +++++ .../public/js/images/layers-2x.png | Bin 0 -> 2898 bytes .../public/js/images/layers.png | Bin 0 -> 1502 bytes .../public/js/images/marker-icon-2x.png | Bin 0 -> 4033 bytes .../public/js/images/marker-icon.png | Bin 0 -> 1747 bytes .../public/js/images/marker-shadow.png | Bin 0 -> 797 bytes .../public/js/leaflet.js | 9 + .../operation-mod.hbs | 20 + .../operation-mod.json | 8 + .../public/js/operation-mod.js | 1781 +++++++++++++++++ .../public/js/type-view.js | 385 ++++ 31 files changed, 5723 insertions(+), 194 deletions(-) create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/date-range-picker.hbs create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/date-range-picker.js create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/date-range-picker.json create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/public/css/daterangepicker.css create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/public/js/daterangepicker.js create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/public/js/moment.min.js create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.js create mode 100755 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/img/device_icons/TemperatureController.png create mode 100755 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/img/device_icons/android.png create mode 100755 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/img/device_icons/ios.png create mode 100755 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/img/graph.png mode change 100644 => 100755 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/js/device-detail.js mode change 100644 => 100755 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/js/load-map.js create mode 100755 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/templates/applications-list.hbs create mode 100755 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/templates/operations-log.hbs create mode 100755 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/templates/policy-compliance.hbs create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/leaflet.hbs create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/leaflet.json create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/public/css/leaflet.css create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/public/js/images/layers-2x.png create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/public/js/images/layers.png create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/public/js/images/marker-icon-2x.png create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/public/js/images/marker-icon.png create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/public/js/images/marker-shadow.png create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/public/js/leaflet.js create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-mod/operation-mod.hbs create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-mod/operation-mod.json create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-mod/public/js/operation-mod.js create mode 100644 components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.type-view/public/js/type-view.js diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/date-range-picker.hbs b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/date-range-picker.hbs new file mode 100644 index 000000000..d1787fd27 --- /dev/null +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/date-range-picker.hbs @@ -0,0 +1,25 @@ +{{! + Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + + WSO2 Inc. licenses this file to you under the Apache License, + Version 2.0 (the "License"); you may not use this file except + in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +}} +{{#zone "topCss"}} + {{css "css/daterangepicker.css"}} +{{/zone}} + +{{#zone "bottomJs"}} + {{js "js/moment.min.js"}} + {{js "js/daterangepicker.js"}} +{{/zone}} \ No newline at end of file diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/date-range-picker.js b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/date-range-picker.js new file mode 100644 index 000000000..82648b301 --- /dev/null +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/date-range-picker.js @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * WSO2 Inc. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +function onRequest() { + return ""; +} diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/date-range-picker.json b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/date-range-picker.json new file mode 100644 index 000000000..688e93980 --- /dev/null +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/date-range-picker.json @@ -0,0 +1,3 @@ +{ + "version": "1.0.0" +} \ No newline at end of file diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/public/css/daterangepicker.css b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/public/css/daterangepicker.css new file mode 100644 index 000000000..b1b44916b --- /dev/null +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/public/css/daterangepicker.css @@ -0,0 +1,361 @@ +/* + * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * WSO2 Inc. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +.date-picker { + width: 170px; + height: 25px; + padding: 0; + border: 0; + line-height: 25px; + padding-left: 10px; + font-size: 12px; + font-family: Arial; + font-weight: bold; + cursor: pointer; + color: #303030; + position: relative; + z-index: 2; +} + +.date-picker-wrapper { + position: absolute; + z-index: 1; + border: 1px solid #bfbfbf; + background-color: #efefef; + width: 448px; + padding: 5px 12px; + font-size: 12px; + line-height: 20px; + color: #aaa; + font-family: Arial; + box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.5); +} + +.date-picker-wrapper.single-date { + width: auto; +} + +.date-picker-wrapper.no-shortcuts { + padding-bottom: 12px; +} + +.date-picker-wrapper .footer { + display: none; + font-size: 11px; + padding-top: 3px; +} + +.date-picker-wrapper b { + color: #666; + font-weight: 700; +} + +.date-picker-wrapper a { + color: rgb(107, 180, 214); + text-decoration: underline; +} + +.date-picker-wrapper .month-wrapper { + border: 1px solid #bfbfbf; + border-radius: 3px; + background-color: #fff; + padding: 5px; + cursor: default; + position: relative; + _overflow: hidden; +} + +.date-picker-wrapper .month-wrapper table { + width: 190px; + float: left; +} + +.date-picker-wrapper .month-wrapper table.month2 { + width: 190px; + float: right; +} + +.date-picker-wrapper .month-wrapper table th, +.date-picker-wrapper .month-wrapper table td { + vertical-align: middle; + text-align: center; + line-height: 14px; + margin: 0px; + padding: 0px; +} + +.date-picker-wrapper .month-wrapper table .day { + height: 19px; + line-height: 19px; + font-size: 12px; + margin-bottom: 1px; + color: #999; + cursor: default; +} + +.date-picker-wrapper .month-wrapper table div.day.lastMonth, +.date-picker-wrapper .month-wrapper table div.day.nextMonth { + color: #999; + cursor: default; +} + +.date-picker-wrapper .month-wrapper table .day.checked { + background-color: rgb(156, 219, 247); +} + +.date-picker-wrapper .month-wrapper table .week-name { + height: 20px; + line-height: 20px; + font-weight: 100; +} + +.date-picker-wrapper .month-wrapper table .day.has-tooltip { + cursor: help !important; +} + +.date-picker-wrapper .month-wrapper table .day.toMonth.valid { + color: #333; + cursor: pointer; +} + +.date-picker-wrapper .month-wrapper table .day.real-today { + background-color: rgb(255, 230, 132); +} + +.date-picker-wrapper .month-wrapper table .day.real-today.checked { + background-color: rgb(112, 204, 213); +} + +.date-picker-wrapper table .caption { + height: 40px; +} + +.date-picker-wrapper table .caption .next, +.date-picker-wrapper table .caption .prev { + padding: 0 5px; + cursor: pointer; +} + +.date-picker-wrapper table .caption .next:hover, +.date-picker-wrapper table .caption .prev:hover { + background-color: #ccc; + color: white; +} + +.date-picker-wrapper .gap { + position: absolute; + display: none; + top: 0px; + left: 204px; + z-index: 1; + width: 15px; + height: 100%; + background-color: red; + font-size: 0; + line-height: 0; +} + +.date-picker-wrapper .gap .gap-lines { + height: 100%; + overflow: hidden; +} + +.date-picker-wrapper .gap .gap-line { + height: 15px; + width: 15px; + position: relative; +} + +.date-picker-wrapper .gap .gap-line .gap-1 { + z-index: 1; + height: 0; + border-left: 8px solid white; + border-top: 8px solid #eee; + border-bottom: 8px solid #eee; +} + +.date-picker-wrapper .gap .gap-line .gap-2 { + position: absolute; + right: 0; + top: 0px; + z-index: 2; + height: 0; + border-left: 8px solid transparent; + border-top: 8px solid white; +} + +.date-picker-wrapper .gap .gap-line .gap-3 { + position: absolute; + right: 0; + top: 8px; + z-index: 2; + height: 0; + border-left: 8px solid transparent; + border-bottom: 8px solid white; +} + +.date-picker-wrapper .gap .gap-top-mask { + width: 6px; + height: 1px; + position: absolute; + top: -1px; + left: 1px; + background-color: #eee; + z-index: 3; +} + +.date-picker-wrapper .gap .gap-bottom-mask { + width: 6px; + height: 1px; + position: absolute; + bottom: -1px; + left: 7px; + background-color: #eee; + z-index: 3; +} + +.date-picker-wrapper .selected-days { + display: none; +} + +.date-picker-wrapper .drp_top-bar { + line-height: 40px; + height: 40px; + position: relative; +} + +.date-picker-wrapper .drp_top-bar .error-top { + display: none; +} + +.date-picker-wrapper .drp_top-bar .normal-top { + display: none; +} + +.date-picker-wrapper .drp_top-bar .default-top { + display: block; +} + +.date-picker-wrapper .drp_top-bar.error .default-top { + display: none; +} + +.date-picker-wrapper .drp_top-bar.error .error-top { + display: block; + color: red; +} + +.date-picker-wrapper .drp_top-bar.normal .default-top { + display: none; +} + +.date-picker-wrapper .drp_top-bar.normal .normal-top { + display: block; +} + +.date-picker-wrapper .drp_top-bar .apply-btn { + position: absolute; + right: 0px; + top: 6px; + padding: 3px 5px; + margin: 0; + font-size: 12px; + border-radius: 4px; + cursor: pointer; + + color: #d9eef7; + border: solid 1px #0076a3; + background: #0095cd; + background: -webkit-gradient(linear, left top, left bottom, from(#00adee), to(#0078a5)); + background: -moz-linear-gradient(top, #00adee, #0078a5); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00adee', endColorstr='#0078a5'); + color: white; +} + +.date-picker-wrapper .drp_top-bar .apply-btn.disabled { + pointer-events: none; + color: #606060; + border: solid 1px #b7b7b7; + background: #fff; + background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#ededed)); + background: -moz-linear-gradient(top, #fff, #ededed); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ededed'); +} + +/*time styling*/ +.time { + position: relative; +} + +.time input[type=range] { + vertical-align: middle; +} + +.time1, .time2 { + width: 180px; + padding: 0 5px; + text-align: center; +} + +.time1 { + float: left; +} + +.time2 { + float: right; +} + +.hour, .minute { + text-align: left; +} + +.hide { + display: none; +} + +input.hour-range, input.minute-range { + width: 150px; +} + +#dateRangePickerContainer .date-range, #dateRangePickerContainer .input-append { + background: none !important; +} + +#date-range { + padding-right: 30px; + width: 300px; + height: 100%; + display: inline-block; +} + +#dateRangePickerContainer { + float: right; +} + +.date-range { + border: 1px solid #ccc; +} + +#dateRangePickerContainer button.active { + background-color: #e6e6e6 !important; +} + +#dateRangePickerContainer .btn-default:hover { + background-color: #b2b2b2; + border-color: #000000; +} diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/public/js/daterangepicker.js b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/public/js/daterangepicker.js new file mode 100644 index 000000000..b218d58bf --- /dev/null +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/public/js/daterangepicker.js @@ -0,0 +1,1542 @@ +/** +* @version: 2.1.19 +* @author: Dan Grossman http://www.dangrossman.info/ +* @copyright: Copyright (c) 2012-2015 Dan Grossman. All rights reserved. +* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php +* @website: https://www.improvely.com/ +*/ + +(function(root, factory) { + + if (typeof define === 'function' && define.amd) { + define(['moment', 'jquery', 'exports'], function(momentjs, $, exports) { + root.daterangepicker = factory(root, exports, momentjs, $); + }); + + } else if (typeof exports !== 'undefined') { + var momentjs = require('moment'); + var jQuery = (typeof window != 'undefined') ? window.jQuery : undefined; //isomorphic issue + if (!jQuery) { + try { + jQuery = require('jquery'); + if (!jQuery.fn) jQuery.fn = {}; //isomorphic issue + } catch (err) { + if (!jQuery) throw new Error('jQuery dependency not found'); + } + } + + factory(root, exports, momentjs, jQuery); + + // Finally, as a browser global. + } else { + root.daterangepicker = factory(root, {}, root.moment || moment, (root.jQuery || root.Zepto || root.ender || root.$)); + } + +}(this || {}, function(root, daterangepicker, moment, $) { // 'this' doesn't exist on a server + + var DateRangePicker = function(element, options, cb) { + + //default settings for options + this.parentEl = 'body'; + this.element = $(element); + this.startDate = moment().startOf('day'); + this.endDate = moment().endOf('day'); + this.minDate = false; + this.maxDate = false; + this.dateLimit = false; + this.autoApply = false; + this.singleDatePicker = false; + this.showDropdowns = false; + this.showWeekNumbers = false; + this.showISOWeekNumbers = false; + this.timePicker = false; + this.timePicker24Hour = false; + this.timePickerIncrement = 1; + this.timePickerSeconds = false; + this.linkedCalendars = true; + this.autoUpdateInput = true; + this.alwaysShowCalendars = false; + this.ranges = {}; + + this.opens = 'right'; + if (this.element.hasClass('pull-right')) + this.opens = 'left'; + + this.drops = 'down'; + if (this.element.hasClass('dropup')) + this.drops = 'up'; + + this.buttonClasses = 'btn btn-sm'; + this.applyClass = 'btn-success'; + this.cancelClass = 'btn-default'; + + this.locale = { + format: 'MM/DD/YYYY', + separator: ' - ', + applyLabel: 'Apply', + cancelLabel: 'Cancel', + weekLabel: 'W', + customRangeLabel: 'Custom Range', + daysOfWeek: moment.weekdaysMin(), + monthNames: moment.monthsShort(), + firstDay: moment.localeData().firstDayOfWeek() + }; + + this.callback = function() { }; + + //some state information + this.isShowing = false; + this.leftCalendar = {}; + this.rightCalendar = {}; + + //custom options from user + if (typeof options !== 'object' || options === null) + options = {}; + + //allow setting options with data attributes + //data-api options will be overwritten with custom javascript options + options = $.extend(this.element.data(), options); + + //html template for the picker UI + if (typeof options.template !== 'string' && !(options.template instanceof $)) + options.template = ''; + + this.parentEl = (options.parentEl && $(options.parentEl).length) ? $(options.parentEl) : $(this.parentEl); + this.container = $(options.template).appendTo(this.parentEl); + + // + // handle all the possible options overriding defaults + // + + if (typeof options.locale === 'object') { + + if (typeof options.locale.format === 'string') + this.locale.format = options.locale.format; + + if (typeof options.locale.separator === 'string') + this.locale.separator = options.locale.separator; + + if (typeof options.locale.daysOfWeek === 'object') + this.locale.daysOfWeek = options.locale.daysOfWeek.slice(); + + if (typeof options.locale.monthNames === 'object') + this.locale.monthNames = options.locale.monthNames.slice(); + + if (typeof options.locale.firstDay === 'number') + this.locale.firstDay = options.locale.firstDay; + + if (typeof options.locale.applyLabel === 'string') + this.locale.applyLabel = options.locale.applyLabel; + + if (typeof options.locale.cancelLabel === 'string') + this.locale.cancelLabel = options.locale.cancelLabel; + + if (typeof options.locale.weekLabel === 'string') + this.locale.weekLabel = options.locale.weekLabel; + + if (typeof options.locale.customRangeLabel === 'string') + this.locale.customRangeLabel = options.locale.customRangeLabel; + + } + + if (typeof options.startDate === 'string') + this.startDate = moment(options.startDate, this.locale.format); + + if (typeof options.endDate === 'string') + this.endDate = moment(options.endDate, this.locale.format); + + if (typeof options.minDate === 'string') + this.minDate = moment(options.minDate, this.locale.format); + + if (typeof options.maxDate === 'string') + this.maxDate = moment(options.maxDate, this.locale.format); + + if (typeof options.startDate === 'object') + this.startDate = moment(options.startDate); + + if (typeof options.endDate === 'object') + this.endDate = moment(options.endDate); + + if (typeof options.minDate === 'object') + this.minDate = moment(options.minDate); + + if (typeof options.maxDate === 'object') + this.maxDate = moment(options.maxDate); + + // sanity check for bad options + if (this.minDate && this.startDate.isBefore(this.minDate)) + this.startDate = this.minDate.clone(); + + // sanity check for bad options + if (this.maxDate && this.endDate.isAfter(this.maxDate)) + this.endDate = this.maxDate.clone(); + + if (typeof options.applyClass === 'string') + this.applyClass = options.applyClass; + + if (typeof options.cancelClass === 'string') + this.cancelClass = options.cancelClass; + + if (typeof options.dateLimit === 'object') + this.dateLimit = options.dateLimit; + + if (typeof options.opens === 'string') + this.opens = options.opens; + + if (typeof options.drops === 'string') + this.drops = options.drops; + + if (typeof options.showWeekNumbers === 'boolean') + this.showWeekNumbers = options.showWeekNumbers; + + if (typeof options.showISOWeekNumbers === 'boolean') + this.showISOWeekNumbers = options.showISOWeekNumbers; + + if (typeof options.buttonClasses === 'string') + this.buttonClasses = options.buttonClasses; + + if (typeof options.buttonClasses === 'object') + this.buttonClasses = options.buttonClasses.join(' '); + + if (typeof options.showDropdowns === 'boolean') + this.showDropdowns = options.showDropdowns; + + if (typeof options.singleDatePicker === 'boolean') { + this.singleDatePicker = options.singleDatePicker; + if (this.singleDatePicker) + this.endDate = this.startDate.clone(); + } + + if (typeof options.timePicker === 'boolean') + this.timePicker = options.timePicker; + + if (typeof options.timePickerSeconds === 'boolean') + this.timePickerSeconds = options.timePickerSeconds; + + if (typeof options.timePickerIncrement === 'number') + this.timePickerIncrement = options.timePickerIncrement; + + if (typeof options.timePicker24Hour === 'boolean') + this.timePicker24Hour = options.timePicker24Hour; + + if (typeof options.autoApply === 'boolean') + this.autoApply = options.autoApply; + + if (typeof options.autoUpdateInput === 'boolean') + this.autoUpdateInput = options.autoUpdateInput; + + if (typeof options.linkedCalendars === 'boolean') + this.linkedCalendars = options.linkedCalendars; + + if (typeof options.isInvalidDate === 'function') + this.isInvalidDate = options.isInvalidDate; + + if (typeof options.alwaysShowCalendars === 'boolean') + this.alwaysShowCalendars = options.alwaysShowCalendars; + + // update day names order to firstDay + if (this.locale.firstDay != 0) { + var iterator = this.locale.firstDay; + while (iterator > 0) { + this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()); + iterator--; + } + } + + var start, end, range; + + //if no start/end dates set, check if an input element contains initial values + if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') { + if ($(this.element).is('input[type=text]')) { + var val = $(this.element).val(), + split = val.split(this.locale.separator); + + start = end = null; + + if (split.length == 2) { + start = moment(split[0], this.locale.format); + end = moment(split[1], this.locale.format); + } else if (this.singleDatePicker && val !== "") { + start = moment(val, this.locale.format); + end = moment(val, this.locale.format); + } + if (start !== null && end !== null) { + this.setStartDate(start); + this.setEndDate(end); + } + } + } + + if (typeof options.ranges === 'object') { + for (range in options.ranges) { + + if (typeof options.ranges[range][0] === 'string') + start = moment(options.ranges[range][0], this.locale.format); + else + start = moment(options.ranges[range][0]); + + if (typeof options.ranges[range][1] === 'string') + end = moment(options.ranges[range][1], this.locale.format); + else + end = moment(options.ranges[range][1]); + + // If the start or end date exceed those allowed by the minDate or dateLimit + // options, shorten the range to the allowable period. + if (this.minDate && start.isBefore(this.minDate)) + start = this.minDate.clone(); + + var maxDate = this.maxDate; + if (this.dateLimit && start.clone().add(this.dateLimit).isAfter(maxDate)) + maxDate = start.clone().add(this.dateLimit); + if (maxDate && end.isAfter(maxDate)) + end = maxDate.clone(); + + // If the end of the range is before the minimum or the start of the range is + // after the maximum, don't display this range option at all. + if ((this.minDate && end.isBefore(this.minDate)) || (maxDate && start.isAfter(maxDate))) + continue; + + //Support unicode chars in the range names. + var elem = document.createElement('textarea'); + elem.innerHTML = range; + var rangeHtml = elem.value; + + this.ranges[rangeHtml] = [start, end]; + } + + var list = ''; + this.container.find('.ranges').prepend(list); + } + + if (typeof cb === 'function') { + this.callback = cb; + } + + if (!this.timePicker) { + this.startDate = this.startDate.startOf('day'); + this.endDate = this.endDate.endOf('day'); + this.container.find('.calendar-time').hide(); + } + + //can't be used together for now + if (this.timePicker && this.autoApply) + this.autoApply = false; + + if (this.autoApply && typeof options.ranges !== 'object') { + this.container.find('.ranges').hide(); + } else if (this.autoApply) { + this.container.find('.applyBtn, .cancelBtn').addClass('hide'); + } + + if (this.singleDatePicker) { + this.container.addClass('single'); + this.container.find('.calendar.left').addClass('single'); + this.container.find('.calendar.left').show(); + this.container.find('.calendar.right').hide(); + this.container.find('.daterangepicker_input input, .daterangepicker_input i').hide(); + if (!this.timePicker) { + this.container.find('.ranges').hide(); + } + } + + if ((typeof options.ranges === 'undefined' && !this.singleDatePicker) || this.alwaysShowCalendars) { + this.container.addClass('show-calendar'); + } + + this.container.addClass('opens' + this.opens); + + //swap the position of the predefined ranges if opens right + if (typeof options.ranges !== 'undefined' && this.opens == 'right') { + var ranges = this.container.find('.ranges'); + var html = ranges.clone(); + ranges.remove(); + this.container.find('.calendar.left').parent().prepend(html); + } + + //apply CSS classes and labels to buttons + this.container.find('.applyBtn, .cancelBtn').addClass(this.buttonClasses); + if (this.applyClass.length) + this.container.find('.applyBtn').addClass(this.applyClass); + if (this.cancelClass.length) + this.container.find('.cancelBtn').addClass(this.cancelClass); + this.container.find('.applyBtn').html(this.locale.applyLabel); + this.container.find('.cancelBtn').html(this.locale.cancelLabel); + + // + // event listeners + // + + this.container.find('.calendar') + .on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this)) + .on('click.daterangepicker', '.next', $.proxy(this.clickNext, this)) + .on('click.daterangepicker', 'td.available', $.proxy(this.clickDate, this)) + .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this)) + .on('mouseleave.daterangepicker', 'td.available', $.proxy(this.updateFormInputs, this)) + .on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this)) + .on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this)) + .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this)) + .on('click.daterangepicker', '.daterangepicker_input input', $.proxy(this.showCalendars, this)) + //.on('keyup.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsChanged, this)) + .on('change.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsChanged, this)); + + this.container.find('.ranges') + .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this)) + .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this)) + .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this)) + .on('mouseenter.daterangepicker', 'li', $.proxy(this.hoverRange, this)) + .on('mouseleave.daterangepicker', 'li', $.proxy(this.updateFormInputs, this)); + + if (this.element.is('input')) { + this.element.on({ + 'click.daterangepicker': $.proxy(this.show, this), + 'focus.daterangepicker': $.proxy(this.show, this), + 'keyup.daterangepicker': $.proxy(this.elementChanged, this), + 'keydown.daterangepicker': $.proxy(this.keydown, this) + }); + } else { + this.element.on('click.daterangepicker', $.proxy(this.toggle, this)); + } + + // + // if attached to a text input, set the initial value + // + + if (this.element.is('input') && !this.singleDatePicker && this.autoUpdateInput) { + this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format)); + this.element.trigger('change'); + } else if (this.element.is('input') && this.autoUpdateInput) { + this.element.val(this.startDate.format(this.locale.format)); + this.element.trigger('change'); + } + + }; + + DateRangePicker.prototype = { + + constructor: DateRangePicker, + + setStartDate: function(startDate) { + if (typeof startDate === 'string') + this.startDate = moment(startDate, this.locale.format); + + if (typeof startDate === 'object') + this.startDate = moment(startDate); + + if (!this.timePicker) + this.startDate = this.startDate.startOf('day'); + + if (this.timePicker && this.timePickerIncrement) + this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); + + if (this.minDate && this.startDate.isBefore(this.minDate)) + this.startDate = this.minDate; + + if (this.maxDate && this.startDate.isAfter(this.maxDate)) + this.startDate = this.maxDate; + + if (!this.isShowing) + this.updateElement(); + + this.updateMonthsInView(); + }, + + setEndDate: function(endDate) { + if (typeof endDate === 'string') + this.endDate = moment(endDate, this.locale.format); + + if (typeof endDate === 'object') + this.endDate = moment(endDate); + + if (!this.timePicker) + this.endDate = this.endDate.endOf('day'); + + if (this.timePicker && this.timePickerIncrement) + this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); + + if (this.endDate.isBefore(this.startDate)) + this.endDate = this.startDate.clone(); + + if (this.maxDate && this.endDate.isAfter(this.maxDate)) + this.endDate = this.maxDate; + + if (this.dateLimit && this.startDate.clone().add(this.dateLimit).isBefore(this.endDate)) + this.endDate = this.startDate.clone().add(this.dateLimit); + + this.previousRightTime = this.endDate.clone(); + + if (!this.isShowing) + this.updateElement(); + + this.updateMonthsInView(); + }, + + isInvalidDate: function() { + return false; + }, + + updateView: function() { + if (this.timePicker) { + this.renderTimePicker('left'); + this.renderTimePicker('right'); + if (!this.endDate) { + this.container.find('.right .calendar-time select').attr('disabled', 'disabled').addClass('disabled'); + } else { + this.container.find('.right .calendar-time select').removeAttr('disabled').removeClass('disabled'); + } + } + if (this.endDate) { + this.container.find('input[name="daterangepicker_end"]').removeClass('active'); + this.container.find('input[name="daterangepicker_start"]').addClass('active'); + } else { + this.container.find('input[name="daterangepicker_end"]').addClass('active'); + this.container.find('input[name="daterangepicker_start"]').removeClass('active'); + } + this.updateMonthsInView(); + this.updateCalendars(); + this.updateFormInputs(); + }, + + updateMonthsInView: function() { + if (this.endDate) { + + //if both dates are visible already, do nothing + if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month && + (this.startDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.startDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM')) + && + (this.endDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.endDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM')) + ) { + return; + } + + this.leftCalendar.month = this.startDate.clone().date(2); + if (!this.linkedCalendars && (this.endDate.month() != this.startDate.month() || this.endDate.year() != this.startDate.year())) { + this.rightCalendar.month = this.endDate.clone().date(2); + } else { + this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month'); + } + + } else { + if (this.leftCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM') && this.rightCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM')) { + this.leftCalendar.month = this.startDate.clone().date(2); + this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month'); + } + } + }, + + updateCalendars: function() { + + if (this.timePicker) { + var hour, minute, second; + if (this.endDate) { + hour = parseInt(this.container.find('.left .hourselect').val(), 10); + minute = parseInt(this.container.find('.left .minuteselect').val(), 10); + second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0; + if (!this.timePicker24Hour) { + var ampm = this.container.find('.left .ampmselect').val(); + if (ampm === 'PM' && hour < 12) + hour += 12; + if (ampm === 'AM' && hour === 12) + hour = 0; + } + } else { + hour = parseInt(this.container.find('.right .hourselect').val(), 10); + minute = parseInt(this.container.find('.right .minuteselect').val(), 10); + second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0; + if (!this.timePicker24Hour) { + var ampm = this.container.find('.right .ampmselect').val(); + if (ampm === 'PM' && hour < 12) + hour += 12; + if (ampm === 'AM' && hour === 12) + hour = 0; + } + } + this.leftCalendar.month.hour(hour).minute(minute).second(second); + this.rightCalendar.month.hour(hour).minute(minute).second(second); + } + + this.renderCalendar('left'); + this.renderCalendar('right'); + + //highlight any predefined range matching the current start and end dates + this.container.find('.ranges li').removeClass('active'); + if (this.endDate == null) return; + + this.calculateChosenLabel(); + }, + + renderCalendar: function(side) { + + // + // Build the matrix of dates that will populate the calendar + // + + var calendar = side == 'left' ? this.leftCalendar : this.rightCalendar; + var month = calendar.month.month(); + var year = calendar.month.year(); + var hour = calendar.month.hour(); + var minute = calendar.month.minute(); + var second = calendar.month.second(); + var daysInMonth = moment([year, month]).daysInMonth(); + var firstDay = moment([year, month, 1]); + var lastDay = moment([year, month, daysInMonth]); + var lastMonth = moment(firstDay).subtract(1, 'month').month(); + var lastYear = moment(firstDay).subtract(1, 'month').year(); + var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth(); + var dayOfWeek = firstDay.day(); + + //initialize a 6 rows x 7 columns array for the calendar + var calendar = []; + calendar.firstDay = firstDay; + calendar.lastDay = lastDay; + + for (var i = 0; i < 6; i++) { + calendar[i] = []; + } + + //populate the calendar with date objects + var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1; + if (startDay > daysInLastMonth) + startDay -= 7; + + if (dayOfWeek == this.locale.firstDay) + startDay = daysInLastMonth - 6; + + var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]); + + var col, row; + for (var i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) { + if (i > 0 && col % 7 === 0) { + col = 0; + row++; + } + calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second); + curDate.hour(12); + + if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side == 'left') { + calendar[row][col] = this.minDate.clone(); + } + + if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side == 'right') { + calendar[row][col] = this.maxDate.clone(); + } + + } + + //make the calendar object available to hoverDate/clickDate + if (side == 'left') { + this.leftCalendar.calendar = calendar; + } else { + this.rightCalendar.calendar = calendar; + } + + // + // Display the calendar + // + + var minDate = side == 'left' ? this.minDate : this.startDate; + var maxDate = this.maxDate; + var selected = side == 'left' ? this.startDate : this.endDate; + + var html = ''; + html += ''; + html += ''; + + // add empty cell for week number + if (this.showWeekNumbers || this.showISOWeekNumbers) + html += ''; + + if ((!minDate || minDate.isBefore(calendar.firstDay)) && (!this.linkedCalendars || side == 'left')) { + html += ''; + } else { + html += ''; + } + + var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(" YYYY"); + + if (this.showDropdowns) { + var currentMonth = calendar[1][1].month(); + var currentYear = calendar[1][1].year(); + var maxYear = (maxDate && maxDate.year()) || (currentYear + 5); + var minYear = (minDate && minDate.year()) || (currentYear - 50); + var inMinYear = currentYear == minYear; + var inMaxYear = currentYear == maxYear; + + var monthHtml = '"; + + var yearHtml = ''; + + dateHtml = monthHtml + yearHtml; + } + + html += ''; + if ((!maxDate || maxDate.isAfter(calendar.lastDay)) && (!this.linkedCalendars || side == 'right' || this.singleDatePicker)) { + html += ''; + } else { + html += ''; + } + + html += ''; + html += ''; + + // add week number label + if (this.showWeekNumbers || this.showISOWeekNumbers) + html += ''; + + $.each(this.locale.daysOfWeek, function(index, dayOfWeek) { + html += ''; + }); + + html += ''; + html += ''; + html += ''; + + //adjust maxDate to reflect the dateLimit setting in order to + //grey out end dates beyond the dateLimit + if (this.endDate == null && this.dateLimit) { + var maxLimit = this.startDate.clone().add(this.dateLimit).endOf('day'); + if (!maxDate || maxLimit.isBefore(maxDate)) { + maxDate = maxLimit; + } + } + + for (var row = 0; row < 6; row++) { + html += ''; + + // add week number + if (this.showWeekNumbers) + html += ''; + else if (this.showISOWeekNumbers) + html += ''; + + for (var col = 0; col < 7; col++) { + + var classes = []; + + //highlight today's date + if (calendar[row][col].isSame(new Date(), "day")) + classes.push('today'); + + //highlight weekends + if (calendar[row][col].isoWeekday() > 5) + classes.push('weekend'); + + //grey out the dates in other months displayed at beginning and end of this calendar + if (calendar[row][col].month() != calendar[1][1].month()) + classes.push('off'); + + //don't allow selection of dates before the minimum date + if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day')) + classes.push('off', 'disabled'); + + //don't allow selection of dates after the maximum date + if (maxDate && calendar[row][col].isAfter(maxDate, 'day')) + classes.push('off', 'disabled'); + + //don't allow selection of date if a custom function decides it's invalid + if (this.isInvalidDate(calendar[row][col])) + classes.push('off', 'disabled'); + + //highlight the currently selected start date + if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD')) + classes.push('active', 'start-date'); + + //highlight the currently selected end date + if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD')) + classes.push('active', 'end-date'); + + //highlight dates in-between the selected dates + if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate) + classes.push('in-range'); + + var cname = '', disabled = false; + for (var i = 0; i < classes.length; i++) { + cname += classes[i] + ' '; + if (classes[i] == 'disabled') + disabled = true; + } + if (!disabled) + cname += 'available'; + + html += ''; + + } + html += ''; + } + + html += ''; + html += '
' + dateHtml + '
' + this.locale.weekLabel + '' + dayOfWeek + '
' + calendar[row][0].week() + '' + calendar[row][0].isoWeek() + '' + calendar[row][col].date() + '
'; + + this.container.find('.calendar.' + side + ' .calendar-table').html(html); + + }, + + renderTimePicker: function(side) { + + var html, selected, minDate, maxDate = this.maxDate; + + if (this.dateLimit && (!this.maxDate || this.startDate.clone().add(this.dateLimit).isAfter(this.maxDate))) + maxDate = this.startDate.clone().add(this.dateLimit); + + if (side == 'left') { + selected = this.startDate.clone(); + minDate = this.minDate; + } else if (side == 'right') { + selected = this.endDate ? this.endDate.clone() : this.previousRightTime.clone(); + minDate = this.startDate; + + //Preserve the time already selected + var timeSelector = this.container.find('.calendar.right .calendar-time div'); + if (timeSelector.html() != '') { + + selected.hour(timeSelector.find('.hourselect option:selected').val() || selected.hour()); + selected.minute(timeSelector.find('.minuteselect option:selected').val() || selected.minute()); + selected.second(timeSelector.find('.secondselect option:selected').val() || selected.second()); + + if (!this.timePicker24Hour) { + var ampm = timeSelector.find('.ampmselect option:selected').val(); + if (ampm === 'PM' && selected.hour() < 12) + selected.hour(selected.hour() + 12); + if (ampm === 'AM' && selected.hour() === 12) + selected.hour(0); + } + + if (selected.isBefore(this.startDate)) + selected = this.startDate.clone(); + + if (maxDate && selected.isAfter(maxDate)) + selected = maxDate.clone(); + + } + } + + // + // hours + // + + html = ' '; + + // + // minutes + // + + html += ': '; + + // + // seconds + // + + if (this.timePickerSeconds) { + html += ': '; + } + + // + // AM/PM + // + + if (!this.timePicker24Hour) { + html += ''; + } + + this.container.find('.calendar.' + side + ' .calendar-time div').html(html); + + }, + + updateFormInputs: function() { + + //ignore mouse movements while an above-calendar text input has focus + if (this.container.find('input[name=daterangepicker_start]').is(":focus") || this.container.find('input[name=daterangepicker_end]').is(":focus")) + return; + + this.container.find('input[name=daterangepicker_start]').val(this.startDate.format(this.locale.format)); + if (this.endDate) + this.container.find('input[name=daterangepicker_end]').val(this.endDate.format(this.locale.format)); + + if (this.singleDatePicker || (this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate)))) { + this.container.find('button.applyBtn').removeAttr('disabled'); + } else { + this.container.find('button.applyBtn').attr('disabled', 'disabled'); + } + + }, + + move: function() { + var parentOffset = { top: 0, left: 0 }, + containerTop; + var parentRightEdge = $(window).width(); + if (!this.parentEl.is('body')) { + parentOffset = { + top: this.parentEl.offset().top - this.parentEl.scrollTop(), + left: this.parentEl.offset().left - this.parentEl.scrollLeft() + }; + parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left; + } + + if (this.drops == 'up') + containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top; + else + containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top; + this.container[this.drops == 'up' ? 'addClass' : 'removeClass']('dropup'); + + if (this.opens == 'left') { + this.container.css({ + top: containerTop, + right: parentRightEdge - this.element.offset().left - this.element.outerWidth(), + left: 'auto' + }); + if (this.container.offset().left < 0) { + this.container.css({ + right: 'auto', + left: 9 + }); + } + } else if (this.opens == 'center') { + this.container.css({ + top: containerTop, + left: this.element.offset().left - parentOffset.left + this.element.outerWidth() / 2 + - this.container.outerWidth() / 2, + right: 'auto' + }); + if (this.container.offset().left < 0) { + this.container.css({ + right: 'auto', + left: 9 + }); + } + } else { + this.container.css({ + top: containerTop, + left: this.element.offset().left - parentOffset.left, + right: 'auto' + }); + if (this.container.offset().left + this.container.outerWidth() > $(window).width()) { + this.container.css({ + left: 'auto', + right: 0 + }); + } + } + }, + + show: function(e) { + if (this.isShowing) return; + + // Create a click proxy that is private to this instance of datepicker, for unbinding + this._outsideClickProxy = $.proxy(function(e) { this.outsideClick(e); }, this); + + // Bind global datepicker mousedown for hiding and + $(document) + .on('mousedown.daterangepicker', this._outsideClickProxy) + // also support mobile devices + .on('touchend.daterangepicker', this._outsideClickProxy) + // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them + .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy) + // and also close when focus changes to outside the picker (eg. tabbing between controls) + .on('focusin.daterangepicker', this._outsideClickProxy); + + // Reposition the picker if the window is resized while it's open + $(window).on('resize.daterangepicker', $.proxy(function(e) { this.move(e); }, this)); + + this.oldStartDate = this.startDate.clone(); + this.oldEndDate = this.endDate.clone(); + this.previousRightTime = this.endDate.clone(); + + this.updateView(); + this.container.show(); + this.move(); + this.element.trigger('show.daterangepicker', this); + this.isShowing = true; + }, + + hide: function(e) { + if (!this.isShowing) return; + + //incomplete date selection, revert to last values + if (!this.endDate) { + this.startDate = this.oldStartDate.clone(); + this.endDate = this.oldEndDate.clone(); + } + + //if a new date range was selected, invoke the user callback function + if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate)) + this.callback(this.startDate, this.endDate, this.chosenLabel); + + //if picker is attached to a text input, update it + this.updateElement(); + + $(document).off('.daterangepicker'); + $(window).off('.daterangepicker'); + this.container.hide(); + this.element.trigger('hide.daterangepicker', this); + this.isShowing = false; + }, + + toggle: function(e) { + if (this.isShowing) { + this.hide(); + } else { + this.show(); + } + }, + + outsideClick: function(e) { + var target = $(e.target); + // if the page is clicked anywhere except within the daterangerpicker/button + // itself then call this.hide() + if ( + // ie modal dialog fix + e.type == "focusin" || + target.closest(this.element).length || + target.closest(this.container).length || + target.closest('.calendar-table').length + ) return; + this.hide(); + }, + + showCalendars: function() { + this.container.addClass('show-calendar'); + this.move(); + this.element.trigger('showCalendar.daterangepicker', this); + }, + + hideCalendars: function() { + this.container.removeClass('show-calendar'); + this.element.trigger('hideCalendar.daterangepicker', this); + }, + + hoverRange: function(e) { + + //ignore mouse movements while an above-calendar text input has focus + if (this.container.find('input[name=daterangepicker_start]').is(":focus") || this.container.find('input[name=daterangepicker_end]').is(":focus")) + return; + + var label = e.target.innerHTML; + if (label == this.locale.customRangeLabel) { + this.updateView(); + } else { + var dates = this.ranges[label]; + this.container.find('input[name=daterangepicker_start]').val(dates[0].format(this.locale.format)); + this.container.find('input[name=daterangepicker_end]').val(dates[1].format(this.locale.format)); + } + + }, + + clickRange: function(e) { + var label = e.target.innerHTML; + this.chosenLabel = label; + if (label == this.locale.customRangeLabel) { + this.showCalendars(); + } else { + var dates = this.ranges[label]; + this.startDate = dates[0]; + this.endDate = dates[1]; + + if (!this.timePicker) { + this.startDate.startOf('day'); + this.endDate.endOf('day'); + } + + if (!this.alwaysShowCalendars) + this.hideCalendars(); + this.clickApply(); + } + }, + + clickPrev: function(e) { + var cal = $(e.target).parents('.calendar'); + if (cal.hasClass('left')) { + this.leftCalendar.month.subtract(1, 'month'); + if (this.linkedCalendars) + this.rightCalendar.month.subtract(1, 'month'); + } else { + this.rightCalendar.month.subtract(1, 'month'); + } + this.updateCalendars(); + }, + + clickNext: function(e) { + var cal = $(e.target).parents('.calendar'); + if (cal.hasClass('left')) { + this.leftCalendar.month.add(1, 'month'); + } else { + this.rightCalendar.month.add(1, 'month'); + if (this.linkedCalendars) + this.leftCalendar.month.add(1, 'month'); + } + this.updateCalendars(); + }, + + hoverDate: function(e) { + + //ignore mouse movements while an above-calendar text input has focus + if (this.container.find('input[name=daterangepicker_start]').is(":focus") || this.container.find('input[name=daterangepicker_end]').is(":focus")) + return; + + //ignore dates that can't be selected + if (!$(e.target).hasClass('available')) return; + + //have the text inputs above calendars reflect the date being hovered over + var title = $(e.target).attr('data-title'); + var row = title.substr(1, 1); + var col = title.substr(3, 1); + var cal = $(e.target).parents('.calendar'); + var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col]; + + if (this.endDate) { + this.container.find('input[name=daterangepicker_start]').val(date.format(this.locale.format)); + } else { + this.container.find('input[name=daterangepicker_end]').val(date.format(this.locale.format)); + } + + //highlight the dates between the start date and the date being hovered as a potential end date + var leftCalendar = this.leftCalendar; + var rightCalendar = this.rightCalendar; + var startDate = this.startDate; + if (!this.endDate) { + this.container.find('.calendar td').each(function(index, el) { + + //skip week numbers, only look at dates + if ($(el).hasClass('week')) return; + + var title = $(el).attr('data-title'); + var row = title.substr(1, 1); + var col = title.substr(3, 1); + var cal = $(el).parents('.calendar'); + var dt = cal.hasClass('left') ? leftCalendar.calendar[row][col] : rightCalendar.calendar[row][col]; + + if (dt.isAfter(startDate) && dt.isBefore(date)) { + $(el).addClass('in-range'); + } else { + $(el).removeClass('in-range'); + } + + }); + } + + }, + + clickDate: function(e) { + + if (!$(e.target).hasClass('available')) return; + + var title = $(e.target).attr('data-title'); + var row = title.substr(1, 1); + var col = title.substr(3, 1); + var cal = $(e.target).parents('.calendar'); + var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col]; + + // + // this function needs to do a few things: + // * alternate between selecting a start and end date for the range, + // * if the time picker is enabled, apply the hour/minute/second from the select boxes to the clicked date + // * if autoapply is enabled, and an end date was chosen, apply the selection + // * if single date picker mode, and time picker isn't enabled, apply the selection immediately + // + + if (this.endDate || date.isBefore(this.startDate, 'day')) { + if (this.timePicker) { + var hour = parseInt(this.container.find('.left .hourselect').val(), 10); + if (!this.timePicker24Hour) { + var ampm = this.container.find('.left .ampmselect').val(); + if (ampm === 'PM' && hour < 12) + hour += 12; + if (ampm === 'AM' && hour === 12) + hour = 0; + } + var minute = parseInt(this.container.find('.left .minuteselect').val(), 10); + var second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0; + date = date.clone().hour(hour).minute(minute).second(second); + } + this.endDate = null; + this.setStartDate(date.clone()); + } else if (!this.endDate && date.isBefore(this.startDate)) { + //special case: clicking the same date for start/end, + //but the time of the end date is before the start date + this.setEndDate(this.startDate.clone()); + } else { + if (this.timePicker) { + var hour = parseInt(this.container.find('.right .hourselect').val(), 10); + if (!this.timePicker24Hour) { + var ampm = this.container.find('.right .ampmselect').val(); + if (ampm === 'PM' && hour < 12) + hour += 12; + if (ampm === 'AM' && hour === 12) + hour = 0; + } + var minute = parseInt(this.container.find('.right .minuteselect').val(), 10); + var second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0; + date = date.clone().hour(hour).minute(minute).second(second); + } + this.setEndDate(date.clone()); + if (this.autoApply) { + this.calculateChosenLabel(); + this.clickApply(); + } + } + + if (this.singleDatePicker) { + this.setEndDate(this.startDate); + if (!this.timePicker) + this.clickApply(); + } + + this.updateView(); + + }, + + calculateChosenLabel: function() { + var customRange = true; + var i = 0; + for (var range in this.ranges) { + if (this.timePicker) { + if (this.startDate.isSame(this.ranges[range][0]) && this.endDate.isSame(this.ranges[range][1])) { + customRange = false; + this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').html(); + break; + } + } else { + //ignore times when comparing dates if time picker is not enabled + if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) { + customRange = false; + this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').html(); + break; + } + } + i++; + } + if (customRange) { + this.chosenLabel = this.container.find('.ranges li:last').addClass('active').html(); + this.showCalendars(); + } + }, + + clickApply: function(e) { + this.hide(); + this.element.trigger('apply.daterangepicker', this); + }, + + clickCancel: function(e) { + this.startDate = this.oldStartDate; + this.endDate = this.oldEndDate; + this.hide(); + this.element.trigger('cancel.daterangepicker', this); + }, + + monthOrYearChanged: function(e) { + var isLeft = $(e.target).closest('.calendar').hasClass('left'), + leftOrRight = isLeft ? 'left' : 'right', + cal = this.container.find('.calendar.'+leftOrRight); + + // Month must be Number for new moment versions + var month = parseInt(cal.find('.monthselect').val(), 10); + var year = cal.find('.yearselect').val(); + + if (!isLeft) { + if (year < this.startDate.year() || (year == this.startDate.year() && month < this.startDate.month())) { + month = this.startDate.month(); + year = this.startDate.year(); + } + } + + if (this.minDate) { + if (year < this.minDate.year() || (year == this.minDate.year() && month < this.minDate.month())) { + month = this.minDate.month(); + year = this.minDate.year(); + } + } + + if (this.maxDate) { + if (year > this.maxDate.year() || (year == this.maxDate.year() && month > this.maxDate.month())) { + month = this.maxDate.month(); + year = this.maxDate.year(); + } + } + + if (isLeft) { + this.leftCalendar.month.month(month).year(year); + if (this.linkedCalendars) + this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month'); + } else { + this.rightCalendar.month.month(month).year(year); + if (this.linkedCalendars) + this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month'); + } + this.updateCalendars(); + }, + + timeChanged: function(e) { + + var cal = $(e.target).closest('.calendar'), + isLeft = cal.hasClass('left'); + + var hour = parseInt(cal.find('.hourselect').val(), 10); + var minute = parseInt(cal.find('.minuteselect').val(), 10); + var second = this.timePickerSeconds ? parseInt(cal.find('.secondselect').val(), 10) : 0; + + if (!this.timePicker24Hour) { + var ampm = cal.find('.ampmselect').val(); + if (ampm === 'PM' && hour < 12) + hour += 12; + if (ampm === 'AM' && hour === 12) + hour = 0; + } + + if (isLeft) { + var start = this.startDate.clone(); + start.hour(hour); + start.minute(minute); + start.second(second); + this.setStartDate(start); + if (this.singleDatePicker) { + this.endDate = this.startDate.clone(); + } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) { + this.setEndDate(start.clone()); + } + } else if (this.endDate) { + var end = this.endDate.clone(); + end.hour(hour); + end.minute(minute); + end.second(second); + this.setEndDate(end); + } + + //update the calendars so all clickable dates reflect the new time component + this.updateCalendars(); + + //update the form inputs above the calendars with the new time + this.updateFormInputs(); + + //re-render the time pickers because changing one selection can affect what's enabled in another + this.renderTimePicker('left'); + this.renderTimePicker('right'); + + }, + + formInputsChanged: function(e) { + var isRight = $(e.target).closest('.calendar').hasClass('right'); + var start = moment(this.container.find('input[name="daterangepicker_start"]').val(), this.locale.format); + var end = moment(this.container.find('input[name="daterangepicker_end"]').val(), this.locale.format); + + if (start.isValid() && end.isValid()) { + + if (isRight && end.isBefore(start)) + start = end.clone(); + + this.setStartDate(start); + this.setEndDate(end); + + if (isRight) { + this.container.find('input[name="daterangepicker_start"]').val(this.startDate.format(this.locale.format)); + } else { + this.container.find('input[name="daterangepicker_end"]').val(this.endDate.format(this.locale.format)); + } + + } + + this.updateCalendars(); + if (this.timePicker) { + this.renderTimePicker('left'); + this.renderTimePicker('right'); + } + }, + + elementChanged: function() { + if (!this.element.is('input')) return; + if (!this.element.val().length) return; + if (this.element.val().length < this.locale.format.length) return; + + var dateString = this.element.val().split(this.locale.separator), + start = null, + end = null; + + if (dateString.length === 2) { + start = moment(dateString[0], this.locale.format); + end = moment(dateString[1], this.locale.format); + } + + if (this.singleDatePicker || start === null || end === null) { + start = moment(this.element.val(), this.locale.format); + end = start; + } + + if (!start.isValid() || !end.isValid()) return; + + this.setStartDate(start); + this.setEndDate(end); + this.updateView(); + }, + + keydown: function(e) { + //hide on tab or enter + if ((e.keyCode === 9) || (e.keyCode === 13)) { + this.hide(); + } + }, + + updateElement: function() { + if (this.element.is('input') && !this.singleDatePicker && this.autoUpdateInput) { + this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format)); + this.element.trigger('change'); + } else if (this.element.is('input') && this.autoUpdateInput) { + this.element.val(this.startDate.format(this.locale.format)); + this.element.trigger('change'); + } + }, + + remove: function() { + this.container.remove(); + this.element.off('.daterangepicker'); + this.element.removeData(); + } + + }; + + $.fn.daterangepicker = function(options, callback) { + this.each(function() { + var el = $(this); + if (el.data('daterangepicker')) + el.data('daterangepicker').remove(); + el.data('daterangepicker', new DateRangePicker(el, options, callback)); + }); + return this; + }; + + return DateRangePicker; + +})); diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/public/js/moment.min.js b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/public/js/moment.min.js new file mode 100644 index 000000000..05199bd3b --- /dev/null +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker/public/js/moment.min.js @@ -0,0 +1,7 @@ +//! moment.js +//! version : 2.10.3 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com +!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){"use strict";function a(){return Dc.apply(null,arguments)}function b(a){Dc=a}function c(a){return"[object Array]"===Object.prototype.toString.call(a)}function d(a){return a instanceof Date||"[object Date]"===Object.prototype.toString.call(a)}function e(a,b){var c,d=[];for(c=0;c0)for(c in Fc)d=Fc[c],e=b[d],"undefined"!=typeof e&&(a[d]=e);return a}function n(b){m(this,b),this._d=new Date(+b._d),Gc===!1&&(Gc=!0,a.updateOffset(this),Gc=!1)}function o(a){return a instanceof n||null!=a&&null!=a._isAMomentObject}function p(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=b>=0?Math.floor(b):Math.ceil(b)),c}function q(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&p(a[d])!==p(b[d]))&&g++;return g+f}function r(){}function s(a){return a?a.toLowerCase().replace("_","-"):a}function t(a){for(var b,c,d,e,f=0;f0;){if(d=u(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&q(e,c,!0)>=b-1)break;b--}f++}return null}function u(a){var b=null;if(!Hc[a]&&"undefined"!=typeof module&&module&&module.exports)try{b=Ec._abbr,require("./locale/"+a),v(b)}catch(c){}return Hc[a]}function v(a,b){var c;return a&&(c="undefined"==typeof b?x(a):w(a,b),c&&(Ec=c)),Ec._abbr}function w(a,b){return null!==b?(b.abbr=a,Hc[a]||(Hc[a]=new r),Hc[a].set(b),v(a),Hc[a]):(delete Hc[a],null)}function x(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return Ec;if(!c(a)){if(b=u(a))return b;a=[a]}return t(a)}function y(a,b){var c=a.toLowerCase();Ic[c]=Ic[c+"s"]=Ic[b]=a}function z(a){return"string"==typeof a?Ic[a]||Ic[a.toLowerCase()]:void 0}function A(a){var b,c,d={};for(c in a)f(a,c)&&(b=z(c),b&&(d[b]=a[c]));return d}function B(b,c){return function(d){return null!=d?(D(this,b,d),a.updateOffset(this,c),this):C(this,b)}}function C(a,b){return a._d["get"+(a._isUTC?"UTC":"")+b]()}function D(a,b,c){return a._d["set"+(a._isUTC?"UTC":"")+b](c)}function E(a,b){var c;if("object"==typeof a)for(c in a)this.set(c,a[c]);else if(a=z(a),"function"==typeof this[a])return this[a](b);return this}function F(a,b,c){for(var d=""+Math.abs(a),e=a>=0;d.lengthb;b++)Mc[d[b]]?d[b]=Mc[d[b]]:d[b]=H(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function J(a,b){return a.isValid()?(b=K(b,a.localeData()),Lc[b]||(Lc[b]=I(b)),Lc[b](a)):a.localeData().invalidDate()}function K(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Kc.lastIndex=0;d>=0&&Kc.test(a);)a=a.replace(Kc,c),Kc.lastIndex=0,d-=1;return a}function L(a,b,c){_c[a]="function"==typeof b?b:function(a){return a&&c?c:b}}function M(a,b){return f(_c,a)?_c[a](b._strict,b._locale):new RegExp(N(a))}function N(a){return a.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e}).replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function O(a,b){var c,d=b;for("string"==typeof a&&(a=[a]),"number"==typeof b&&(d=function(a,c){c[b]=p(a)}),c=0;cd;d++){if(e=h([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp("^"+this.months(e,"").replace(".","")+"$","i"),this._shortMonthsParse[d]=new RegExp("^"+this.monthsShort(e,"").replace(".","")+"$","i")),c||this._monthsParse[d]||(f="^"+this.months(e,"")+"|^"+this.monthsShort(e,""),this._monthsParse[d]=new RegExp(f.replace(".",""),"i")),c&&"MMMM"===b&&this._longMonthsParse[d].test(a))return d;if(c&&"MMM"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}}function V(a,b){var c;return"string"==typeof b&&(b=a.localeData().monthsParse(b),"number"!=typeof b)?a:(c=Math.min(a.date(),R(a.year(),b)),a._d["set"+(a._isUTC?"UTC":"")+"Month"](b,c),a)}function W(b){return null!=b?(V(this,b),a.updateOffset(this,!0),this):C(this,"Month")}function X(){return R(this.year(),this.month())}function Y(a){var b,c=a._a;return c&&-2===j(a).overflow&&(b=c[cd]<0||c[cd]>11?cd:c[dd]<1||c[dd]>R(c[bd],c[cd])?dd:c[ed]<0||c[ed]>24||24===c[ed]&&(0!==c[fd]||0!==c[gd]||0!==c[hd])?ed:c[fd]<0||c[fd]>59?fd:c[gd]<0||c[gd]>59?gd:c[hd]<0||c[hd]>999?hd:-1,j(a)._overflowDayOfYear&&(bd>b||b>dd)&&(b=dd),j(a).overflow=b),a}function Z(b){a.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+b)}function $(a,b){var c=!0,d=a+"\n"+(new Error).stack;return g(function(){return c&&(Z(d),c=!1),b.apply(this,arguments)},b)}function _(a,b){kd[a]||(Z(b),kd[a]=!0)}function aa(a){var b,c,d=a._i,e=ld.exec(d);if(e){for(j(a).iso=!0,b=0,c=md.length;c>b;b++)if(md[b][1].exec(d)){a._f=md[b][0]+(e[6]||" ");break}for(b=0,c=nd.length;c>b;b++)if(nd[b][1].exec(d)){a._f+=nd[b][0];break}d.match(Yc)&&(a._f+="Z"),ta(a)}else a._isValid=!1}function ba(b){var c=od.exec(b._i);return null!==c?void(b._d=new Date(+c[1])):(aa(b),void(b._isValid===!1&&(delete b._isValid,a.createFromInputFallback(b))))}function ca(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 1970>a&&h.setFullYear(a),h}function da(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function ea(a){return fa(a)?366:365}function fa(a){return a%4===0&&a%100!==0||a%400===0}function ga(){return fa(this.year())}function ha(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=Aa(a).add(f,"d"),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function ia(a){return ha(a,this._week.dow,this._week.doy).week}function ja(){return this._week.dow}function ka(){return this._week.doy}function la(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")}function ma(a){var b=ha(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")}function na(a,b,c,d,e){var f,g,h=da(a,0,1).getUTCDay();return h=0===h?7:h,c=null!=c?c:e,f=e-h+(h>d?7:0)-(e>h?7:0),g=7*(b-1)+(c-e)+f+1,{year:g>0?a:a-1,dayOfYear:g>0?g:ea(a-1)+g}}function oa(a){var b=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")}function pa(a,b,c){return null!=a?a:null!=b?b:c}function qa(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function ra(a){var b,c,d,e,f=[];if(!a._d){for(d=qa(a),a._w&&null==a._a[dd]&&null==a._a[cd]&&sa(a),a._dayOfYear&&(e=pa(a._a[bd],d[bd]),a._dayOfYear>ea(e)&&(j(a)._overflowDayOfYear=!0),c=da(e,0,a._dayOfYear),a._a[cd]=c.getUTCMonth(),a._a[dd]=c.getUTCDate()),b=0;3>b&&null==a._a[b];++b)a._a[b]=f[b]=d[b];for(;7>b;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];24===a._a[ed]&&0===a._a[fd]&&0===a._a[gd]&&0===a._a[hd]&&(a._nextDay=!0,a._a[ed]=0),a._d=(a._useUTC?da:ca).apply(null,f),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[ed]=24)}}function sa(a){var b,c,d,e,f,g,h;b=a._w,null!=b.GG||null!=b.W||null!=b.E?(f=1,g=4,c=pa(b.GG,a._a[bd],ha(Aa(),1,4).year),d=pa(b.W,1),e=pa(b.E,1)):(f=a._locale._week.dow,g=a._locale._week.doy,c=pa(b.gg,a._a[bd],ha(Aa(),f,g).year),d=pa(b.w,1),null!=b.d?(e=b.d,f>e&&++d):e=null!=b.e?b.e+f:f),h=na(c,d,e,g,f),a._a[bd]=h.year,a._dayOfYear=h.dayOfYear}function ta(b){if(b._f===a.ISO_8601)return void aa(b);b._a=[],j(b).empty=!0;var c,d,e,f,g,h=""+b._i,i=h.length,k=0;for(e=K(b._f,b._locale).match(Jc)||[],c=0;c0&&j(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),k+=d.length),Mc[f]?(d?j(b).empty=!1:j(b).unusedTokens.push(f),Q(f,d,b)):b._strict&&!d&&j(b).unusedTokens.push(f);j(b).charsLeftOver=i-k,h.length>0&&j(b).unusedInput.push(h),j(b).bigHour===!0&&b._a[ed]<=12&&b._a[ed]>0&&(j(b).bigHour=void 0),b._a[ed]=ua(b._locale,b._a[ed],b._meridiem),ra(b),Y(b)}function ua(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&12>b&&(b+=12),d||12!==b||(b=0),b):b}function va(a){var b,c,d,e,f;if(0===a._f.length)return j(a).invalidFormat=!0,void(a._d=new Date(0/0));for(e=0;ef)&&(d=f,c=b));g(a,c||b)}function wa(a){if(!a._d){var b=A(a._i);a._a=[b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],ra(a)}}function xa(a){var b,e=a._i,f=a._f;return a._locale=a._locale||x(a._l),null===e||void 0===f&&""===e?l({nullInput:!0}):("string"==typeof e&&(a._i=e=a._locale.preparse(e)),o(e)?new n(Y(e)):(c(f)?va(a):f?ta(a):d(e)?a._d=e:ya(a),b=new n(Y(a)),b._nextDay&&(b.add(1,"d"),b._nextDay=void 0),b))}function ya(b){var f=b._i;void 0===f?b._d=new Date:d(f)?b._d=new Date(+f):"string"==typeof f?ba(b):c(f)?(b._a=e(f.slice(0),function(a){return parseInt(a,10)}),ra(b)):"object"==typeof f?wa(b):"number"==typeof f?b._d=new Date(f):a.createFromInputFallback(b)}function za(a,b,c,d,e){var f={};return"boolean"==typeof c&&(d=c,c=void 0),f._isAMomentObject=!0,f._useUTC=f._isUTC=e,f._l=c,f._i=a,f._f=b,f._strict=d,xa(f)}function Aa(a,b,c,d){return za(a,b,c,d,!1)}function Ba(a,b){var d,e;if(1===b.length&&c(b[0])&&(b=b[0]),!b.length)return Aa();for(d=b[0],e=1;ea&&(a=-a,c="-"),c+F(~~(a/60),2)+b+F(~~a%60,2)})}function Ha(a){var b=(a||"").match(Yc)||[],c=b[b.length-1]||[],d=(c+"").match(td)||["-",0,0],e=+(60*d[1])+p(d[2]);return"+"===d[0]?e:-e}function Ia(b,c){var e,f;return c._isUTC?(e=c.clone(),f=(o(b)||d(b)?+b:+Aa(b))-+e,e._d.setTime(+e._d+f),a.updateOffset(e,!1),e):Aa(b).local();return c._isUTC?Aa(b).zone(c._offset||0):Aa(b).local()}function Ja(a){return 15*-Math.round(a._d.getTimezoneOffset()/15)}function Ka(b,c){var d,e=this._offset||0;return null!=b?("string"==typeof b&&(b=Ha(b)),Math.abs(b)<16&&(b=60*b),!this._isUTC&&c&&(d=Ja(this)),this._offset=b,this._isUTC=!0,null!=d&&this.add(d,"m"),e!==b&&(!c||this._changeInProgress?$a(this,Va(b-e,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?e:Ja(this)}function La(a,b){return null!=a?("string"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}function Ma(a){return this.utcOffset(0,a)}function Na(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(Ja(this),"m")),this}function Oa(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Ha(this._i)),this}function Pa(a){return a=a?Aa(a).utcOffset():0,(this.utcOffset()-a)%60===0}function Qa(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ra(){if(this._a){var a=this._isUTC?h(this._a):Aa(this._a);return this.isValid()&&q(this._a,a.toArray())>0}return!1}function Sa(){return!this._isUTC}function Ta(){return this._isUTC}function Ua(){return this._isUTC&&0===this._offset}function Va(a,b){var c,d,e,g=a,h=null;return Fa(a)?g={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(g={},b?g[b]=a:g.milliseconds=a):(h=ud.exec(a))?(c="-"===h[1]?-1:1,g={y:0,d:p(h[dd])*c,h:p(h[ed])*c,m:p(h[fd])*c,s:p(h[gd])*c,ms:p(h[hd])*c}):(h=vd.exec(a))?(c="-"===h[1]?-1:1,g={y:Wa(h[2],c),M:Wa(h[3],c),d:Wa(h[4],c),h:Wa(h[5],c),m:Wa(h[6],c),s:Wa(h[7],c),w:Wa(h[8],c)}):null==g?g={}:"object"==typeof g&&("from"in g||"to"in g)&&(e=Ya(Aa(g.from),Aa(g.to)),g={},g.ms=e.milliseconds,g.M=e.months),d=new Ea(g),Fa(a)&&f(a,"_locale")&&(d._locale=a._locale),d}function Wa(a,b){var c=a&&parseFloat(a.replace(",","."));return(isNaN(c)?0:c)*b}function Xa(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function Ya(a,b){var c;return b=Ia(b,a),a.isBefore(b)?c=Xa(a,b):(c=Xa(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c}function Za(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(_(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period)."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=Va(c,d),$a(this,e,a),this}}function $a(b,c,d,e){var f=c._milliseconds,g=c._days,h=c._months;e=null==e?!0:e,f&&b._d.setTime(+b._d+f*d),g&&D(b,"Date",C(b,"Date")+g*d),h&&V(b,C(b,"Month")+h*d),e&&a.updateOffset(b,g||h)}function _a(a){var b=a||Aa(),c=Ia(b,this).startOf("day"),d=this.diff(c,"days",!0),e=-6>d?"sameElse":-1>d?"lastWeek":0>d?"lastDay":1>d?"sameDay":2>d?"nextDay":7>d?"nextWeek":"sameElse";return this.format(this.localeData().calendar(e,this,Aa(b)))}function ab(){return new n(this)}function bb(a,b){var c;return b=z("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=o(a)?a:Aa(a),+this>+a):(c=o(a)?+a:+Aa(a),c<+this.clone().startOf(b))}function cb(a,b){var c;return b=z("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=o(a)?a:Aa(a),+a>+this):(c=o(a)?+a:+Aa(a),+this.clone().endOf(b)a?Math.ceil(a):Math.floor(a)}function gb(a,b,c){var d,e,f=Ia(a,this),g=6e4*(f.utcOffset()-this.utcOffset());return b=z(b),"year"===b||"month"===b||"quarter"===b?(e=hb(this,f),"quarter"===b?e/=3:"year"===b&&(e/=12)):(d=this-f,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-g)/864e5:"week"===b?(d-g)/6048e5:d),c?e:fb(e)}function hb(a,b){var c,d,e=12*(b.year()-a.year())+(b.month()-a.month()),f=a.clone().add(e,"months");return 0>b-f?(c=a.clone().add(e-1,"months"),d=(b-f)/(f-c)):(c=a.clone().add(e+1,"months"),d=(b-f)/(c-f)),-(e+d)}function ib(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function jb(){var a=this.clone().utc();return 0b;b++)if(this._weekdaysParse[b]||(c=Aa([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b}function Mb(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Hb(a,this.localeData()),this.add(a-b,"d")):b}function Nb(a){var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")}function Ob(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)}function Pb(a,b){G(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})}function Qb(a,b){return b._meridiemParse}function Rb(a){return"p"===(a+"").toLowerCase().charAt(0)}function Sb(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"}function Tb(a){G(0,[a,3],0,"millisecond")}function Ub(){return this._isUTC?"UTC":""}function Vb(){return this._isUTC?"Coordinated Universal Time":""}function Wb(a){return Aa(1e3*a)}function Xb(){return Aa.apply(null,arguments).parseZone()}function Yb(a,b,c){var d=this._calendar[a];return"function"==typeof d?d.call(b,c):d}function Zb(a){var b=this._longDateFormat[a];return!b&&this._longDateFormat[a.toUpperCase()]&&(b=this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a]=b),b}function $b(){return this._invalidDate}function _b(a){return this._ordinal.replace("%d",a)}function ac(a){return a}function bc(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)}function cc(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)}function dc(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function ec(a,b,c,d){var e=x(),f=h().set(d,b);return e[c](f,a)}function fc(a,b,c,d,e){if("number"==typeof a&&(b=a,a=void 0),a=a||"",null!=b)return ec(a,b,c,e);var f,g=[];for(f=0;d>f;f++)g[f]=ec(a,f,c,e);return g}function gc(a,b){return fc(a,b,"months",12,"month")}function hc(a,b){return fc(a,b,"monthsShort",12,"month")}function ic(a,b){return fc(a,b,"weekdays",7,"day")}function jc(a,b){return fc(a,b,"weekdaysShort",7,"day")}function kc(a,b){return fc(a,b,"weekdaysMin",7,"day")}function lc(){var a=this._data;return this._milliseconds=Rd(this._milliseconds),this._days=Rd(this._days),this._months=Rd(this._months),a.milliseconds=Rd(a.milliseconds),a.seconds=Rd(a.seconds),a.minutes=Rd(a.minutes),a.hours=Rd(a.hours),a.months=Rd(a.months),a.years=Rd(a.years),this}function mc(a,b,c,d){var e=Va(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}function nc(a,b){return mc(this,a,b,1)}function oc(a,b){return mc(this,a,b,-1)}function pc(){var a,b,c,d=this._milliseconds,e=this._days,f=this._months,g=this._data,h=0;return g.milliseconds=d%1e3,a=fb(d/1e3),g.seconds=a%60,b=fb(a/60),g.minutes=b%60,c=fb(b/60),g.hours=c%24,e+=fb(c/24),h=fb(qc(e)),e-=fb(rc(h)),f+=fb(e/30),e%=30,h+=fb(f/12),f%=12,g.days=e,g.months=f,g.years=h,this}function qc(a){return 400*a/146097}function rc(a){return 146097*a/400}function sc(a){var b,c,d=this._milliseconds;if(a=z(a),"month"===a||"year"===a)return b=this._days+d/864e5,c=this._months+12*qc(b),"month"===a?c:c/12;switch(b=this._days+Math.round(rc(this._months/12)),a){case"week":return b/7+d/6048e5;case"day":return b+d/864e5;case"hour":return 24*b+d/36e5;case"minute":return 1440*b+d/6e4;case"second":return 86400*b+d/1e3;case"millisecond":return Math.floor(864e5*b)+d;default:throw new Error("Unknown unit "+a)}}function tc(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*p(this._months/12)}function uc(a){return function(){return this.as(a)}}function vc(a){return a=z(a),this[a+"s"]()}function wc(a){return function(){return this._data[a]}}function xc(){return fb(this.days()/7)}function yc(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function zc(a,b,c){var d=Va(a).abs(),e=fe(d.as("s")),f=fe(d.as("m")),g=fe(d.as("h")),h=fe(d.as("d")),i=fe(d.as("M")),j=fe(d.as("y")),k=e0,k[4]=c,yc.apply(null,k)}function Ac(a,b){return void 0===ge[a]?!1:void 0===b?ge[a]:(ge[a]=b,!0)}function Bc(a){var b=this.localeData(),c=zc(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function Cc(){var a=he(this.years()),b=he(this.months()),c=he(this.days()),d=he(this.hours()),e=he(this.minutes()),f=he(this.seconds()+this.milliseconds()/1e3),g=this.asSeconds();return g?(0>g?"-":"")+"P"+(a?a+"Y":"")+(b?b+"M":"")+(c?c+"D":"")+(d||e||f?"T":"")+(d?d+"H":"")+(e?e+"M":"")+(f?f+"S":""):"P0D"}var Dc,Ec,Fc=a.momentProperties=[],Gc=!1,Hc={},Ic={},Jc=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|x|X|zz?|ZZ?|.)/g,Kc=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Lc={},Mc={},Nc=/\d/,Oc=/\d\d/,Pc=/\d{3}/,Qc=/\d{4}/,Rc=/[+-]?\d{6}/,Sc=/\d\d?/,Tc=/\d{1,3}/,Uc=/\d{1,4}/,Vc=/[+-]?\d{1,6}/,Wc=/\d+/,Xc=/[+-]?\d+/,Yc=/Z|[+-]\d\d:?\d\d/gi,Zc=/[+-]?\d+(\.\d{1,3})?/,$c=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,_c={},ad={},bd=0,cd=1,dd=2,ed=3,fd=4,gd=5,hd=6;G("M",["MM",2],"Mo",function(){return this.month()+1}),G("MMM",0,0,function(a){return this.localeData().monthsShort(this,a)}),G("MMMM",0,0,function(a){return this.localeData().months(this,a)}),y("month","M"),L("M",Sc),L("MM",Sc,Oc),L("MMM",$c),L("MMMM",$c),O(["M","MM"],function(a,b){b[cd]=p(a)-1}),O(["MMM","MMMM"],function(a,b,c,d){var e=c._locale.monthsParse(a,d,c._strict);null!=e?b[cd]=e:j(c).invalidMonth=a});var id="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),jd="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),kd={};a.suppressDeprecationWarnings=!1;var ld=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,md=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],nd=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],od=/^\/?Date\((\-?\d+)/i;a.createFromInputFallback=$("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(a){a._d=new Date(a._i+(a._useUTC?" UTC":""))}),G(0,["YY",2],0,function(){return this.year()%100}),G(0,["YYYY",4],0,"year"),G(0,["YYYYY",5],0,"year"),G(0,["YYYYYY",6,!0],0,"year"),y("year","y"),L("Y",Xc),L("YY",Sc,Oc),L("YYYY",Uc,Qc),L("YYYYY",Vc,Rc),L("YYYYYY",Vc,Rc),O(["YYYY","YYYYY","YYYYYY"],bd),O("YY",function(b,c){c[bd]=a.parseTwoDigitYear(b)}),a.parseTwoDigitYear=function(a){return p(a)+(p(a)>68?1900:2e3)};var pd=B("FullYear",!1);G("w",["ww",2],"wo","week"),G("W",["WW",2],"Wo","isoWeek"),y("week","w"),y("isoWeek","W"),L("w",Sc),L("ww",Sc,Oc),L("W",Sc),L("WW",Sc,Oc),P(["w","ww","W","WW"],function(a,b,c,d){b[d.substr(0,1)]=p(a)});var qd={dow:0,doy:6};G("DDD",["DDDD",3],"DDDo","dayOfYear"),y("dayOfYear","DDD"),L("DDD",Tc),L("DDDD",Pc),O(["DDD","DDDD"],function(a,b,c){c._dayOfYear=p(a)}),a.ISO_8601=function(){};var rd=$("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var a=Aa.apply(null,arguments);return this>a?this:a}),sd=$("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var a=Aa.apply(null,arguments);return a>this?this:a});Ga("Z",":"),Ga("ZZ",""),L("Z",Yc),L("ZZ",Yc),O(["Z","ZZ"],function(a,b,c){c._useUTC=!0,c._tzm=Ha(a)});var td=/([\+\-]|\d\d)/gi;a.updateOffset=function(){};var ud=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,vd=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;Va.fn=Ea.prototype;var wd=Za(1,"add"),xd=Za(-1,"subtract");a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var yd=$("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(a){return void 0===a?this.localeData():this.locale(a)});G(0,["gg",2],0,function(){return this.weekYear()%100}),G(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ab("gggg","weekYear"),Ab("ggggg","weekYear"),Ab("GGGG","isoWeekYear"),Ab("GGGGG","isoWeekYear"),y("weekYear","gg"),y("isoWeekYear","GG"),L("G",Xc),L("g",Xc),L("GG",Sc,Oc),L("gg",Sc,Oc),L("GGGG",Uc,Qc),L("gggg",Uc,Qc),L("GGGGG",Vc,Rc),L("ggggg",Vc,Rc),P(["gggg","ggggg","GGGG","GGGGG"],function(a,b,c,d){b[d.substr(0,2)]=p(a)}),P(["gg","GG"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}),G("Q",0,0,"quarter"),y("quarter","Q"),L("Q",Nc),O("Q",function(a,b){b[cd]=3*(p(a)-1)}),G("D",["DD",2],"Do","date"),y("date","D"),L("D",Sc),L("DD",Sc,Oc),L("Do",function(a,b){return a?b._ordinalParse:b._ordinalParseLenient}),O(["D","DD"],dd),O("Do",function(a,b){b[dd]=p(a.match(Sc)[0],10)});var zd=B("Date",!0);G("d",0,"do","day"),G("dd",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),G("ddd",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),G("dddd",0,0,function(a){return this.localeData().weekdays(this,a)}),G("e",0,0,"weekday"),G("E",0,0,"isoWeekday"),y("day","d"),y("weekday","e"),y("isoWeekday","E"),L("d",Sc),L("e",Sc),L("E",Sc),L("dd",$c),L("ddd",$c),L("dddd",$c),P(["dd","ddd","dddd"],function(a,b,c){var d=c._locale.weekdaysParse(a);null!=d?b.d=d:j(c).invalidWeekday=a}),P(["d","e","E"],function(a,b,c,d){b[d]=p(a)});var Ad="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Bd="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Cd="Su_Mo_Tu_We_Th_Fr_Sa".split("_");G("H",["HH",2],0,"hour"),G("h",["hh",2],0,function(){return this.hours()%12||12}),Pb("a",!0),Pb("A",!1),y("hour","h"),L("a",Qb),L("A",Qb),L("H",Sc),L("h",Sc),L("HH",Sc,Oc),L("hh",Sc,Oc),O(["H","HH"],ed),O(["a","A"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),O(["h","hh"],function(a,b,c){b[ed]=p(a),j(c).bigHour=!0});var Dd=/[ap]\.?m?\.?/i,Ed=B("Hours",!0);G("m",["mm",2],0,"minute"),y("minute","m"),L("m",Sc),L("mm",Sc,Oc),O(["m","mm"],fd);var Fd=B("Minutes",!1);G("s",["ss",2],0,"second"),y("second","s"),L("s",Sc),L("ss",Sc,Oc),O(["s","ss"],gd);var Gd=B("Seconds",!1);G("S",0,0,function(){return~~(this.millisecond()/100)}),G(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),Tb("SSS"),Tb("SSSS"),y("millisecond","ms"),L("S",Tc,Nc),L("SS",Tc,Oc),L("SSS",Tc,Pc),L("SSSS",Wc),O(["S","SS","SSS","SSSS"],function(a,b){b[hd]=p(1e3*("0."+a))});var Hd=B("Milliseconds",!1);G("z",0,0,"zoneAbbr"),G("zz",0,0,"zoneName");var Id=n.prototype;Id.add=wd,Id.calendar=_a,Id.clone=ab,Id.diff=gb,Id.endOf=sb,Id.format=kb,Id.from=lb,Id.fromNow=mb,Id.to=nb,Id.toNow=ob,Id.get=E,Id.invalidAt=zb,Id.isAfter=bb,Id.isBefore=cb,Id.isBetween=db,Id.isSame=eb,Id.isValid=xb,Id.lang=yd,Id.locale=pb,Id.localeData=qb,Id.max=sd,Id.min=rd,Id.parsingFlags=yb,Id.set=E,Id.startOf=rb,Id.subtract=xd,Id.toArray=wb,Id.toDate=vb,Id.toISOString=jb,Id.toJSON=jb,Id.toString=ib,Id.unix=ub,Id.valueOf=tb,Id.year=pd,Id.isLeapYear=ga,Id.weekYear=Cb,Id.isoWeekYear=Db,Id.quarter=Id.quarters=Gb,Id.month=W,Id.daysInMonth=X,Id.week=Id.weeks=la,Id.isoWeek=Id.isoWeeks=ma,Id.weeksInYear=Fb,Id.isoWeeksInYear=Eb,Id.date=zd,Id.day=Id.days=Mb,Id.weekday=Nb,Id.isoWeekday=Ob,Id.dayOfYear=oa,Id.hour=Id.hours=Ed,Id.minute=Id.minutes=Fd,Id.second=Id.seconds=Gd,Id.millisecond=Id.milliseconds=Hd,Id.utcOffset=Ka,Id.utc=Ma,Id.local=Na,Id.parseZone=Oa,Id.hasAlignedHourOffset=Pa,Id.isDST=Qa,Id.isDSTShifted=Ra,Id.isLocal=Sa,Id.isUtcOffset=Ta,Id.isUtc=Ua,Id.isUTC=Ua,Id.zoneAbbr=Ub,Id.zoneName=Vb,Id.dates=$("dates accessor is deprecated. Use date instead.",zd),Id.months=$("months accessor is deprecated. Use month instead",W),Id.years=$("years accessor is deprecated. Use year instead",pd),Id.zone=$("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",La);var Jd=Id,Kd={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Ld={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},Md="Invalid date",Nd="%d",Od=/\d{1,2}/,Pd={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour", +hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Qd=r.prototype;Qd._calendar=Kd,Qd.calendar=Yb,Qd._longDateFormat=Ld,Qd.longDateFormat=Zb,Qd._invalidDate=Md,Qd.invalidDate=$b,Qd._ordinal=Nd,Qd.ordinal=_b,Qd._ordinalParse=Od,Qd.preparse=ac,Qd.postformat=ac,Qd._relativeTime=Pd,Qd.relativeTime=bc,Qd.pastFuture=cc,Qd.set=dc,Qd.months=S,Qd._months=id,Qd.monthsShort=T,Qd._monthsShort=jd,Qd.monthsParse=U,Qd.week=ia,Qd._week=qd,Qd.firstDayOfYear=ka,Qd.firstDayOfWeek=ja,Qd.weekdays=Ib,Qd._weekdays=Ad,Qd.weekdaysMin=Kb,Qd._weekdaysMin=Cd,Qd.weekdaysShort=Jb,Qd._weekdaysShort=Bd,Qd.weekdaysParse=Lb,Qd.isPM=Rb,Qd._meridiemParse=Dd,Qd.meridiem=Sb,v("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===p(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),a.lang=$("moment.lang is deprecated. Use moment.locale instead.",v),a.langData=$("moment.langData is deprecated. Use moment.localeData instead.",x);var Rd=Math.abs,Sd=uc("ms"),Td=uc("s"),Ud=uc("m"),Vd=uc("h"),Wd=uc("d"),Xd=uc("w"),Yd=uc("M"),Zd=uc("y"),$d=wc("milliseconds"),_d=wc("seconds"),ae=wc("minutes"),be=wc("hours"),ce=wc("days"),de=wc("months"),ee=wc("years"),fe=Math.round,ge={s:45,m:45,h:22,d:26,M:11},he=Math.abs,ie=Ea.prototype;ie.abs=lc,ie.add=nc,ie.subtract=oc,ie.as=sc,ie.asMilliseconds=Sd,ie.asSeconds=Td,ie.asMinutes=Ud,ie.asHours=Vd,ie.asDays=Wd,ie.asWeeks=Xd,ie.asMonths=Yd,ie.asYears=Zd,ie.valueOf=tc,ie._bubble=pc,ie.get=vc,ie.milliseconds=$d,ie.seconds=_d,ie.minutes=ae,ie.hours=be,ie.days=ce,ie.weeks=xc,ie.months=de,ie.years=ee,ie.humanize=Bc,ie.toISOString=Cc,ie.toString=Cc,ie.toJSON=Cc,ie.locale=pb,ie.localeData=qb,ie.toIsoString=$("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Cc),ie.lang=yd,G("X",0,0,"unix"),G("x",0,0,"valueOf"),L("x",Xc),L("X",Zc),O("X",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),O("x",function(a,b,c){c._d=new Date(p(a))}),a.version="2.10.3",b(Aa),a.fn=Jd,a.min=Ca,a.max=Da,a.utc=h,a.unix=Wb,a.months=gc,a.isDate=d,a.locale=v,a.invalid=l,a.duration=Va,a.isMoment=o,a.weekdays=ic,a.parseZone=Xb,a.localeData=x,a.isDuration=Fa,a.monthsShort=hc,a.weekdaysMin=kc,a.defineLocale=w,a.weekdaysShort=jc,a.normalizeUnits=z,a.relativeTimeThreshold=Ac;var je=a;return je}); \ No newline at end of file diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.hbs b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.hbs index c64e01b4f..0f613ddc8 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.hbs +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.hbs @@ -1,31 +1,520 @@ -{{! - Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - - WSO2 Inc. licenses this file to you under the Apache License, - Version 2.0 (the "License"); you may not use this file except - in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -}} -{{#zone "device-opetations"}} -
- Operations -
-
- {{unit "mdm.unit.device.operation-bar"}} -
-{{/zone}} +{{unit "cdmf.unit.device.type.android.leaflet"}} +{{unit "cdmf.unit.lib.qrcode"}} +{{unit "cdmf.unit.device.type.android.qr-modal"}} +{{unit "cdmf.unit.device.type.android.operation-bar"}} + +{{#if deviceFound}} + {{#if isAuthorized}} + + {{#zone "device-details-header"}} +

+ Device {{deviceView.name}} + {{#if deviceView.model}} + + ( {{deviceView.vendor}} {{deviceView.model}} ) + + {{/if}} +

+ {{/zone}} + + {{#zone "overview-section"}} +
+
Device + Overview +
+ + + {{#if deviceView.deviceIdentifier}} + + + + + {{/if}} + {{#if deviceView.name}} + + + + + {{/if}} + {{#if deviceView.vendor}} + {{#if deviceView.model}} + + + + + {{/if}} + {{/if}} + {{#if deviceView.status}} + + + + + {{/if}} + {{#if deviceView.owner}} + + + + + {{/if}} + {{#if deviceView.ownership}} + + + + + {{/if}} + {{#if deviceView.imei}} + + + + + {{/if}} + {{#if deviceView.udid}} + + + + + {{/if}} + {{#if deviceView.osBuildDate}} + + + + + {{/if}} + {{#if deviceView.phoneNumber}} + + + + + {{/if}} + {{#if deviceView.lastUpdatedTime}} + + + + + {{/if}} + +
Device ID{{deviceView.deviceIdentifier}}
Name{{deviceView.name}}
Model{{deviceView.vendor}} {{deviceView.model}}
Status + {{#equal deviceView.status "ACTIVE"}}Active{{/equal}} + {{#equal deviceView.status "INACTIVE"}}Inactive{{/equal}} + {{#equal deviceView.status "BLOCKED"}}Blocked{{/equal}} + {{#equal deviceView.status "REMOVED"}}Removed{{/equal}} +
Owner{{deviceView.owner}}
Ownership{{deviceView.ownership}}
IMEI{{deviceView.imei}}
UDID{{deviceView.udid}}
Firmware Build + Date + {{deviceView.osBuildDate}}
Phone Number{{deviceView.phoneNumber}}
Last Update{{deviceView.lastUpdatedTime}}
+
+ {{/zone}} + + {{#zone "device-opetations"}} + {{#if deviceView.isNotRemoved}} +
+ Operations +
+
+ {{unit "cdmf.unit.device.operation-bar" device=deviceView backendApiUri=backendApiUri autoCompleteParams=autoCompleteParams}} +
+ {{/if}} + {{/zone}} + + + + {{#zone "device-detail-properties"}} +
+ +
+
+ + + {{#if deviceView.isNotWindows}} +
+ + +
+
+
+ + {{#equal deviceView.type "windows"}} +
+

Not + available yet

+
+ {{/equal}} + {{#if deviceView.deviceInfoAvailable}} + {{#if deviceView.BatteryLevel}} +
+
+
+
BATTERY
+
+
+
+ {{deviceView.BatteryLevel.value}} % +
+
+
+
+
+ {{/if}} + + + + + + + + + + + + + + + + {{#if deviceView.ramUsage}} +
+
+
+
RAM Usage
+
+
+
+ {{deviceView.ramUsage.value}} % +
+
+
+
+
+ {{/if}} + {{#if deviceView.internalMemory}} +
+
+
+
Local Storage
+
+
+
+
+ {{deviceView.internalMemory.usage}} % + + TOTAL OF {{deviceView.internalMemory.total}} GB + +
+
+
+
+
+ {{/if}} + {{#if deviceView.externalMemory}} +
+
+
+
External Storage
+
+
+
+ {{deviceView.externalMemory.usage}} % + + TOTAL OF {{deviceView.externalMemory.total}} GB + +
+
+
+
+
+ {{/if}} + {{else}} +
+

+ + Battery, RAM and Storage related information are not + available yet. +

+
+ {{/if}} +
+
+
+
+ {{/if}} + +
+ + +
+
+ + + + + + +
+
+
+
+
+
+ + +
+
+ {{#if deviceView.location}} +
+
+ {{else}} +
+

+ + Device location information is not available. +

+
+

+

+

+ {{/if}} +
+
+
+
+ + +
+
+ + + + + + +
+
+

+ + No applications found. +

+

Please try refreshing in a while.

+
+
+
+
+
+
+ + +
+
+ + + + + + +
+
+

+ + There are no operations, performed yet on this device. +

+
+
+ + + + + + + + + + +
Operation CodeStatusRequest created at
+
+
+
+
+
+
+ {{/zone}} + + {{else}} +

+ Permission Denied +

+
+ You are not authorized to view specified device in the system. + {{/if}} +{{else}} +

+ Device not found +

+
+ You have tried to access either a removed or non-existing device. +{{/if}} {{#zone "bottomJs"}} - {{js "js/device-detail.js"}} - - {{js "js/load-map.js"}} + {{#if isAuthorized}} + + + + + + + {{js "js/device-detail.js"}} + + {{js "js/load-map.js"}} + {{/if}} {{/zone}} \ No newline at end of file diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.js b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.js new file mode 100644 index 000000000..e12577afd --- /dev/null +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.js @@ -0,0 +1,211 @@ +/* + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * WSO2 Inc. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +function onRequest(context) { + // var log = new Log("device-view.js"); + var deviceType = context["uriParams"]["deviceType"]; + var deviceId = request.getParameter("id"); + var deviceViewData = {}; + + if (deviceType && deviceId) { + var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"]; + var response = deviceModule.viewDevice(deviceType, deviceId); + if (response["status"] == "success") { + deviceViewData["deviceFound"] = true; + deviceViewData["isAuthorized"] = true; + + var filteredDeviceData = response["content"]; + + // creating deviceView information model from filtered device data + var viewModel = {}; + if (filteredDeviceData["type"]) { + viewModel["type"] = filteredDeviceData["type"]; + viewModel.isNotWindows = true; + if (viewModel["deviceType"] == "windows") { + viewModel.isNotWindows = false; + } + } + if (filteredDeviceData["deviceIdentifier"]) { + viewModel["deviceIdentifier"] = filteredDeviceData["deviceIdentifier"]; + } + if (filteredDeviceData["name"]) { + viewModel["name"] = filteredDeviceData["name"]; + } + if (filteredDeviceData["enrolmentInfo"]) { + if (filteredDeviceData["enrolmentInfo"]["status"]) { + viewModel["status"] = filteredDeviceData["enrolmentInfo"]["status"]; + viewModel.isActive = false ; + viewModel.isNotRemoved = true; + if (filteredDeviceData["enrolmentInfo"]["status"]== "ACTIVE") { + viewModel.isActive = true ; + } + if (filteredDeviceData["enrolmentInfo"]["status"]== "REMOVED") { + viewModel.isNotRemoved = false ; + } + } + if (filteredDeviceData["enrolmentInfo"]["owner"]) { + viewModel["owner"] = filteredDeviceData["enrolmentInfo"]["owner"]; + } + if (filteredDeviceData["enrolmentInfo"]["ownership"]) { + viewModel["ownership"] = filteredDeviceData["enrolmentInfo"]["ownership"]; + } + } + if (filteredDeviceData["initialDeviceInfo"]) { + viewModel["deviceInfoAvailable"] = true; + if (filteredDeviceData["initialDeviceInfo"]["IMEI"]) { + viewModel["imei"] = filteredDeviceData["initialDeviceInfo"]["IMEI"]; + } + if (!filteredDeviceData["latestDeviceInfo"]) { + if (filteredDeviceData["initialDeviceInfo"]["OS_BUILD_DATE"]) { + if (filteredDeviceData["initialDeviceInfo"]["OS_BUILD_DATE"] != "0") { + viewModel["osBuildDate"] = new Date(filteredDeviceData["initialDeviceInfo"]["OS_BUILD_DATE"] * 1000); + } + } + if (filteredDeviceData["initialDeviceInfo"]["LATITUDE"] && filteredDeviceData["initialDeviceInfo"]["LONGITUDE"]) { + viewModel["location"] = {}; + viewModel["location"]["latitude"] = filteredDeviceData["initialDeviceInfo"]["LATITUDE"]; + viewModel["location"]["longitude"] = filteredDeviceData["initialDeviceInfo"]["LONGITUDE"]; + } + if (filteredDeviceData["initialDeviceInfo"]["VENDOR"] && filteredDeviceData["initialDeviceInfo"]["DEVICE_MODEL"]) { + viewModel["vendor"] = filteredDeviceData["initialDeviceInfo"]["VENDOR"]; + viewModel["model"] = filteredDeviceData["initialDeviceInfo"]["DEVICE_MODEL"]; + } + if (filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]) { + if (deviceType == "android") { + viewModel["BatteryLevel"] = {}; + viewModel["BatteryLevel"]["value"] = filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["BATTERY_LEVEL"]; + + viewModel["internalMemory"] = {}; + viewModel["internalMemory"]["total"] = Math. + round(filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["INTERNAL_TOTAL_MEMORY"] * 100) / 100; + if (filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["INTERNAL_TOTAL_MEMORY"] != 0) { + viewModel["internalMemory"]["usage"] = Math. + round((filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["INTERNAL_TOTAL_MEMORY"] - + filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["INTERNAL_AVAILABLE_MEMORY"]) + / filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["INTERNAL_TOTAL_MEMORY"] * 10000) / 100; + } else { + viewModel["internalMemory"]["usage"] = 0; + } + + viewModel["externalMemory"] = {}; + viewModel["externalMemory"]["total"] = Math. + round(filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["EXTERNAL_TOTAL_MEMORY"] * 100) / 100; + if (filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["EXTERNAL_TOTAL_MEMORY"] != 0) { + viewModel["externalMemory"]["usage"] = Math. + round((filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["EXTERNAL_TOTAL_MEMORY"] - + filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["EXTERNAL_AVAILABLE_MEMORY"]) + / filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["EXTERNAL_TOTAL_MEMORY"] * 10000) / 100; + } else { + viewModel["externalMemory"]["usage"] = 0; + } + } else if (deviceType == "ios") { + viewModel["BatteryLevel"] = {}; + viewModel["BatteryLevel"]["value"] = Math. round(filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["BatteryLevel"] * 10000) / 100; + + viewModel["internalMemory"] = {}; + viewModel["internalMemory"]["total"] = Math. + round(filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["DeviceCapacity"] * 100) / 100; + if (filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["DeviceCapacity"] != 0) { + viewModel["internalMemory"]["usage"] = Math. + round((filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["DeviceCapacity"] - + filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["AvailableDeviceCapacity"]) + / filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["DeviceCapacity"] * 10000) / 100; + } else { + viewModel["internalMemory"]["usage"] = 0; + } + } + } + } + } + if (filteredDeviceData["latestDeviceInfo"]) { + viewModel["deviceInfoAvailable"] = true; + if (filteredDeviceData["latestDeviceInfo"]["osBuildDate"]) { + if (filteredDeviceData["latestDeviceInfo"]["osBuildDate"] != "0") { + viewModel["osBuildDate"] = new Date(filteredDeviceData["latestDeviceInfo"]["osBuildDate"] * 1000); + } + } + if (filteredDeviceData["latestDeviceInfo"]["location"]["latitude"] && + filteredDeviceData["latestDeviceInfo"]["location"]["longitude"]) { + viewModel["location"] = {}; + viewModel["location"]["latitude"] = filteredDeviceData["latestDeviceInfo"]["location"]["latitude"]; + viewModel["location"]["longitude"] = filteredDeviceData["latestDeviceInfo"]["location"]["longitude"]; + } + if (filteredDeviceData["latestDeviceInfo"]["vendor"] && filteredDeviceData["latestDeviceInfo"]["deviceModel"]) { + viewModel["vendor"] = filteredDeviceData["latestDeviceInfo"]["vendor"]; + viewModel["model"] = filteredDeviceData["latestDeviceInfo"]["deviceModel"]; + } + if (filteredDeviceData["latestDeviceInfo"]["updatedTime"]) { + viewModel["lastUpdatedTime"] = filteredDeviceData["latestDeviceInfo"]["updatedTime"]. + substr(0, filteredDeviceData["latestDeviceInfo"]["updatedTime"].indexOf("+")); + } + viewModel["BatteryLevel"] = {}; + viewModel["BatteryLevel"]["value"] = filteredDeviceData["latestDeviceInfo"]["batteryLevel"]; + + viewModel["cpuUsage"] = {}; + viewModel["cpuUsage"]["value"] = filteredDeviceData["latestDeviceInfo"]["cpuUsage"]; + + viewModel["ramUsage"] = {}; + if (filteredDeviceData["latestDeviceInfo"]["totalRAMMemory"] != 0) { + viewModel["ramUsage"]["value"] = Math. + round((filteredDeviceData["latestDeviceInfo"]["totalRAMMemory"] - + filteredDeviceData["latestDeviceInfo"]["availableRAMMemory"]) + / filteredDeviceData["latestDeviceInfo"]["totalRAMMemory"] * 10000) / 100; + } else { + viewModel["ramUsage"]["value"] = 0; + } + + viewModel["internalMemory"] = {}; + viewModel["internalMemory"]["total"] = Math. + round(filteredDeviceData["latestDeviceInfo"]["internalTotalMemory"] * 100) / 100; + if (filteredDeviceData["latestDeviceInfo"]["internalTotalMemory"] != 0) { + viewModel["internalMemory"]["usage"] = Math. + round((filteredDeviceData["latestDeviceInfo"]["internalTotalMemory"] - + filteredDeviceData["latestDeviceInfo"]["internalAvailableMemory"]) + / filteredDeviceData["latestDeviceInfo"]["internalTotalMemory"] * 10000) / 100; + } else { + viewModel["internalMemory"]["usage"] = 0; + } + + viewModel["externalMemory"] = {}; + viewModel["externalMemory"]["total"] = Math. + round(filteredDeviceData["latestDeviceInfo"]["externalTotalMemory"] * 100) / 100; + if (filteredDeviceData["latestDeviceInfo"]["externalTotalMemory"] != 0) { + viewModel["externalMemory"]["usage"] = Math. + round((filteredDeviceData["latestDeviceInfo"]["externalTotalMemory"] - + filteredDeviceData["latestDeviceInfo"]["externalAvailableMemory"]) + / filteredDeviceData["latestDeviceInfo"]["externalTotalMemory"] * 10000) / 100; + } else { + viewModel["externalMemory"]["usage"] = 0; + } + } + if (!filteredDeviceData["initialDeviceInfo"] && !filteredDeviceData["latestDeviceInfo"]) { + viewModel["deviceInfoAvailable"] = false; + } + + deviceViewData["deviceView"] = viewModel; + } else if (response["status"] == "unauthorized") { + deviceViewData["deviceFound"] = true; + deviceViewData["isAuthorized"] = false; + } else if (response["status"] == "notFound") { + deviceViewData["deviceFound"] = false; + } + } else { + deviceViewData["deviceFound"] = false; + } + return deviceViewData; +} \ No newline at end of file diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.json b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.json index 9eecd8f5b..688e93980 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.json +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.json @@ -1,3 +1,3 @@ { - "version": "1.0.0" + "version": "1.0.0" } \ No newline at end of file diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/img/device_icons/TemperatureController.png b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/img/device_icons/TemperatureController.png new file mode 100755 index 0000000000000000000000000000000000000000..e16b48d8eefcac064473f94464964b77fa41e23b GIT binary patch literal 234616 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

Device data may not have been updated. Please refresh to try again.

"; + $(".panel-body").append(defaultInnerHTML); + } + ); + } + + + $(".media.tab-responsive [data-toggle=tab]").on("shown.bs.tab", function (e) { + var activeTabPane = $(e.target).attr("href"); + var activeListGroupItem = $(".media .list-group-item.active"); + + $(activeTabPane).removeClass("visible-xs-block"); + $(activeTabPane).siblings().not(".arrow-left").addClass("visible-xs-block"); + positionArrow(activeListGroupItem); + }); + + $(".media.tab-responsive .tab-content").on("shown.bs.collapse", function (e) { + var thisParent = $(e.target).parent(); + var activeTabPaneCaret = thisParent.find('.caret-updown'); + var activeTabPaneCaretSiblings = thisParent.siblings().find('.caret-updown'); + + activeTabPaneCaret.removeClass("fw-up").addClass("fw-down"); + activeTabPaneCaretSiblings.removeClass("fw-down").addClass("fw-up"); + }); + + + $('.media.tab-responsive a[data-toggle="collapse"]').on('click',function(){ + var clickedPanel = $(this).attr('href'); + + if($(clickedPanel).hasClass('in')){ + $(clickedPanel).collapse('hide'); + }else{ + $(clickedPanel).collapse('show'); + } + }); + + + function positionArrow(selectedTab) { + var selectedTabHeight = $(selectedTab).innerHeight(); + var arrowPosition = 0; + var totalHeight = 0; + var arrow = $(".media .panel-group.tab-content .arrow-left"); + var parentHeight = $(arrow).parent().innerHeight(); + + + if($(selectedTab).prev().length){ + $(selectedTab).prevAll().each(function() { + totalHeight += $(this).innerHeight(); }); + arrowPosition = totalHeight + (selectedTabHeight / 2); + }else{ + arrowPosition = selectedTabHeight / 2; + } + + if(arrowPosition >= parentHeight){ + parentHeight = arrowPosition + 50; + $(arrow).siblings(".panel.active").height(parentHeight); + }else{ + $(arrow).parent().removeAttr("style"); + } + + $(arrow).css("top", arrowPosition - 10); } - $(document).ready(function () { - $(".panel-body").removeClass("hidden"); - $("#loading-content").remove(); - loadOperationsLog(); + $(document).ready(function() { + $(".device-detail-body").removeClass("hidden"); + $("#loading-content").remove(); + console.log("##### something went wrong here!" + deviceType) + loadOperationBar(deviceType); + loadOperationsLog(false); loadApplicationsList(); loadPolicyCompliance(); $("#refresh-policy").click(function () { - $('#policy-spinner').removeClass('hidden'); + $("#policy-spinner").removeClass("hidden"); loadPolicyCompliance(); }); $("#refresh-apps").click(function () { - $('#apps-spinner').removeClass('hidden'); + $("#apps-spinner").removeClass("hidden"); loadApplicationsList(); }); $("#refresh-operations").click(function () { - $('#operations-spinner').removeClass('hidden'); + $("#operations-spinner").removeClass("hidden"); loadOperationsLog(true); }); - loadOperationBar(deviceType); }); function loadOperationsLog(update) { @@ -68,105 +140,79 @@ operationTable.ajax.reload(false); return; } - operationTable = $(operationsLogTable) - .datatables_extended({ - serverSide: true, - processing: false, - searching: false, - ordering: false, - pageLength: 10, - order: [], - ajax: { - url: context + "/api/operation/paginate", - data: { - deviceId: deviceIdentifier, - deviceType: deviceType - }, - dataSrc: function (json) { - $("#operations-spinner").addClass( - "hidden"); - $("#operations-log-container").empty(); - return json.data; - } - }, - columnDefs: [ - {targets: 0, data: "code"}, - { - targets: 1, - data: "status", - render: function (status) { - var html; - switch (status) { - case "COMPLETED" : - html = - " Completed"; - break; - case "PENDING" : - html = - " Pending"; - break; - case "ERROR" : - html = - " Error"; - break; - case "IN_PROGRESS" : - html = - " In Progress"; - break; - case "REPEATED" : - html = - " Repeated"; - break; - } - return html; - } - }, - { - targets: 2, - data: "createdTimeStamp", - render: function (date) { - var value = String(date); - return value.slice(0, 16); - } - } - ], - "createdRow": function (row, data) { - $(row).attr("data-type", "selectable"); - $(row).attr("data-id", data["id"]); - $.each($("td", row), - function (colIndex) { - switch (colIndex) { - case 1: - $(this).attr( - "data-grid-label", - "Code"); - $(this).attr( - "data-display", - data["code"]); - break; - case 2: - $(this).attr( - "data-grid-label", - "Status"); - $(this).attr( - "data-display", - data["status"]); - break; - case 3: - $(this).attr( - "data-grid-label", - "Created Timestamp"); - $(this).attr( - "data-display", - data["createdTimeStamp"]); - break; - } - } - ); - } - }); + operationTable = $(operationsLogTable).datatables_extended({ + serverSide: true, + processing: false, + searching: false, + ordering: false, + pageLength : 10, + order: [], + ajax: { + url: "/emm/api/operation/paginate", + data: {deviceId : deviceIdentifier, deviceType: deviceType}, + dataSrc: function (json) { + $("#operations-spinner").addClass("hidden"); + $("#operations-log-container").empty(); + return json.data; + } + }, + columnDefs: [ + {targets: 0, data: "code" }, + {targets: 1, data: "status", render: + function (status) { + var html; + switch (status) { + case "COMPLETED" : + html = " Completed"; + break; + case "PENDING" : + html = " Pending"; + break; + case "ERROR" : + html = " Error"; + break; + case "IN_PROGRESS" : + html = " In Progress"; + break; + case "REPEATED" : + html = " Repeated"; + break; + } + return html; + } + }, + {targets: 2, data: "createdTimeStamp", render: + function (date) { + var value = String(date); + return value.slice(0, 16); + } + } + ], + "createdRow": function(row, data) { + $(row).attr("data-type", "selectable"); + $(row).attr("data-id", data["id"]); + $.each($("td", row), + function(colIndex) { + switch(colIndex) { + case 1: + $(this).attr("data-grid-label", "Code"); + $(this).attr("data-display", data["code"]); + break; + case 2: + $(this).attr("data-grid-label", "Status"); + $(this).attr("data-display", data["status"]); + break; + case 3: + $(this).attr("data-grid-label", "Created Timestamp"); + $(this).attr("data-display", data["createdTimeStamp"]); + break; + } + } + ); + } + }); } - + function loadApplicationsList() { var applicationsList = $("#applications-list"); var applicationListingTemplate = applicationsList.attr("src"); @@ -195,17 +241,17 @@ $("#applications-list-container").html(content); } else { $("#applications-list-container"). - html("

"); + html("

No applications found.

" + + "

Please try refreshing the list in a while.

"); } } }, // error-callback function () { $("#applications-list-container"). - html("

 Loading application list " + - "was not successful. please try refreshing the list in a while.

"); - }); + html("

 Loading application list " + + "was not successful. please try refreshing the list in a while.

"); + }); }); } @@ -257,16 +303,16 @@ } } else { $("#policy-list-container"). - html("

This device " + - "has no policy applied.

"); + html("

This device " + + "has no policy applied.

"); } } }, // error-callback function () { $("#policy-list-container"). - html("

Loading policy compliance related data " + - "was not successful. please try refreshing data in a while.

"); + html("

Loading policy compliance related data " + + "was not successful. please try refreshing data in a while.

"); } ); } @@ -275,11 +321,12 @@ // error-callback function () { $("#policy-list-container"). - html("

Loading policy compliance related data " + - "was not successful. please try refreshing data in a while.

"); + html("

Loading policy compliance related data " + + "was not successful. please try refreshing data in a while.

"); } ); } ); } + }()); diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/js/load-map.js b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/js/load-map.js old mode 100644 new mode 100755 index a2a322f8c..895f75b94 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/js/load-map.js +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/js/load-map.js @@ -1,56 +1,54 @@ /* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * * WSO2 Inc. licenses this file to you under the Apache License, * Version 2.0 (the "License"); you may not use this file except * in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ -$(document).ready(function () { - if (document.getElementById('device-location')) { - loadMap(); +var map; + +function loadLeafletMap() { + var deviceLocationID = "#device-location", + lat = $(deviceLocationID).data("lat"), + long = $(deviceLocationID).data("long"), + container = "device-location", + zoomLevel = 13, + tileSet = "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", + attribution = "©
OpenStreetMap contributors"; + + if (lat && long) { + map = L.map(container).setView([lat, long], zoomLevel); + L.tileLayer(tileSet, {attribution: attribution}).addTo(map); + L.marker([lat, long]).addTo(map).bindPopup("Device is here...").openPopup(); + + $("#map-error").hide(); + $("#device-location").show(); + } else { + $("#device-location").hide(); + $("#map-error").show(); } -}); - -function loadMap() { - var map; - - function initialize() { - var mapOptions = { - zoom: 18 - }; - var lat = $("#device-location").data("lat"); - var long = $("#device-location").data("long"); - - if (lat != null && lat != undefined && lat != "" && long != null && long != undefined && long != "") { - $("#map-error").hide(); - $("#device-location").show(); - map = new google.maps.Map(document.getElementById('device-location'), - mapOptions); - - var pos = new google.maps.LatLng(lat, long); - var marker = new google.maps.Marker({ - position: pos, - map: map - }); +} - map.setCenter(pos); - } else { - $("#device-location").hide(); - $("#map-error").show(); +$(document).ready(function () { + $("a[data-toggle='tab']").on("shown.bs.tab", function() { + var url = $(this).prop("href"); + var hash = url.substring(url.indexOf("#") + 1); + + if (hash == "device_location") { + if (!map) { + loadLeafletMap(); + } } - - } - - google.maps.event.addDomListener(window, 'load', initialize); -} \ No newline at end of file + }); +}); \ No newline at end of file diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/templates/applications-list.hbs b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/templates/applications-list.hbs new file mode 100755 index 000000000..3b55136af --- /dev/null +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/templates/applications-list.hbs @@ -0,0 +1,31 @@ + \ No newline at end of file diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/templates/operations-log.hbs b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/templates/operations-log.hbs new file mode 100755 index 000000000..cc5db5117 --- /dev/null +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/templates/operations-log.hbs @@ -0,0 +1,24 @@ + + + + + + + + + + {{#each operations}} + + + + + + {{/each}} +
+ +
Operation CodeStatusRequest created at
{{code}} + {{#equal status "COMPLETED"}} Completed{{/equal}} + {{#equal status "PENDING"}} Pending{{/equal}} + {{#equal status "ERROR"}} Error{{/equal}} + {{#equal status "IN_PROGRESS"}} In Progress{{/equal}} + {{createdTimeStamp}}
\ No newline at end of file diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/templates/policy-compliance.hbs b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/templates/policy-compliance.hbs new file mode 100755 index 000000000..d20ca7a9c --- /dev/null +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/templates/policy-compliance.hbs @@ -0,0 +1,79 @@ +
+ +
+
+ + {{#equal deviceType "android"}} + + {{/equal}} + {{#equal deviceType "ios"}} + + {{/equal}} + {{#equal deviceType "windows"}} + + {{/equal}} + + +

{{policy.policyName}}

+ {{deviceType}} +
+
+
+
+
+
+ Ownership Type : {{policy.ownershipType}} +
+
+
+
+ Compliance Type : {{policy.compliance}} +
+
+
+
+ Compliance : + {{#equal compliance "COMPLIANT"}} + Compliant + {{/equal}} + {{#equal compliance "NON-COMPLIANT"}} + Not Compliant + {{/equal}} +
+
+
+
+ +
+
+
+ + + + + + + + + {{#each complianceFeatures}} + + + + + {{/each}} +
+ +
FeatureCompliance
{{featureCode}} + {{#equal compliance true}} Compliant{{/equal}} + {{#equal compliance false}} Not Compliant{{/equal}} +
\ No newline at end of file diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/leaflet.hbs b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/leaflet.hbs new file mode 100644 index 000000000..9385d60d5 --- /dev/null +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/leaflet.hbs @@ -0,0 +1,6 @@ +{{#zone "topLibCss"}} + +{{/zone}} +{{#zone "bottomJs"}} + +{{/zone}} diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/leaflet.json b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/leaflet.json new file mode 100644 index 000000000..9eecd8f5b --- /dev/null +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/leaflet.json @@ -0,0 +1,3 @@ +{ + "version": "1.0.0" +} \ No newline at end of file diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/public/css/leaflet.css b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/public/css/leaflet.css new file mode 100644 index 000000000..c161c3134 --- /dev/null +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/public/css/leaflet.css @@ -0,0 +1,479 @@ +/* required styles */ + +.leaflet-map-pane, +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-tile-pane, +.leaflet-tile-container, +.leaflet-overlay-pane, +.leaflet-shadow-pane, +.leaflet-marker-pane, +.leaflet-popup-pane, +.leaflet-overlay-pane svg, +.leaflet-zoom-box, +.leaflet-image-layer, +.leaflet-layer { + position: absolute; + left: 0; + top: 0; + } +.leaflet-container { + overflow: hidden; + -ms-touch-action: none; + touch-action: none; + } +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + -webkit-user-drag: none; + } +.leaflet-marker-icon, +.leaflet-marker-shadow { + display: block; + } +/* map is broken in FF if you have max-width: 100% on tiles */ +.leaflet-container img { + max-width: none !important; + } +/* stupid Android 2 doesn't understand "max-width: none" properly */ +.leaflet-container img.leaflet-image-layer { + max-width: 15000px !important; + } +.leaflet-tile { + filter: inherit; + visibility: hidden; + } +.leaflet-tile-loaded { + visibility: inherit; + } +.leaflet-zoom-box { + width: 0; + height: 0; + } +/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ +.leaflet-overlay-pane svg { + -moz-user-select: none; + } + +.leaflet-tile-pane { z-index: 2; } +.leaflet-objects-pane { z-index: 3; } +.leaflet-overlay-pane { z-index: 4; } +.leaflet-shadow-pane { z-index: 5; } +.leaflet-marker-pane { z-index: 6; } +.leaflet-popup-pane { z-index: 7; } + +.leaflet-vml-shape { + width: 1px; + height: 1px; + } +.lvml { + behavior: url(#default#VML); + display: inline-block; + position: absolute; + } + + +/* control positioning */ + +.leaflet-control { + position: relative; + z-index: 7; + pointer-events: auto; + } +.leaflet-top, +.leaflet-bottom { + position: absolute; + z-index: 1000; + pointer-events: none; + } +.leaflet-top { + top: 0; + } +.leaflet-right { + right: 0; + } +.leaflet-bottom { + bottom: 0; + } +.leaflet-left { + left: 0; + } +.leaflet-control { + float: left; + clear: both; + } +.leaflet-right .leaflet-control { + float: right; + } +.leaflet-top .leaflet-control { + margin-top: 10px; + } +.leaflet-bottom .leaflet-control { + margin-bottom: 10px; + } +.leaflet-left .leaflet-control { + margin-left: 10px; + } +.leaflet-right .leaflet-control { + margin-right: 10px; + } + + +/* zoom and fade animations */ + +.leaflet-fade-anim .leaflet-tile, +.leaflet-fade-anim .leaflet-popup { + opacity: 0; + -webkit-transition: opacity 0.2s linear; + -moz-transition: opacity 0.2s linear; + -o-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; + } +.leaflet-fade-anim .leaflet-tile-loaded, +.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { + opacity: 1; + } + +.leaflet-zoom-anim .leaflet-zoom-animated { + -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); + -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); + -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1); + transition: transform 0.25s cubic-bezier(0,0,0.25,1); + } +.leaflet-zoom-anim .leaflet-tile, +.leaflet-pan-anim .leaflet-tile, +.leaflet-touching .leaflet-zoom-animated { + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; + } + +.leaflet-zoom-anim .leaflet-zoom-hide { + visibility: hidden; + } + + +/* cursors */ + +.leaflet-clickable { + cursor: pointer; + } +.leaflet-container { + cursor: -webkit-grab; + cursor: -moz-grab; + } +.leaflet-popup-pane, +.leaflet-control { + cursor: auto; + } +.leaflet-dragging .leaflet-container, +.leaflet-dragging .leaflet-clickable { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + } + + +/* visual tweaks */ + +.leaflet-container { + background: #ddd; + outline: 0; + } +.leaflet-container a { + color: #0078A8; + } +.leaflet-container a.leaflet-active { + outline: 2px solid orange; + } +.leaflet-zoom-box { + border: 2px dotted #38f; + background: rgba(255,255,255,0.5); + } + + +/* general typography */ +.leaflet-container { + font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; + } + + +/* general toolbar styles */ + +.leaflet-bar { + box-shadow: 0 1px 5px rgba(0,0,0,0.65); + border-radius: 4px; + } +.leaflet-bar a, +.leaflet-bar a:hover { + background-color: #fff; + border-bottom: 1px solid #ccc; + width: 26px; + height: 26px; + line-height: 26px; + display: block; + text-align: center; + text-decoration: none; + color: black; + } +.leaflet-bar a, +.leaflet-control-layers-toggle { + background-position: 50% 50%; + background-repeat: no-repeat; + display: block; + } +.leaflet-bar a:hover { + background-color: #f4f4f4; + } +.leaflet-bar a:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + } +.leaflet-bar a:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom: none; + } +.leaflet-bar a.leaflet-disabled { + cursor: default; + background-color: #f4f4f4; + color: #bbb; + } + +.leaflet-touch .leaflet-bar a { + width: 30px; + height: 30px; + line-height: 30px; + } + + +/* zoom control */ + +.leaflet-control-zoom-in, +.leaflet-control-zoom-out { + font: bold 18px 'Lucida Console', Monaco, monospace; + text-indent: 1px; + } +.leaflet-control-zoom-out { + font-size: 20px; + } + +.leaflet-touch .leaflet-control-zoom-in { + font-size: 22px; + } +.leaflet-touch .leaflet-control-zoom-out { + font-size: 24px; + } + + +/* layers control */ + +.leaflet-control-layers { + box-shadow: 0 1px 5px rgba(0,0,0,0.4); + background: #fff; + border-radius: 5px; + } +.leaflet-control-layers-toggle { + background-image: url(images/layers.png); + width: 36px; + height: 36px; + } +.leaflet-retina .leaflet-control-layers-toggle { + background-image: url(images/layers-2x.png); + background-size: 26px 26px; + } +.leaflet-touch .leaflet-control-layers-toggle { + width: 44px; + height: 44px; + } +.leaflet-control-layers .leaflet-control-layers-list, +.leaflet-control-layers-expanded .leaflet-control-layers-toggle { + display: none; + } +.leaflet-control-layers-expanded .leaflet-control-layers-list { + display: block; + position: relative; + } +.leaflet-control-layers-expanded { + padding: 6px 10px 6px 6px; + color: #333; + background: #fff; + } +.leaflet-control-layers-selector { + margin-top: 2px; + position: relative; + top: 1px; + } +.leaflet-control-layers label { + display: block; + } +.leaflet-control-layers-separator { + height: 0; + border-top: 1px solid #ddd; + margin: 5px -10px 5px -6px; + } + + +/* attribution and scale controls */ + +.leaflet-container .leaflet-control-attribution { + background: #fff; + background: rgba(255, 255, 255, 0.7); + margin: 0; + } +.leaflet-control-attribution, +.leaflet-control-scale-line { + padding: 0 5px; + color: #333; + } +.leaflet-control-attribution a { + text-decoration: none; + } +.leaflet-control-attribution a:hover { + text-decoration: underline; + } +.leaflet-container .leaflet-control-attribution, +.leaflet-container .leaflet-control-scale { + font-size: 11px; + } +.leaflet-left .leaflet-control-scale { + margin-left: 5px; + } +.leaflet-bottom .leaflet-control-scale { + margin-bottom: 5px; + } +.leaflet-control-scale-line { + border: 2px solid #777; + border-top: none; + line-height: 1.1; + padding: 2px 5px 1px; + font-size: 11px; + white-space: nowrap; + overflow: hidden; + -moz-box-sizing: content-box; + box-sizing: content-box; + + background: #fff; + background: rgba(255, 255, 255, 0.5); + } +.leaflet-control-scale-line:not(:first-child) { + border-top: 2px solid #777; + border-bottom: none; + margin-top: -2px; + } +.leaflet-control-scale-line:not(:first-child):not(:last-child) { + border-bottom: 2px solid #777; + } + +.leaflet-touch .leaflet-control-attribution, +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + box-shadow: none; + } +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + border: 2px solid rgba(0,0,0,0.2); + background-clip: padding-box; + } + + +/* popup */ + +.leaflet-popup { + position: absolute; + text-align: center; + } +.leaflet-popup-content-wrapper { + padding: 1px; + text-align: left; + border-radius: 12px; + } +.leaflet-popup-content { + margin: 13px 19px; + line-height: 1.4; + } +.leaflet-popup-content p { + margin: 18px 0; + } +.leaflet-popup-tip-container { + margin: 0 auto; + width: 40px; + height: 20px; + position: relative; + overflow: hidden; + } +.leaflet-popup-tip { + width: 17px; + height: 17px; + padding: 1px; + + margin: -10px auto 0; + + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); + } +.leaflet-popup-content-wrapper, +.leaflet-popup-tip { + background: white; + + box-shadow: 0 3px 14px rgba(0,0,0,0.4); + } +.leaflet-container a.leaflet-popup-close-button { + position: absolute; + top: 0; + right: 0; + padding: 4px 4px 0 0; + text-align: center; + width: 18px; + height: 14px; + font: 16px/14px Tahoma, Verdana, sans-serif; + color: #c3c3c3; + text-decoration: none; + font-weight: bold; + background: transparent; + } +.leaflet-container a.leaflet-popup-close-button:hover { + color: #999; + } +.leaflet-popup-scrolled { + overflow: auto; + border-bottom: 1px solid #ddd; + border-top: 1px solid #ddd; + } + +.leaflet-oldie .leaflet-popup-content-wrapper { + zoom: 1; + } +.leaflet-oldie .leaflet-popup-tip { + width: 24px; + margin: 0 auto; + + -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; + filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); + } +.leaflet-oldie .leaflet-popup-tip-container { + margin-top: -1px; + } + +.leaflet-oldie .leaflet-control-zoom, +.leaflet-oldie .leaflet-control-layers, +.leaflet-oldie .leaflet-popup-content-wrapper, +.leaflet-oldie .leaflet-popup-tip { + border: 1px solid #999; + } + + +/* div icon */ + +.leaflet-div-icon { + background: #fff; + border: 1px solid #666; + } diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/public/js/images/layers-2x.png b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/public/js/images/layers-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a2cf7f9efef65d2e021f382f47ef50d51d51a0df GIT binary patch literal 2898 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 literal 0 HcmV?d00001 diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/public/js/images/marker-shadow.png b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet/public/js/images/marker-shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..d1e773c715a9b508ebea055c4bb4b0a2ad7f6e52 GIT binary patch literal 797 zcmV+&1LFLNP)oNwbRQ6Eq$4M3RDU@$ z<4cV9zWLV=bA&uX9wCpA{{f^4$D#k>GcX53-UQqf>_LzMU@frMz|MwbfQGbY0?ccG zBj_wh0?6Tv;HWR0`x;m^Bm<;sCm_85SGspFBn6|A!tDh$nR`wGorGkyL7j?F3#OJq zIswLIz;iF7f|LMnF(pXPAY*GYpsw%&e_WjlnV`C$6@#Q7GZu1$Q8>&p8=(iJj8o|T~0u%hM*Yg_d(Av{WS$h&pM%nlEAonVL0;DkN|xc zn)9F+aMDk#VtAMb0c=kIb1pU-$e4$3pwo&qVh(Umlw3_IU_dFcFe(In6*x}D4LHLhFZ4N=V2ZR+>XHU5D&uY$npJ7Eu?{iAK>UxC?4uyg4+iD z!nst**H%2zhOBxc7C7Tv{f^`%hqT1KpU@Vf6+C2|bGaR(1~TU5D-1;&HXT~PMc2Lu z{Q%^i6vvox&EMFT7I_)R$xq1779I8kE@?|D*cLWnP0a@a)xJA`o*^$^V(yN)b`kV7 z=o@jbFF4j{KeuQhi;i++){o=s[i]||{};for(e in o)o.hasOwnProperty(e)&&(t[e]=o[e])}return t},bind:function(t,e){var i=arguments.length>2?Array.prototype.slice.call(arguments,2):null;return function(){return t.apply(e,i||arguments)}},stamp:function(){var t=0,e="_leaflet_id";return function(i){return i[e]=i[e]||++t,i[e]}}(),invokeEach:function(t,e,i){var n,o;if("object"==typeof t){o=Array.prototype.slice.call(arguments,3);for(n in t)e.apply(i,[n,t[n]].concat(o));return!0}return!1},limitExecByInterval:function(t,e,i){var n,o;return function s(){var a=arguments;return n?void(o=!0):(n=!0,setTimeout(function(){n=!1,o&&(s.apply(i,a),o=!1)},e),void t.apply(i,a))}},falseFn:function(){return!1},formatNum:function(t,e){var i=Math.pow(10,e||5);return Math.round(t*i)/i},trim:function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")},splitWords:function(t){return o.Util.trim(t).split(/\s+/)},setOptions:function(t,e){return t.options=o.extend({},t.options,e),t.options},getParamString:function(t,e,i){var n=[];for(var o in t)n.push(encodeURIComponent(i?o.toUpperCase():o)+"="+encodeURIComponent(t[o]));return(e&&-1!==e.indexOf("?")?"&":"?")+n.join("&")},template:function(t,e){return t.replace(/\{ *([\w_]+) *\}/g,function(t,n){var o=e[n];if(o===i)throw new Error("No value provided for variable "+t);return"function"==typeof o&&(o=o(e)),o})},isArray:Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)},emptyImageUrl:"data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="},function(){function e(e){var i,n,o=["webkit","moz","o","ms"];for(i=0;it;t++)n._initHooks[t].call(this)}},e},o.Class.include=function(t){o.extend(this.prototype,t)},o.Class.mergeOptions=function(t){o.extend(this.prototype.options,t)},o.Class.addInitHook=function(t){var e=Array.prototype.slice.call(arguments,1),i="function"==typeof t?t:function(){this[t].apply(this,e)};this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(i)};var s="_leaflet_events";o.Mixin={},o.Mixin.Events={addEventListener:function(t,e,i){if(o.Util.invokeEach(t,this.addEventListener,this,e,i))return this;var n,a,r,h,l,u,c,d=this[s]=this[s]||{},p=i&&i!==this&&o.stamp(i);for(t=o.Util.splitWords(t),n=0,a=t.length;a>n;n++)r={action:e,context:i||this},h=t[n],p?(l=h+"_idx",u=l+"_len",c=d[l]=d[l]||{},c[p]||(c[p]=[],d[u]=(d[u]||0)+1),c[p].push(r)):(d[h]=d[h]||[],d[h].push(r));return this},hasEventListeners:function(t){var e=this[s];return!!e&&(t in e&&e[t].length>0||t+"_idx"in e&&e[t+"_idx_len"]>0)},removeEventListener:function(t,e,i){if(!this[s])return this;if(!t)return this.clearAllEventListeners();if(o.Util.invokeEach(t,this.removeEventListener,this,e,i))return this;var n,a,r,h,l,u,c,d,p,_=this[s],m=i&&i!==this&&o.stamp(i);for(t=o.Util.splitWords(t),n=0,a=t.length;a>n;n++)if(r=t[n],u=r+"_idx",c=u+"_len",d=_[u],e){if(h=m&&d?d[m]:_[r]){for(l=h.length-1;l>=0;l--)h[l].action!==e||i&&h[l].context!==i||(p=h.splice(l,1),p[0].action=o.Util.falseFn);i&&d&&0===h.length&&(delete d[m],_[c]--)}}else delete _[r],delete _[u],delete _[c];return this},clearAllEventListeners:function(){return delete this[s],this},fireEvent:function(t,e){if(!this.hasEventListeners(t))return this;var i,n,a,r,h,l=o.Util.extend({},e,{type:t,target:this}),u=this[s];if(u[t])for(i=u[t].slice(),n=0,a=i.length;a>n;n++)i[n].action.call(i[n].context,l);r=u[t+"_idx"];for(h in r)if(i=r[h].slice())for(n=0,a=i.length;a>n;n++)i[n].action.call(i[n].context,l);return this},addOneTimeEventListener:function(t,e,i){if(o.Util.invokeEach(t,this.addOneTimeEventListener,this,e,i))return this;var n=o.bind(function(){this.removeEventListener(t,e,i).removeEventListener(t,n,i)},this);return this.addEventListener(t,e,i).addEventListener(t,n,i)}},o.Mixin.Events.on=o.Mixin.Events.addEventListener,o.Mixin.Events.off=o.Mixin.Events.removeEventListener,o.Mixin.Events.once=o.Mixin.Events.addOneTimeEventListener,o.Mixin.Events.fire=o.Mixin.Events.fireEvent,function(){var n="ActiveXObject"in t,s=n&&!e.addEventListener,a=navigator.userAgent.toLowerCase(),r=-1!==a.indexOf("webkit"),h=-1!==a.indexOf("chrome"),l=-1!==a.indexOf("phantom"),u=-1!==a.indexOf("android"),c=-1!==a.search("android [23]"),d=-1!==a.indexOf("gecko"),p=typeof orientation!=i+"",_=!t.PointerEvent&&t.MSPointerEvent,m=t.PointerEvent&&t.navigator.pointerEnabled||_,f="devicePixelRatio"in t&&t.devicePixelRatio>1||"matchMedia"in t&&t.matchMedia("(min-resolution:144dpi)")&&t.matchMedia("(min-resolution:144dpi)").matches,g=e.documentElement,v=n&&"transition"in g.style,y="WebKitCSSMatrix"in t&&"m11"in new t.WebKitCSSMatrix&&!c,P="MozPerspective"in g.style,L="OTransition"in g.style,x=!t.L_DISABLE_3D&&(v||y||P||L)&&!l,w=!t.L_NO_TOUCH&&!l&&(m||"ontouchstart"in t||t.DocumentTouch&&e instanceof t.DocumentTouch);o.Browser={ie:n,ielt9:s,webkit:r,gecko:d&&!r&&!t.opera&&!n,android:u,android23:c,chrome:h,ie3d:v,webkit3d:y,gecko3d:P,opera3d:L,any3d:x,mobile:p,mobileWebkit:p&&r,mobileWebkit3d:p&&y,mobileOpera:p&&t.opera,touch:w,msPointer:_,pointer:m,retina:f}}(),o.Point=function(t,e,i){this.x=i?Math.round(t):t,this.y=i?Math.round(e):e},o.Point.prototype={clone:function(){return new o.Point(this.x,this.y)},add:function(t){return this.clone()._add(o.point(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(o.point(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},distanceTo:function(t){t=o.point(t);var e=t.x-this.x,i=t.y-this.y;return Math.sqrt(e*e+i*i)},equals:function(t){return t=o.point(t),t.x===this.x&&t.y===this.y},contains:function(t){return t=o.point(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+o.Util.formatNum(this.x)+", "+o.Util.formatNum(this.y)+")"}},o.point=function(t,e,n){return t instanceof o.Point?t:o.Util.isArray(t)?new o.Point(t[0],t[1]):t===i||null===t?t:new o.Point(t,e,n)},o.Bounds=function(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;o>n;n++)this.extend(i[n])},o.Bounds.prototype={extend:function(t){return t=o.point(t),this.min||this.max?(this.min.x=Math.min(t.x,this.min.x),this.max.x=Math.max(t.x,this.max.x),this.min.y=Math.min(t.y,this.min.y),this.max.y=Math.max(t.y,this.max.y)):(this.min=t.clone(),this.max=t.clone()),this},getCenter:function(t){return new o.Point((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,t)},getBottomLeft:function(){return new o.Point(this.min.x,this.max.y)},getTopRight:function(){return new o.Point(this.max.x,this.min.y)},getSize:function(){return this.max.subtract(this.min)},contains:function(t){var e,i;return t="number"==typeof t[0]||t instanceof o.Point?o.point(t):o.bounds(t),t instanceof o.Bounds?(e=t.min,i=t.max):e=i=t,e.x>=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=o.bounds(t);var e=this.min,i=this.max,n=t.min,s=t.max,a=s.x>=e.x&&n.x<=i.x,r=s.y>=e.y&&n.y<=i.y;return a&&r},isValid:function(){return!(!this.min||!this.max)}},o.bounds=function(t,e){return!t||t instanceof o.Bounds?t:new o.Bounds(t,e)},o.Transformation=function(t,e,i,n){this._a=t,this._b=e,this._c=i,this._d=n},o.Transformation.prototype={transform:function(t,e){return this._transform(t.clone(),e)},_transform:function(t,e){return e=e||1,t.x=e*(this._a*t.x+this._b),t.y=e*(this._c*t.y+this._d),t},untransform:function(t,e){return e=e||1,new o.Point((t.x/e-this._b)/this._a,(t.y/e-this._d)/this._c)}},o.DomUtil={get:function(t){return"string"==typeof t?e.getElementById(t):t},getStyle:function(t,i){var n=t.style[i];if(!n&&t.currentStyle&&(n=t.currentStyle[i]),(!n||"auto"===n)&&e.defaultView){var o=e.defaultView.getComputedStyle(t,null);n=o?o[i]:null}return"auto"===n?null:n},getViewportOffset:function(t){var i,n=0,s=0,a=t,r=e.body,h=e.documentElement;do{if(n+=a.offsetTop||0,s+=a.offsetLeft||0,n+=parseInt(o.DomUtil.getStyle(a,"borderTopWidth"),10)||0,s+=parseInt(o.DomUtil.getStyle(a,"borderLeftWidth"),10)||0,i=o.DomUtil.getStyle(a,"position"),a.offsetParent===r&&"absolute"===i)break;if("fixed"===i){n+=r.scrollTop||h.scrollTop||0,s+=r.scrollLeft||h.scrollLeft||0;break}if("relative"===i&&!a.offsetLeft){var l=o.DomUtil.getStyle(a,"width"),u=o.DomUtil.getStyle(a,"max-width"),c=a.getBoundingClientRect();("none"!==l||"none"!==u)&&(s+=c.left+a.clientLeft),n+=c.top+(r.scrollTop||h.scrollTop||0);break}a=a.offsetParent}while(a);a=t;do{if(a===r)break;n-=a.scrollTop||0,s-=a.scrollLeft||0,a=a.parentNode}while(a);return new o.Point(s,n)},documentIsLtr:function(){return o.DomUtil._docIsLtrCached||(o.DomUtil._docIsLtrCached=!0,o.DomUtil._docIsLtr="ltr"===o.DomUtil.getStyle(e.body,"direction")),o.DomUtil._docIsLtr},create:function(t,i,n){var o=e.createElement(t);return o.className=i,n&&n.appendChild(o),o},hasClass:function(t,e){if(t.classList!==i)return t.classList.contains(e);var n=o.DomUtil._getClass(t);return n.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(n)},addClass:function(t,e){if(t.classList!==i)for(var n=o.Util.splitWords(e),s=0,a=n.length;a>s;s++)t.classList.add(n[s]);else if(!o.DomUtil.hasClass(t,e)){var r=o.DomUtil._getClass(t);o.DomUtil._setClass(t,(r?r+" ":"")+e)}},removeClass:function(t,e){t.classList!==i?t.classList.remove(e):o.DomUtil._setClass(t,o.Util.trim((" "+o.DomUtil._getClass(t)+" ").replace(" "+e+" "," ")))},_setClass:function(t,e){t.className.baseVal===i?t.className=e:t.className.baseVal=e},_getClass:function(t){return t.className.baseVal===i?t.className:t.className.baseVal},setOpacity:function(t,e){if("opacity"in t.style)t.style.opacity=e;else if("filter"in t.style){var i=!1,n="DXImageTransform.Microsoft.Alpha";try{i=t.filters.item(n)}catch(o){if(1===e)return}e=Math.round(100*e),i?(i.Enabled=100!==e,i.Opacity=e):t.style.filter+=" progid:"+n+"(opacity="+e+")"}},testProp:function(t){for(var i=e.documentElement.style,n=0;ni||i===e?e:t),new o.LatLng(this.lat,i)}},o.latLng=function(t,e){return t instanceof o.LatLng?t:o.Util.isArray(t)?"number"==typeof t[0]||"string"==typeof t[0]?new o.LatLng(t[0],t[1],t[2]):null:t===i||null===t?t:"object"==typeof t&&"lat"in t?new o.LatLng(t.lat,"lng"in t?t.lng:t.lon):e===i?null:new o.LatLng(t,e)},o.LatLngBounds=function(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;o>n;n++)this.extend(i[n])},o.LatLngBounds.prototype={extend:function(t){if(!t)return this;var e=o.latLng(t);return t=null!==e?e:o.latLngBounds(t),t instanceof o.LatLng?this._southWest||this._northEast?(this._southWest.lat=Math.min(t.lat,this._southWest.lat),this._southWest.lng=Math.min(t.lng,this._southWest.lng),this._northEast.lat=Math.max(t.lat,this._northEast.lat),this._northEast.lng=Math.max(t.lng,this._northEast.lng)):(this._southWest=new o.LatLng(t.lat,t.lng),this._northEast=new o.LatLng(t.lat,t.lng)):t instanceof o.LatLngBounds&&(this.extend(t._southWest),this.extend(t._northEast)),this},pad:function(t){var e=this._southWest,i=this._northEast,n=Math.abs(e.lat-i.lat)*t,s=Math.abs(e.lng-i.lng)*t;return new o.LatLngBounds(new o.LatLng(e.lat-n,e.lng-s),new o.LatLng(i.lat+n,i.lng+s))},getCenter:function(){return new o.LatLng((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new o.LatLng(this.getNorth(),this.getWest())},getSouthEast:function(){return new o.LatLng(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(t){t="number"==typeof t[0]||t instanceof o.LatLng?o.latLng(t):o.latLngBounds(t);var e,i,n=this._southWest,s=this._northEast;return t instanceof o.LatLngBounds?(e=t.getSouthWest(),i=t.getNorthEast()):e=i=t,e.lat>=n.lat&&i.lat<=s.lat&&e.lng>=n.lng&&i.lng<=s.lng},intersects:function(t){t=o.latLngBounds(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),s=t.getNorthEast(),a=s.lat>=e.lat&&n.lat<=i.lat,r=s.lng>=e.lng&&n.lng<=i.lng;return a&&r},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(t){return t?(t=o.latLngBounds(t),this._southWest.equals(t.getSouthWest())&&this._northEast.equals(t.getNorthEast())):!1},isValid:function(){return!(!this._southWest||!this._northEast)}},o.latLngBounds=function(t,e){return!t||t instanceof o.LatLngBounds?t:new o.LatLngBounds(t,e)},o.Projection={},o.Projection.SphericalMercator={MAX_LATITUDE:85.0511287798,project:function(t){var e=o.LatLng.DEG_TO_RAD,i=this.MAX_LATITUDE,n=Math.max(Math.min(i,t.lat),-i),s=t.lng*e,a=n*e;return a=Math.log(Math.tan(Math.PI/4+a/2)),new o.Point(s,a)},unproject:function(t){var e=o.LatLng.RAD_TO_DEG,i=t.x*e,n=(2*Math.atan(Math.exp(t.y))-Math.PI/2)*e;return new o.LatLng(n,i)}},o.Projection.LonLat={project:function(t){return new o.Point(t.lng,t.lat)},unproject:function(t){return new o.LatLng(t.y,t.x)}},o.CRS={latLngToPoint:function(t,e){var i=this.projection.project(t),n=this.scale(e);return this.transformation._transform(i,n)},pointToLatLng:function(t,e){var i=this.scale(e),n=this.transformation.untransform(t,i);return this.projection.unproject(n)},project:function(t){return this.projection.project(t)},scale:function(t){return 256*Math.pow(2,t)},getSize:function(t){var e=this.scale(t);return o.point(e,e)}},o.CRS.Simple=o.extend({},o.CRS,{projection:o.Projection.LonLat,transformation:new o.Transformation(1,0,-1,0),scale:function(t){return Math.pow(2,t)}}),o.CRS.EPSG3857=o.extend({},o.CRS,{code:"EPSG:3857",projection:o.Projection.SphericalMercator,transformation:new o.Transformation(.5/Math.PI,.5,-.5/Math.PI,.5),project:function(t){var e=this.projection.project(t),i=6378137;return e.multiplyBy(i)}}),o.CRS.EPSG900913=o.extend({},o.CRS.EPSG3857,{code:"EPSG:900913"}),o.CRS.EPSG4326=o.extend({},o.CRS,{code:"EPSG:4326",projection:o.Projection.LonLat,transformation:new o.Transformation(1/360,.5,-1/360,.5)}),o.Map=o.Class.extend({includes:o.Mixin.Events,options:{crs:o.CRS.EPSG3857,fadeAnimation:o.DomUtil.TRANSITION&&!o.Browser.android23,trackResize:!0,markerZoomAnimation:o.DomUtil.TRANSITION&&o.Browser.any3d},initialize:function(t,e){e=o.setOptions(this,e),this._initContainer(t),this._initLayout(),this._onResize=o.bind(this._onResize,this),this._initEvents(),e.maxBounds&&this.setMaxBounds(e.maxBounds),e.center&&e.zoom!==i&&this.setView(o.latLng(e.center),e.zoom,{reset:!0}),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._tileLayersNum=0,this.callInitHooks(),this._addLayers(e.layers)},setView:function(t,e){return e=e===i?this.getZoom():e,this._resetView(o.latLng(t),this._limitZoom(e)),this},setZoom:function(t,e){return this._loaded?this.setView(this.getCenter(),t,{zoom:e}):(this._zoom=this._limitZoom(t),this)},zoomIn:function(t,e){return this.setZoom(this._zoom+(t||1),e)},zoomOut:function(t,e){return this.setZoom(this._zoom-(t||1),e)},setZoomAround:function(t,e,i){var n=this.getZoomScale(e),s=this.getSize().divideBy(2),a=t instanceof o.Point?t:this.latLngToContainerPoint(t),r=a.subtract(s).multiplyBy(1-1/n),h=this.containerPointToLatLng(s.add(r));return this.setView(h,e,{zoom:i})},fitBounds:function(t,e){e=e||{},t=t.getBounds?t.getBounds():o.latLngBounds(t);var i=o.point(e.paddingTopLeft||e.padding||[0,0]),n=o.point(e.paddingBottomRight||e.padding||[0,0]),s=this.getBoundsZoom(t,!1,i.add(n));s=e.maxZoom?Math.min(e.maxZoom,s):s;var a=n.subtract(i).divideBy(2),r=this.project(t.getSouthWest(),s),h=this.project(t.getNorthEast(),s),l=this.unproject(r.add(h).divideBy(2).add(a),s);return this.setView(l,s,e)},fitWorld:function(t){return this.fitBounds([[-90,-180],[90,180]],t)},panTo:function(t,e){return this.setView(t,this._zoom,{pan:e})},panBy:function(t){return this.fire("movestart"),this._rawPanBy(o.point(t)),this.fire("move"),this.fire("moveend")},setMaxBounds:function(t){return t=o.latLngBounds(t),this.options.maxBounds=t,t?(this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds,this)):this.off("moveend",this._panInsideMaxBounds,this)},panInsideBounds:function(t,e){var i=this.getCenter(),n=this._limitCenter(i,this._zoom,t);return i.equals(n)?this:this.panTo(n,e)},addLayer:function(t){var e=o.stamp(t);return this._layers[e]?this:(this._layers[e]=t,!t.options||isNaN(t.options.maxZoom)&&isNaN(t.options.minZoom)||(this._zoomBoundLayers[e]=t,this._updateZoomLevels()),this.options.zoomAnimation&&o.TileLayer&&t instanceof o.TileLayer&&(this._tileLayersNum++,this._tileLayersToLoad++,t.on("load",this._onTileLayerLoad,this)),this._loaded&&this._layerAdd(t),this)},removeLayer:function(t){var e=o.stamp(t);return this._layers[e]?(this._loaded&&t.onRemove(this),delete this._layers[e],this._loaded&&this.fire("layerremove",{layer:t}),this._zoomBoundLayers[e]&&(delete this._zoomBoundLayers[e],this._updateZoomLevels()),this.options.zoomAnimation&&o.TileLayer&&t instanceof o.TileLayer&&(this._tileLayersNum--,this._tileLayersToLoad--,t.off("load",this._onTileLayerLoad,this)),this):this},hasLayer:function(t){return t?o.stamp(t)in this._layers:!1},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},invalidateSize:function(t){if(!this._loaded)return this;t=o.extend({animate:!1,pan:!0},t===!0?{animate:!0}:t);var e=this.getSize();this._sizeChanged=!0,this._initialCenter=null;var i=this.getSize(),n=e.divideBy(2).round(),s=i.divideBy(2).round(),a=n.subtract(s);return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(o.bind(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i})):this},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){this._loaded&&this.fire("unload"),this._initEvents("off");try{delete this._container._leaflet}catch(t){this._container._leaflet=i}return this._clearPanes(),this._clearControlPos&&this._clearControlPos(),this._clearHandlers(),this},getCenter:function(){return this._checkIfLoaded(),this._initialCenter&&!this._moved()?this._initialCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds(),e=this.unproject(t.getBottomLeft()),i=this.unproject(t.getTopRight());return new o.LatLngBounds(e,i)},getMinZoom:function(){return this.options.minZoom===i?this._layersMinZoom===i?0:this._layersMinZoom:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===i?this._layersMaxZoom===i?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=o.latLngBounds(t);var n,s=this.getMinZoom()-(e?1:0),a=this.getMaxZoom(),r=this.getSize(),h=t.getNorthWest(),l=t.getSouthEast(),u=!0;i=o.point(i||[0,0]);do s++,n=this.project(l,s).subtract(this.project(h,s)).add(i),u=e?n.x=s);return u&&e?null:e?s:s-1},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new o.Point(this._container.clientWidth,this._container.clientHeight),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(){var t=this._getTopLeftPoint();return new o.Bounds(t,t.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._initialTopLeftPoint},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t){var e=this.options.crs;return e.scale(t)/e.scale(this._zoom)},getScaleZoom:function(t){return this._zoom+Math.log(t)/Math.LN2},project:function(t,e){return e=e===i?this._zoom:e,this.options.crs.latLngToPoint(o.latLng(t),e)},unproject:function(t,e){return e=e===i?this._zoom:e,this.options.crs.pointToLatLng(o.point(t),e)},layerPointToLatLng:function(t){var e=o.point(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){var e=this.project(o.latLng(t))._round();return e._subtract(this.getPixelOrigin())},containerPointToLayerPoint:function(t){return o.point(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return o.point(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(o.point(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(o.latLng(t)))},mouseEventToContainerPoint:function(t){return o.DomEvent.getMousePosition(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=o.DomUtil.get(t);if(!e)throw new Error("Map container not found.");if(e._leaflet)throw new Error("Map container is already initialized.");e._leaflet=!0},_initLayout:function(){var t=this._container;o.DomUtil.addClass(t,"leaflet-container"+(o.Browser.touch?" leaflet-touch":"")+(o.Browser.retina?" leaflet-retina":"")+(o.Browser.ielt9?" leaflet-oldie":"")+(this.options.fadeAnimation?" leaflet-fade-anim":""));var e=o.DomUtil.getStyle(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._mapPane=t.mapPane=this._createPane("leaflet-map-pane",this._container),this._tilePane=t.tilePane=this._createPane("leaflet-tile-pane",this._mapPane),t.objectsPane=this._createPane("leaflet-objects-pane",this._mapPane),t.shadowPane=this._createPane("leaflet-shadow-pane"),t.overlayPane=this._createPane("leaflet-overlay-pane"),t.markerPane=this._createPane("leaflet-marker-pane"),t.popupPane=this._createPane("leaflet-popup-pane");var e=" leaflet-zoom-hide";this.options.markerZoomAnimation||(o.DomUtil.addClass(t.markerPane,e),o.DomUtil.addClass(t.shadowPane,e),o.DomUtil.addClass(t.popupPane,e))},_createPane:function(t,e){return o.DomUtil.create("div",t,e||this._panes.objectsPane)},_clearPanes:function(){this._container.removeChild(this._mapPane)},_addLayers:function(t){t=t?o.Util.isArray(t)?t:[t]:[];for(var e=0,i=t.length;i>e;e++)this.addLayer(t[e])},_resetView:function(t,e,i,n){var s=this._zoom!==e;n||(this.fire("movestart"),s&&this.fire("zoomstart")),this._zoom=e,this._initialCenter=t,this._initialTopLeftPoint=this._getNewTopLeftPoint(t),i?this._initialTopLeftPoint._add(this._getMapPanePos()):o.DomUtil.setPosition(this._mapPane,new o.Point(0,0)),this._tileLayersToLoad=this._tileLayersNum;var a=!this._loaded;this._loaded=!0,this.fire("viewreset",{hard:!i}),a&&(this.fire("load"),this.eachLayer(this._layerAdd,this)),this.fire("move"),(s||n)&&this.fire("zoomend"),this.fire("moveend",{hard:!i})},_rawPanBy:function(t){o.DomUtil.setPosition(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_updateZoomLevels:function(){var t,e=1/0,n=-(1/0),o=this._getZoomSpan();for(t in this._zoomBoundLayers){var s=this._zoomBoundLayers[t];isNaN(s.options.minZoom)||(e=Math.min(e,s.options.minZoom)),isNaN(s.options.maxZoom)||(n=Math.max(n,s.options.maxZoom))}t===i?this._layersMaxZoom=this._layersMinZoom=i:(this._layersMaxZoom=n,this._layersMinZoom=e),o!==this._getZoomSpan()&&this.fire("zoomlevelschange")},_panInsideMaxBounds:function(){this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(e){if(o.DomEvent){e=e||"on",o.DomEvent[e](this._container,"click",this._onMouseClick,this);var i,n,s=["dblclick","mousedown","mouseup","mouseenter","mouseleave","mousemove","contextmenu"];for(i=0,n=s.length;n>i;i++)o.DomEvent[e](this._container,s[i],this._fireMouseEvent,this);this.options.trackResize&&o.DomEvent[e](t,"resize",this._onResize,this)}},_onResize:function(){o.Util.cancelAnimFrame(this._resizeRequest),this._resizeRequest=o.Util.requestAnimFrame(function(){this.invalidateSize({debounceMoveend:!0})},this,!1,this._container)},_onMouseClick:function(t){!this._loaded||!t._simulated&&(this.dragging&&this.dragging.moved()||this.boxZoom&&this.boxZoom.moved())||o.DomEvent._skipped(t)||(this.fire("preclick"),this._fireMouseEvent(t))},_fireMouseEvent:function(t){if(this._loaded&&!o.DomEvent._skipped(t)){var e=t.type;if(e="mouseenter"===e?"mouseover":"mouseleave"===e?"mouseout":e,this.hasEventListeners(e)){"contextmenu"===e&&o.DomEvent.preventDefault(t);var i=this.mouseEventToContainerPoint(t),n=this.containerPointToLayerPoint(i),s=this.layerPointToLatLng(n);this.fire(e,{latlng:s,layerPoint:n,containerPoint:i,originalEvent:t})}}},_onTileLayerLoad:function(){this._tileLayersToLoad--,this._tileLayersNum&&!this._tileLayersToLoad&&this.fire("tilelayersload")},_clearHandlers:function(){for(var t=0,e=this._handlers.length;e>t;t++)this._handlers[t].disable()},whenReady:function(t,e){return this._loaded?t.call(e||this,this):this.on("load",t,e),this},_layerAdd:function(t){t.onAdd(this),this.fire("layeradd",{layer:t})},_getMapPanePos:function(){return o.DomUtil.getPosition(this._mapPane)},_moved:function(){var t=this._getMapPanePos();return t&&!t.equals([0,0])},_getTopLeftPoint:function(){return this.getPixelOrigin().subtract(this._getMapPanePos())},_getNewTopLeftPoint:function(t,e){var i=this.getSize()._divideBy(2);return this.project(t,e)._subtract(i)._round()},_latLngToNewLayerPoint:function(t,e,i){var n=this._getNewTopLeftPoint(i,e).add(this._getMapPanePos());return this.project(t,e)._subtract(n)},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(t){return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint())},_limitCenter:function(t,e,i){if(!i)return t;var n=this.project(t,e),s=this.getSize().divideBy(2),a=new o.Bounds(n.subtract(s),n.add(s)),r=this._getBoundsOffset(a,i,e);return this.unproject(n.add(r),e)},_limitOffset:function(t,e){if(!e)return t;var i=this.getPixelBounds(),n=new o.Bounds(i.min.add(t),i.max.add(t));return t.add(this._getBoundsOffset(n,e))},_getBoundsOffset:function(t,e,i){var n=this.project(e.getNorthWest(),i).subtract(t.min),s=this.project(e.getSouthEast(),i).subtract(t.max),a=this._rebound(n.x,-s.x),r=this._rebound(n.y,-s.y);return new o.Point(a,r)},_rebound:function(t,e){return t+e>0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom();return Math.max(e,Math.min(i,t))}}),o.map=function(t,e){return new o.Map(t,e)},o.Projection.Mercator={MAX_LATITUDE:85.0840591556,R_MINOR:6356752.314245179,R_MAJOR:6378137,project:function(t){var e=o.LatLng.DEG_TO_RAD,i=this.MAX_LATITUDE,n=Math.max(Math.min(i,t.lat),-i),s=this.R_MAJOR,a=this.R_MINOR,r=t.lng*e*s,h=n*e,l=a/s,u=Math.sqrt(1-l*l),c=u*Math.sin(h);c=Math.pow((1-c)/(1+c),.5*u);var d=Math.tan(.5*(.5*Math.PI-h))/c;return h=-s*Math.log(d),new o.Point(r,h)},unproject:function(t){for(var e,i=o.LatLng.RAD_TO_DEG,n=this.R_MAJOR,s=this.R_MINOR,a=t.x*i/n,r=s/n,h=Math.sqrt(1-r*r),l=Math.exp(-t.y/n),u=Math.PI/2-2*Math.atan(l),c=15,d=1e-7,p=c,_=.1;Math.abs(_)>d&&--p>0;)e=h*Math.sin(u),_=Math.PI/2-2*Math.atan(l*Math.pow((1-e)/(1+e),.5*h))-u,u+=_;return new o.LatLng(u*i,a)}},o.CRS.EPSG3395=o.extend({},o.CRS,{code:"EPSG:3395",projection:o.Projection.Mercator, +transformation:function(){var t=o.Projection.Mercator,e=t.R_MAJOR,i=.5/(Math.PI*e);return new o.Transformation(i,.5,-i,.5)}()}),o.TileLayer=o.Class.extend({includes:o.Mixin.Events,options:{minZoom:0,maxZoom:18,tileSize:256,subdomains:"abc",errorTileUrl:"",attribution:"",zoomOffset:0,opacity:1,unloadInvisibleTiles:o.Browser.mobile,updateWhenIdle:o.Browser.mobile},initialize:function(t,e){e=o.setOptions(this,e),e.detectRetina&&o.Browser.retina&&e.maxZoom>0&&(e.tileSize=Math.floor(e.tileSize/2),e.zoomOffset++,e.minZoom>0&&e.minZoom--,this.options.maxZoom--),e.bounds&&(e.bounds=o.latLngBounds(e.bounds)),this._url=t;var i=this.options.subdomains;"string"==typeof i&&(this.options.subdomains=i.split(""))},onAdd:function(t){this._map=t,this._animated=t._zoomAnimated,this._initContainer(),t.on({viewreset:this._reset,moveend:this._update},this),this._animated&&t.on({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||(this._limitedUpdate=o.Util.limitExecByInterval(this._update,150,this),t.on("move",this._limitedUpdate,this)),this._reset(),this._update()},addTo:function(t){return t.addLayer(this),this},onRemove:function(t){this._container.parentNode.removeChild(this._container),t.off({viewreset:this._reset,moveend:this._update},this),this._animated&&t.off({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||t.off("move",this._limitedUpdate,this),this._container=null,this._map=null},bringToFront:function(){var t=this._map._panes.tilePane;return this._container&&(t.appendChild(this._container),this._setAutoZIndex(t,Math.max)),this},bringToBack:function(){var t=this._map._panes.tilePane;return this._container&&(t.insertBefore(this._container,t.firstChild),this._setAutoZIndex(t,Math.min)),this},getAttribution:function(){return this.options.attribution},getContainer:function(){return this._container},setOpacity:function(t){return this.options.opacity=t,this._map&&this._updateOpacity(),this},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},setUrl:function(t,e){return this._url=t,e||this.redraw(),this},redraw:function(){return this._map&&(this._reset({hard:!0}),this._update()),this},_updateZIndex:function(){this._container&&this.options.zIndex!==i&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(t,e){var i,n,o,s=t.children,a=-e(1/0,-(1/0));for(n=0,o=s.length;o>n;n++)s[n]!==this._container&&(i=parseInt(s[n].style.zIndex,10),isNaN(i)||(a=e(a,i)));this.options.zIndex=this._container.style.zIndex=(isFinite(a)?a:0)+e(1,-1)},_updateOpacity:function(){var t,e=this._tiles;if(o.Browser.ielt9)for(t in e)o.DomUtil.setOpacity(e[t],this.options.opacity);else o.DomUtil.setOpacity(this._container,this.options.opacity)},_initContainer:function(){var t=this._map._panes.tilePane;if(!this._container){if(this._container=o.DomUtil.create("div","leaflet-layer"),this._updateZIndex(),this._animated){var e="leaflet-tile-container";this._bgBuffer=o.DomUtil.create("div",e,this._container),this._tileContainer=o.DomUtil.create("div",e,this._container)}else this._tileContainer=this._container;t.appendChild(this._container),this.options.opacity<1&&this._updateOpacity()}},_reset:function(t){for(var e in this._tiles)this.fire("tileunload",{tile:this._tiles[e]});this._tiles={},this._tilesToLoad=0,this.options.reuseTiles&&(this._unusedTiles=[]),this._tileContainer.innerHTML="",this._animated&&t&&t.hard&&this._clearBgBuffer(),this._initContainer()},_getTileSize:function(){var t=this._map,e=t.getZoom()+this.options.zoomOffset,i=this.options.maxNativeZoom,n=this.options.tileSize;return i&&e>i&&(n=Math.round(t.getZoomScale(e)/t.getZoomScale(i)*n)),n},_update:function(){if(this._map){var t=this._map,e=t.getPixelBounds(),i=t.getZoom(),n=this._getTileSize();if(!(i>this.options.maxZoom||in;n++)this._addTile(a[n],l);this._tileContainer.appendChild(l)}},_tileShouldBeLoaded:function(t){if(t.x+":"+t.y in this._tiles)return!1;var e=this.options;if(!e.continuousWorld){var i=this._getWrapTileNum();if(e.noWrap&&(t.x<0||t.x>=i.x)||t.y<0||t.y>=i.y)return!1}if(e.bounds){var n=this._getTileSize(),o=t.multiplyBy(n),s=o.add([n,n]),a=this._map.unproject(o),r=this._map.unproject(s);if(e.continuousWorld||e.noWrap||(a=a.wrap(),r=r.wrap()),!e.bounds.intersects([a,r]))return!1}return!0},_removeOtherTiles:function(t){var e,i,n,o;for(o in this._tiles)e=o.split(":"),i=parseInt(e[0],10),n=parseInt(e[1],10),(it.max.x||nt.max.y)&&this._removeTile(o)},_removeTile:function(t){var e=this._tiles[t];this.fire("tileunload",{tile:e,url:e.src}),this.options.reuseTiles?(o.DomUtil.removeClass(e,"leaflet-tile-loaded"),this._unusedTiles.push(e)):e.parentNode===this._tileContainer&&this._tileContainer.removeChild(e),o.Browser.android||(e.onload=null,e.src=o.Util.emptyImageUrl),delete this._tiles[t]},_addTile:function(t,e){var i=this._getTilePos(t),n=this._getTile();o.DomUtil.setPosition(n,i,o.Browser.chrome),this._tiles[t.x+":"+t.y]=n,this._loadTile(n,t),n.parentNode!==this._tileContainer&&e.appendChild(n)},_getZoomForUrl:function(){var t=this.options,e=this._map.getZoom();return t.zoomReverse&&(e=t.maxZoom-e),e+=t.zoomOffset,t.maxNativeZoom?Math.min(e,t.maxNativeZoom):e},_getTilePos:function(t){var e=this._map.getPixelOrigin(),i=this._getTileSize();return t.multiplyBy(i).subtract(e)},getTileUrl:function(t){return o.Util.template(this._url,o.extend({s:this._getSubdomain(t),z:t.z,x:t.x,y:t.y},this.options))},_getWrapTileNum:function(){var t=this._map.options.crs,e=t.getSize(this._map.getZoom());return e.divideBy(this._getTileSize())._floor()},_adjustTilePoint:function(t){var e=this._getWrapTileNum();this.options.continuousWorld||this.options.noWrap||(t.x=(t.x%e.x+e.x)%e.x),this.options.tms&&(t.y=e.y-t.y-1),t.z=this._getZoomForUrl()},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_getTile:function(){if(this.options.reuseTiles&&this._unusedTiles.length>0){var t=this._unusedTiles.pop();return this._resetTile(t),t}return this._createTile()},_resetTile:function(){},_createTile:function(){var t=o.DomUtil.create("img","leaflet-tile");return t.style.width=t.style.height=this._getTileSize()+"px",t.galleryimg="no",t.onselectstart=t.onmousemove=o.Util.falseFn,o.Browser.ielt9&&this.options.opacity!==i&&o.DomUtil.setOpacity(t,this.options.opacity),o.Browser.mobileWebkit3d&&(t.style.WebkitBackfaceVisibility="hidden"),t},_loadTile:function(t,e){t._layer=this,t.onload=this._tileOnLoad,t.onerror=this._tileOnError,this._adjustTilePoint(e),t.src=this.getTileUrl(e),this.fire("tileloadstart",{tile:t,url:t.src})},_tileLoaded:function(){this._tilesToLoad--,this._animated&&o.DomUtil.addClass(this._tileContainer,"leaflet-zoom-animated"),this._tilesToLoad||(this.fire("load"),this._animated&&(clearTimeout(this._clearBgBufferTimer),this._clearBgBufferTimer=setTimeout(o.bind(this._clearBgBuffer,this),500)))},_tileOnLoad:function(){var t=this._layer;this.src!==o.Util.emptyImageUrl&&(o.DomUtil.addClass(this,"leaflet-tile-loaded"),t.fire("tileload",{tile:this,url:this.src})),t._tileLoaded()},_tileOnError:function(){var t=this._layer;t.fire("tileerror",{tile:this,url:this.src});var e=t.options.errorTileUrl;e&&(this.src=e),t._tileLoaded()}}),o.tileLayer=function(t,e){return new o.TileLayer(t,e)},o.TileLayer.WMS=o.TileLayer.extend({defaultWmsParams:{service:"WMS",request:"GetMap",version:"1.1.1",layers:"",styles:"",format:"image/jpeg",transparent:!1},initialize:function(t,e){this._url=t;var i=o.extend({},this.defaultWmsParams),n=e.tileSize||this.options.tileSize;e.detectRetina&&o.Browser.retina?i.width=i.height=2*n:i.width=i.height=n;for(var s in e)this.options.hasOwnProperty(s)||"crs"===s||(i[s]=e[s]);this.wmsParams=i,o.setOptions(this,e)},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,o.TileLayer.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._map,i=this.options.tileSize,n=t.multiplyBy(i),s=n.add([i,i]),a=this._crs.project(e.unproject(n,t.z)),r=this._crs.project(e.unproject(s,t.z)),h=this._wmsVersion>=1.3&&this._crs===o.CRS.EPSG4326?[r.y,a.x,a.y,r.x].join(","):[a.x,r.y,r.x,a.y].join(","),l=o.Util.template(this._url,{s:this._getSubdomain(t)});return l+o.Util.getParamString(this.wmsParams,l,!0)+"&BBOX="+h},setParams:function(t,e){return o.extend(this.wmsParams,t),e||this.redraw(),this}}),o.tileLayer.wms=function(t,e){return new o.TileLayer.WMS(t,e)},o.TileLayer.Canvas=o.TileLayer.extend({options:{async:!1},initialize:function(t){o.setOptions(this,t)},redraw:function(){this._map&&(this._reset({hard:!0}),this._update());for(var t in this._tiles)this._redrawTile(this._tiles[t]);return this},_redrawTile:function(t){this.drawTile(t,t._tilePoint,this._map._zoom)},_createTile:function(){var t=o.DomUtil.create("canvas","leaflet-tile");return t.width=t.height=this.options.tileSize,t.onselectstart=t.onmousemove=o.Util.falseFn,t},_loadTile:function(t,e){t._layer=this,t._tilePoint=e,this._redrawTile(t),this.options.async||this.tileDrawn(t)},drawTile:function(){},tileDrawn:function(t){this._tileOnLoad.call(t)}}),o.tileLayer.canvas=function(t){return new o.TileLayer.Canvas(t)},o.ImageOverlay=o.Class.extend({includes:o.Mixin.Events,options:{opacity:1},initialize:function(t,e,i){this._url=t,this._bounds=o.latLngBounds(e),o.setOptions(this,i)},onAdd:function(t){this._map=t,this._image||this._initImage(),t._panes.overlayPane.appendChild(this._image),t.on("viewreset",this._reset,this),t.options.zoomAnimation&&o.Browser.any3d&&t.on("zoomanim",this._animateZoom,this),this._reset()},onRemove:function(t){t.getPanes().overlayPane.removeChild(this._image),t.off("viewreset",this._reset,this),t.options.zoomAnimation&&t.off("zoomanim",this._animateZoom,this)},addTo:function(t){return t.addLayer(this),this},setOpacity:function(t){return this.options.opacity=t,this._updateOpacity(),this},bringToFront:function(){return this._image&&this._map._panes.overlayPane.appendChild(this._image),this},bringToBack:function(){var t=this._map._panes.overlayPane;return this._image&&t.insertBefore(this._image,t.firstChild),this},setUrl:function(t){this._url=t,this._image.src=this._url},getAttribution:function(){return this.options.attribution},_initImage:function(){this._image=o.DomUtil.create("img","leaflet-image-layer"),this._map.options.zoomAnimation&&o.Browser.any3d?o.DomUtil.addClass(this._image,"leaflet-zoom-animated"):o.DomUtil.addClass(this._image,"leaflet-zoom-hide"),this._updateOpacity(),o.extend(this._image,{galleryimg:"no",onselectstart:o.Util.falseFn,onmousemove:o.Util.falseFn,onload:o.bind(this._onImageLoad,this),src:this._url})},_animateZoom:function(t){var e=this._map,i=this._image,n=e.getZoomScale(t.zoom),s=this._bounds.getNorthWest(),a=this._bounds.getSouthEast(),r=e._latLngToNewLayerPoint(s,t.zoom,t.center),h=e._latLngToNewLayerPoint(a,t.zoom,t.center)._subtract(r),l=r._add(h._multiplyBy(.5*(1-1/n)));i.style[o.DomUtil.TRANSFORM]=o.DomUtil.getTranslateString(l)+" scale("+n+") "},_reset:function(){var t=this._image,e=this._map.latLngToLayerPoint(this._bounds.getNorthWest()),i=this._map.latLngToLayerPoint(this._bounds.getSouthEast())._subtract(e);o.DomUtil.setPosition(t,e),t.style.width=i.x+"px",t.style.height=i.y+"px"},_onImageLoad:function(){this.fire("load")},_updateOpacity:function(){o.DomUtil.setOpacity(this._image,this.options.opacity)}}),o.imageOverlay=function(t,e,i){return new o.ImageOverlay(t,e,i)},o.Icon=o.Class.extend({options:{className:""},initialize:function(t){o.setOptions(this,t)},createIcon:function(t){return this._createIcon("icon",t)},createShadow:function(t){return this._createIcon("shadow",t)},_createIcon:function(t,e){var i=this._getIconUrl(t);if(!i){if("icon"===t)throw new Error("iconUrl not set in Icon options (see the docs).");return null}var n;return n=e&&"IMG"===e.tagName?this._createImg(i,e):this._createImg(i),this._setIconStyles(n,t),n},_setIconStyles:function(t,e){var i,n=this.options,s=o.point(n[e+"Size"]);i="shadow"===e?o.point(n.shadowAnchor||n.iconAnchor):o.point(n.iconAnchor),!i&&s&&(i=s.divideBy(2,!0)),t.className="leaflet-marker-"+e+" "+n.className,i&&(t.style.marginLeft=-i.x+"px",t.style.marginTop=-i.y+"px"),s&&(t.style.width=s.x+"px",t.style.height=s.y+"px")},_createImg:function(t,i){return i=i||e.createElement("img"),i.src=t,i},_getIconUrl:function(t){return o.Browser.retina&&this.options[t+"RetinaUrl"]?this.options[t+"RetinaUrl"]:this.options[t+"Url"]}}),o.icon=function(t){return new o.Icon(t)},o.Icon.Default=o.Icon.extend({options:{iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]},_getIconUrl:function(t){var e=t+"Url";if(this.options[e])return this.options[e];o.Browser.retina&&"icon"===t&&(t+="-2x");var i=o.Icon.Default.imagePath;if(!i)throw new Error("Couldn't autodetect L.Icon.Default.imagePath, set it manually.");return i+"/marker-"+t+".png"}}),o.Icon.Default.imagePath=function(){var t,i,n,o,s,a=e.getElementsByTagName("script"),r=/[\/^]leaflet[\-\._]?([\w\-\._]*)\.js\??/;for(t=0,i=a.length;i>t;t++)if(n=a[t].src,o=n.match(r))return s=n.split(r)[0],(s?s+"/":"")+"images"}(),o.Marker=o.Class.extend({includes:o.Mixin.Events,options:{icon:new o.Icon.Default,title:"",alt:"",clickable:!0,draggable:!1,keyboard:!0,zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250},initialize:function(t,e){o.setOptions(this,e),this._latlng=o.latLng(t)},onAdd:function(t){this._map=t,t.on("viewreset",this.update,this),this._initIcon(),this.update(),this.fire("add"),t.options.zoomAnimation&&t.options.markerZoomAnimation&&t.on("zoomanim",this._animateZoom,this)},addTo:function(t){return t.addLayer(this),this},onRemove:function(t){this.dragging&&this.dragging.disable(),this._removeIcon(),this._removeShadow(),this.fire("remove"),t.off({viewreset:this.update,zoomanim:this._animateZoom},this),this._map=null},getLatLng:function(){return this._latlng},setLatLng:function(t){return this._latlng=o.latLng(t),this.update(),this.fire("move",{latlng:this._latlng})},setZIndexOffset:function(t){return this.options.zIndexOffset=t,this.update(),this},setIcon:function(t){return this.options.icon=t,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup),this},update:function(){return this._icon&&this._setPos(this._map.latLngToLayerPoint(this._latlng).round()),this},_initIcon:function(){var t=this.options,e=this._map,i=e.options.zoomAnimation&&e.options.markerZoomAnimation,n=i?"leaflet-zoom-animated":"leaflet-zoom-hide",s=t.icon.createIcon(this._icon),a=!1;s!==this._icon&&(this._icon&&this._removeIcon(),a=!0,t.title&&(s.title=t.title),t.alt&&(s.alt=t.alt)),o.DomUtil.addClass(s,n),t.keyboard&&(s.tabIndex="0"),this._icon=s,this._initInteraction(),t.riseOnHover&&o.DomEvent.on(s,"mouseover",this._bringToFront,this).on(s,"mouseout",this._resetZIndex,this);var r=t.icon.createShadow(this._shadow),h=!1;r!==this._shadow&&(this._removeShadow(),h=!0),r&&o.DomUtil.addClass(r,n),this._shadow=r,t.opacity<1&&this._updateOpacity();var l=this._map._panes;a&&l.markerPane.appendChild(this._icon),r&&h&&l.shadowPane.appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&o.DomEvent.off(this._icon,"mouseover",this._bringToFront).off(this._icon,"mouseout",this._resetZIndex),this._map._panes.markerPane.removeChild(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&this._map._panes.shadowPane.removeChild(this._shadow),this._shadow=null},_setPos:function(t){o.DomUtil.setPosition(this._icon,t),this._shadow&&o.DomUtil.setPosition(this._shadow,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){this._icon.style.zIndex=this._zIndex+t},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).round();this._setPos(e)},_initInteraction:function(){if(this.options.clickable){var t=this._icon,e=["dblclick","mousedown","mouseover","mouseout","contextmenu"];o.DomUtil.addClass(t,"leaflet-clickable"),o.DomEvent.on(t,"click",this._onMouseClick,this),o.DomEvent.on(t,"keypress",this._onKeyPress,this);for(var i=0;is?(e.height=s+"px",o.DomUtil.addClass(t,a)):o.DomUtil.removeClass(t,a),this._containerWidth=this._container.offsetWidth},_updatePosition:function(){if(this._map){var t=this._map.latLngToLayerPoint(this._latlng),e=this._animated,i=o.point(this.options.offset);e&&o.DomUtil.setPosition(this._container,t),this._containerBottom=-i.y-(e?0:t.y),this._containerLeft=-Math.round(this._containerWidth/2)+i.x+(e?0:t.x),this._container.style.bottom=this._containerBottom+"px",this._container.style.left=this._containerLeft+"px"}},_zoomAnimation:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);o.DomUtil.setPosition(this._container,e)},_adjustPan:function(){if(this.options.autoPan){var t=this._map,e=this._container.offsetHeight,i=this._containerWidth,n=new o.Point(this._containerLeft,-e-this._containerBottom);this._animated&&n._add(o.DomUtil.getPosition(this._container));var s=t.layerPointToContainerPoint(n),a=o.point(this.options.autoPanPadding),r=o.point(this.options.autoPanPaddingTopLeft||a),h=o.point(this.options.autoPanPaddingBottomRight||a),l=t.getSize(),u=0,c=0;s.x+i+h.x>l.x&&(u=s.x+i-l.x+h.x),s.x-u-r.x<0&&(u=s.x-r.x),s.y+e+h.y>l.y&&(c=s.y+e-l.y+h.y),s.y-c-r.y<0&&(c=s.y-r.y),(u||c)&&t.fire("autopanstart").panBy([u,c])}},_onCloseButtonClick:function(t){this._close(),o.DomEvent.stop(t)}}),o.popup=function(t,e){return new o.Popup(t,e)},o.Map.include({openPopup:function(t,e,i){if(this.closePopup(),!(t instanceof o.Popup)){var n=t;t=new o.Popup(i).setLatLng(e).setContent(n)}return t._isOpen=!0,this._popup=t,this.addLayer(t)},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&(this.removeLayer(t),t._isOpen=!1),this}}),o.Marker.include({openPopup:function(){return this._popup&&this._map&&!this._map.hasLayer(this._popup)&&(this._popup.setLatLng(this._latlng),this._map.openPopup(this._popup)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(){return this._popup&&(this._popup._isOpen?this.closePopup():this.openPopup()),this},bindPopup:function(t,e){var i=o.point(this.options.icon.options.popupAnchor||[0,0]);return i=i.add(o.Popup.prototype.options.offset),e&&e.offset&&(i=i.add(e.offset)),e=o.extend({offset:i},e),this._popupHandlersAdded||(this.on("click",this.togglePopup,this).on("remove",this.closePopup,this).on("move",this._movePopup,this),this._popupHandlersAdded=!0),t instanceof o.Popup?(o.setOptions(t,e),this._popup=t,t._source=this):this._popup=new o.Popup(e,this).setContent(t),this},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},unbindPopup:function(){return this._popup&&(this._popup=null,this.off("click",this.togglePopup,this).off("remove",this.closePopup,this).off("move",this._movePopup,this),this._popupHandlersAdded=!1),this},getPopup:function(){return this._popup},_movePopup:function(t){this._popup.setLatLng(t.latlng)}}),o.LayerGroup=o.Class.extend({initialize:function(t){this._layers={};var e,i;if(t)for(e=0,i=t.length;i>e;e++)this.addLayer(t[e])},addLayer:function(t){var e=this.getLayerId(t);return this._layers[e]=t,this._map&&this._map.addLayer(t),this},removeLayer:function(t){var e=t in this._layers?t:this.getLayerId(t);return this._map&&this._layers[e]&&this._map.removeLayer(this._layers[e]),delete this._layers[e],this},hasLayer:function(t){return t?t in this._layers||this.getLayerId(t)in this._layers:!1},clearLayers:function(){return this.eachLayer(this.removeLayer,this),this},invoke:function(t){var e,i,n=Array.prototype.slice.call(arguments,1);for(e in this._layers)i=this._layers[e],i[t]&&i[t].apply(i,n);return this},onAdd:function(t){this._map=t,this.eachLayer(t.addLayer,t)},onRemove:function(t){this.eachLayer(t.removeLayer,t),this._map=null},addTo:function(t){return t.addLayer(this),this},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},getLayer:function(t){return this._layers[t]},getLayers:function(){var t=[];for(var e in this._layers)t.push(this._layers[e]);return t},setZIndex:function(t){return this.invoke("setZIndex",t)},getLayerId:function(t){return o.stamp(t)}}),o.layerGroup=function(t){return new o.LayerGroup(t)},o.FeatureGroup=o.LayerGroup.extend({includes:o.Mixin.Events,statics:{EVENTS:"click dblclick mouseover mouseout mousemove contextmenu popupopen popupclose"},addLayer:function(t){return this.hasLayer(t)?this:("on"in t&&t.on(o.FeatureGroup.EVENTS,this._propagateEvent,this),o.LayerGroup.prototype.addLayer.call(this,t),this._popupContent&&t.bindPopup&&t.bindPopup(this._popupContent,this._popupOptions),this.fire("layeradd",{layer:t}))},removeLayer:function(t){return this.hasLayer(t)?(t in this._layers&&(t=this._layers[t]),"off"in t&&t.off(o.FeatureGroup.EVENTS,this._propagateEvent,this),o.LayerGroup.prototype.removeLayer.call(this,t),this._popupContent&&this.invoke("unbindPopup"),this.fire("layerremove",{layer:t})):this},bindPopup:function(t,e){return this._popupContent=t,this._popupOptions=e,this.invoke("bindPopup",t,e)},openPopup:function(t){for(var e in this._layers){this._layers[e].openPopup(t);break}return this},setStyle:function(t){return this.invoke("setStyle",t)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var t=new o.LatLngBounds;return this.eachLayer(function(e){t.extend(e instanceof o.Marker?e.getLatLng():e.getBounds())}),t},_propagateEvent:function(t){t=o.extend({layer:t.target,target:this},t),this.fire(t.type,t)}}),o.featureGroup=function(t){return new o.FeatureGroup(t)},o.Path=o.Class.extend({includes:[o.Mixin.Events],statics:{CLIP_PADDING:function(){var e=o.Browser.mobile?1280:2e3,i=(e/Math.max(t.outerWidth,t.outerHeight)-1)/2;return Math.max(0,Math.min(.5,i))}()},options:{stroke:!0,color:"#0033ff",dashArray:null,lineCap:null,lineJoin:null,weight:5,opacity:.5,fill:!1,fillColor:null,fillOpacity:.2,clickable:!0},initialize:function(t){o.setOptions(this,t)},onAdd:function(t){this._map=t,this._container||(this._initElements(),this._initEvents()),this.projectLatlngs(),this._updatePath(),this._container&&this._map._pathRoot.appendChild(this._container),this.fire("add"),t.on({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},addTo:function(t){return t.addLayer(this),this},onRemove:function(t){t._pathRoot.removeChild(this._container),this.fire("remove"),this._map=null,o.Browser.vml&&(this._container=null,this._stroke=null,this._fill=null),t.off({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},projectLatlngs:function(){},setStyle:function(t){return o.setOptions(this,t),this._container&&this._updateStyle(),this},redraw:function(){return this._map&&(this.projectLatlngs(),this._updatePath()),this}}),o.Map.include({_updatePathViewport:function(){var t=o.Path.CLIP_PADDING,e=this.getSize(),i=o.DomUtil.getPosition(this._mapPane),n=i.multiplyBy(-1)._subtract(e.multiplyBy(t)._round()),s=n.add(e.multiplyBy(1+2*t)._round());this._pathViewport=new o.Bounds(n,s)}}),o.Path.SVG_NS="http://www.w3.org/2000/svg",o.Browser.svg=!(!e.createElementNS||!e.createElementNS(o.Path.SVG_NS,"svg").createSVGRect),o.Path=o.Path.extend({statics:{SVG:o.Browser.svg},bringToFront:function(){var t=this._map._pathRoot,e=this._container;return e&&t.lastChild!==e&&t.appendChild(e),this},bringToBack:function(){var t=this._map._pathRoot,e=this._container,i=t.firstChild;return e&&i!==e&&t.insertBefore(e,i),this},getPathString:function(){},_createElement:function(t){return e.createElementNS(o.Path.SVG_NS,t)},_initElements:function(){this._map._initPathRoot(),this._initPath(),this._initStyle()},_initPath:function(){this._container=this._createElement("g"),this._path=this._createElement("path"),this.options.className&&o.DomUtil.addClass(this._path,this.options.className),this._container.appendChild(this._path)},_initStyle:function(){this.options.stroke&&(this._path.setAttribute("stroke-linejoin","round"),this._path.setAttribute("stroke-linecap","round")),this.options.fill&&this._path.setAttribute("fill-rule","evenodd"),this.options.pointerEvents&&this._path.setAttribute("pointer-events",this.options.pointerEvents),this.options.clickable||this.options.pointerEvents||this._path.setAttribute("pointer-events","none"),this._updateStyle()},_updateStyle:function(){this.options.stroke?(this._path.setAttribute("stroke",this.options.color),this._path.setAttribute("stroke-opacity",this.options.opacity),this._path.setAttribute("stroke-width",this.options.weight),this.options.dashArray?this._path.setAttribute("stroke-dasharray",this.options.dashArray):this._path.removeAttribute("stroke-dasharray"),this.options.lineCap&&this._path.setAttribute("stroke-linecap",this.options.lineCap),this.options.lineJoin&&this._path.setAttribute("stroke-linejoin",this.options.lineJoin)):this._path.setAttribute("stroke","none"),this.options.fill?(this._path.setAttribute("fill",this.options.fillColor||this.options.color),this._path.setAttribute("fill-opacity",this.options.fillOpacity)):this._path.setAttribute("fill","none")},_updatePath:function(){var t=this.getPathString();t||(t="M0 0"),this._path.setAttribute("d",t)},_initEvents:function(){if(this.options.clickable){(o.Browser.svg||!o.Browser.vml)&&o.DomUtil.addClass(this._path,"leaflet-clickable"),o.DomEvent.on(this._container,"click",this._onMouseClick,this);for(var t=["dblclick","mousedown","mouseover","mouseout","mousemove","contextmenu"],e=0;e';var i=t.firstChild;return i.style.behavior="url(#default#VML)",i&&"object"==typeof i.adj}catch(n){return!1}}(),o.Path=o.Browser.svg||!o.Browser.vml?o.Path:o.Path.extend({statics:{VML:!0,CLIP_PADDING:.02},_createElement:function(){try{return e.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(t){return e.createElement("')}}catch(t){return function(t){return e.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),_initPath:function(){var t=this._container=this._createElement("shape");o.DomUtil.addClass(t,"leaflet-vml-shape"+(this.options.className?" "+this.options.className:"")),this.options.clickable&&o.DomUtil.addClass(t,"leaflet-clickable"),t.coordsize="1 1",this._path=this._createElement("path"),t.appendChild(this._path),this._map._pathRoot.appendChild(t)},_initStyle:function(){this._updateStyle()},_updateStyle:function(){var t=this._stroke,e=this._fill,i=this.options,n=this._container;n.stroked=i.stroke,n.filled=i.fill,i.stroke?(t||(t=this._stroke=this._createElement("stroke"),t.endcap="round",n.appendChild(t)),t.weight=i.weight+"px",t.color=i.color,t.opacity=i.opacity,i.dashArray?t.dashStyle=o.Util.isArray(i.dashArray)?i.dashArray.join(" "):i.dashArray.replace(/( *, *)/g," "):t.dashStyle="",i.lineCap&&(t.endcap=i.lineCap.replace("butt","flat")),i.lineJoin&&(t.joinstyle=i.lineJoin)):t&&(n.removeChild(t),this._stroke=null),i.fill?(e||(e=this._fill=this._createElement("fill"),n.appendChild(e)),e.color=i.fillColor||i.color,e.opacity=i.fillOpacity):e&&(n.removeChild(e),this._fill=null)},_updatePath:function(){var t=this._container.style;t.display="none",this._path.v=this.getPathString()+" ",t.display=""}}),o.Map.include(o.Browser.svg||!o.Browser.vml?{}:{_initPathRoot:function(){if(!this._pathRoot){var t=this._pathRoot=e.createElement("div");t.className="leaflet-vml-container",this._panes.overlayPane.appendChild(t),this.on("moveend",this._updatePathViewport),this._updatePathViewport()}}}),o.Browser.canvas=function(){return!!e.createElement("canvas").getContext}(),o.Path=o.Path.SVG&&!t.L_PREFER_CANVAS||!o.Browser.canvas?o.Path:o.Path.extend({statics:{CANVAS:!0,SVG:!1},redraw:function(){return this._map&&(this.projectLatlngs(),this._requestUpdate()),this},setStyle:function(t){return o.setOptions(this,t),this._map&&(this._updateStyle(),this._requestUpdate()),this},onRemove:function(t){t.off("viewreset",this.projectLatlngs,this).off("moveend",this._updatePath,this),this.options.clickable&&(this._map.off("click",this._onClick,this),this._map.off("mousemove",this._onMouseMove,this)),this._requestUpdate(),this.fire("remove"),this._map=null},_requestUpdate:function(){this._map&&!o.Path._updateRequest&&(o.Path._updateRequest=o.Util.requestAnimFrame(this._fireMapMoveEnd,this._map))},_fireMapMoveEnd:function(){o.Path._updateRequest=null,this.fire("moveend")},_initElements:function(){this._map._initPathRoot(),this._ctx=this._map._canvasCtx},_updateStyle:function(){var t=this.options;t.stroke&&(this._ctx.lineWidth=t.weight,this._ctx.strokeStyle=t.color),t.fill&&(this._ctx.fillStyle=t.fillColor||t.color),t.lineCap&&(this._ctx.lineCap=t.lineCap),t.lineJoin&&(this._ctx.lineJoin=t.lineJoin)},_drawPath:function(){var t,e,i,n,s,a;for(this._ctx.beginPath(),t=0,i=this._parts.length;i>t;t++){for(e=0,n=this._parts[t].length;n>e;e++)s=this._parts[t][e],a=(0===e?"move":"line")+"To",this._ctx[a](s.x,s.y);this instanceof o.Polygon&&this._ctx.closePath()}},_checkIfEmpty:function(){return!this._parts.length},_updatePath:function(){if(!this._checkIfEmpty()){var t=this._ctx,e=this.options;this._drawPath(),t.save(),this._updateStyle(),e.fill&&(t.globalAlpha=e.fillOpacity,t.fill(e.fillRule||"evenodd")),e.stroke&&(t.globalAlpha=e.opacity,t.stroke()),t.restore()}},_initEvents:function(){this.options.clickable&&(this._map.on("mousemove",this._onMouseMove,this),this._map.on("click dblclick contextmenu",this._fireMouseEvent,this))},_fireMouseEvent:function(t){this._containsPoint(t.layerPoint)&&this.fire(t.type,t)},_onMouseMove:function(t){this._map&&!this._map._animatingZoom&&(this._containsPoint(t.layerPoint)?(this._ctx.canvas.style.cursor="pointer",this._mouseInside=!0,this.fire("mouseover",t)):this._mouseInside&&(this._ctx.canvas.style.cursor="",this._mouseInside=!1,this.fire("mouseout",t)))}}),o.Map.include(o.Path.SVG&&!t.L_PREFER_CANVAS||!o.Browser.canvas?{}:{_initPathRoot:function(){var t,i=this._pathRoot;i||(i=this._pathRoot=e.createElement("canvas"),i.style.position="absolute",t=this._canvasCtx=i.getContext("2d"),t.lineCap="round",t.lineJoin="round",this._panes.overlayPane.appendChild(i),this.options.zoomAnimation&&(this._pathRoot.className="leaflet-zoom-animated",this.on("zoomanim",this._animatePathZoom),this.on("zoomend",this._endPathZoom)),this.on("moveend",this._updateCanvasViewport),this._updateCanvasViewport())},_updateCanvasViewport:function(){if(!this._pathZooming){this._updatePathViewport();var t=this._pathViewport,e=t.min,i=t.max.subtract(e),n=this._pathRoot;o.DomUtil.setPosition(n,e),n.width=i.x,n.height=i.y,n.getContext("2d").translate(-e.x,-e.y)}}}),o.LineUtil={simplify:function(t,e){if(!e||!t.length)return t.slice();var i=e*e;return t=this._reducePoints(t,i),t=this._simplifyDP(t,i)},pointToSegmentDistance:function(t,e,i){return Math.sqrt(this._sqClosestPointOnSegment(t,e,i,!0))},closestPointOnSegment:function(t,e,i){return this._sqClosestPointOnSegment(t,e,i)},_simplifyDP:function(t,e){var n=t.length,o=typeof Uint8Array!=i+""?Uint8Array:Array,s=new o(n);s[0]=s[n-1]=1,this._simplifyDPStep(t,s,e,0,n-1);var a,r=[];for(a=0;n>a;a++)s[a]&&r.push(t[a]);return r},_simplifyDPStep:function(t,e,i,n,o){var s,a,r,h=0;for(a=n+1;o-1>=a;a++)r=this._sqClosestPointOnSegment(t[a],t[n],t[o],!0),r>h&&(s=a,h=r);h>i&&(e[s]=1,this._simplifyDPStep(t,e,i,n,s),this._simplifyDPStep(t,e,i,s,o))},_reducePoints:function(t,e){for(var i=[t[0]],n=1,o=0,s=t.length;s>n;n++)this._sqDist(t[n],t[o])>e&&(i.push(t[n]),o=n);return s-1>o&&i.push(t[s-1]),i},clipSegment:function(t,e,i,n){var o,s,a,r=n?this._lastCode:this._getBitCode(t,i),h=this._getBitCode(e,i);for(this._lastCode=h;;){if(!(r|h))return[t,e];if(r&h)return!1;o=r||h,s=this._getEdgeIntersection(t,e,o,i),a=this._getBitCode(s,i),o===r?(t=s,r=a):(e=s,h=a)}},_getEdgeIntersection:function(t,e,i,n){var s=e.x-t.x,a=e.y-t.y,r=n.min,h=n.max;return 8&i?new o.Point(t.x+s*(h.y-t.y)/a,h.y):4&i?new o.Point(t.x+s*(r.y-t.y)/a,r.y):2&i?new o.Point(h.x,t.y+a*(h.x-t.x)/s):1&i?new o.Point(r.x,t.y+a*(r.x-t.x)/s):void 0},_getBitCode:function(t,e){var i=0;return t.xe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i},_sqDist:function(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n},_sqClosestPointOnSegment:function(t,e,i,n){var s,a=e.x,r=e.y,h=i.x-a,l=i.y-r,u=h*h+l*l;return u>0&&(s=((t.x-a)*h+(t.y-r)*l)/u,s>1?(a=i.x,r=i.y):s>0&&(a+=h*s,r+=l*s)),h=t.x-a,l=t.y-r,n?h*h+l*l:new o.Point(a,r)}},o.Polyline=o.Path.extend({initialize:function(t,e){o.Path.prototype.initialize.call(this,e),this._latlngs=this._convertLatLngs(t)},options:{smoothFactor:1,noClip:!1},projectLatlngs:function(){this._originalPoints=[];for(var t=0,e=this._latlngs.length;e>t;t++)this._originalPoints[t]=this._map.latLngToLayerPoint(this._latlngs[t])},getPathString:function(){for(var t=0,e=this._parts.length,i="";e>t;t++)i+=this._getPathPartStr(this._parts[t]);return i},getLatLngs:function(){return this._latlngs},setLatLngs:function(t){return this._latlngs=this._convertLatLngs(t),this.redraw()},addLatLng:function(t){return this._latlngs.push(o.latLng(t)),this.redraw()},spliceLatLngs:function(){var t=[].splice.apply(this._latlngs,arguments);return this._convertLatLngs(this._latlngs,!0),this.redraw(),t},closestLayerPoint:function(t){for(var e,i,n=1/0,s=this._parts,a=null,r=0,h=s.length;h>r;r++)for(var l=s[r],u=1,c=l.length;c>u;u++){e=l[u-1],i=l[u];var d=o.LineUtil._sqClosestPointOnSegment(t,e,i,!0);n>d&&(n=d,a=o.LineUtil._sqClosestPointOnSegment(t,e,i))}return a&&(a.distance=Math.sqrt(n)),a},getBounds:function(){return new o.LatLngBounds(this.getLatLngs())},_convertLatLngs:function(t,e){var i,n,s=e?t:[];for(i=0,n=t.length;n>i;i++){if(o.Util.isArray(t[i])&&"number"!=typeof t[i][0])return;s[i]=o.latLng(t[i])}return s},_initEvents:function(){o.Path.prototype._initEvents.call(this)},_getPathPartStr:function(t){for(var e,i=o.Path.VML,n=0,s=t.length,a="";s>n;n++)e=t[n],i&&e._round(),a+=(n?"L":"M")+e.x+" "+e.y;return a},_clipPoints:function(){var t,e,i,n=this._originalPoints,s=n.length;if(this.options.noClip)return void(this._parts=[n]);this._parts=[];var a=this._parts,r=this._map._pathViewport,h=o.LineUtil;for(t=0,e=0;s-1>t;t++)i=h.clipSegment(n[t],n[t+1],r,t),i&&(a[e]=a[e]||[],a[e].push(i[0]),(i[1]!==n[t+1]||t===s-2)&&(a[e].push(i[1]),e++))},_simplifyPoints:function(){for(var t=this._parts,e=o.LineUtil,i=0,n=t.length;n>i;i++)t[i]=e.simplify(t[i],this.options.smoothFactor)},_updatePath:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),o.Path.prototype._updatePath.call(this))}}),o.polyline=function(t,e){return new o.Polyline(t,e)},o.PolyUtil={},o.PolyUtil.clipPolygon=function(t,e){var i,n,s,a,r,h,l,u,c,d=[1,4,2,8],p=o.LineUtil;for(n=0,l=t.length;l>n;n++)t[n]._code=p._getBitCode(t[n],e);for(a=0;4>a;a++){for(u=d[a],i=[],n=0,l=t.length,s=l-1;l>n;s=n++)r=t[n],h=t[s],r._code&u?h._code&u||(c=p._getEdgeIntersection(h,r,u,e),c._code=p._getBitCode(c,e),i.push(c)):(h._code&u&&(c=p._getEdgeIntersection(h,r,u,e),c._code=p._getBitCode(c,e),i.push(c)),i.push(r));t=i}return t},o.Polygon=o.Polyline.extend({options:{fill:!0},initialize:function(t,e){o.Polyline.prototype.initialize.call(this,t,e),this._initWithHoles(t)},_initWithHoles:function(t){var e,i,n;if(t&&o.Util.isArray(t[0])&&"number"!=typeof t[0][0])for(this._latlngs=this._convertLatLngs(t[0]),this._holes=t.slice(1),e=0,i=this._holes.length;i>e;e++)n=this._holes[e]=this._convertLatLngs(this._holes[e]),n[0].equals(n[n.length-1])&&n.pop();t=this._latlngs,t.length>=2&&t[0].equals(t[t.length-1])&&t.pop()},projectLatlngs:function(){if(o.Polyline.prototype.projectLatlngs.call(this),this._holePoints=[],this._holes){var t,e,i,n;for(t=0,i=this._holes.length;i>t;t++)for(this._holePoints[t]=[],e=0,n=this._holes[t].length;n>e;e++)this._holePoints[t][e]=this._map.latLngToLayerPoint(this._holes[t][e])}},setLatLngs:function(t){return t&&o.Util.isArray(t[0])&&"number"!=typeof t[0][0]?(this._initWithHoles(t),this.redraw()):o.Polyline.prototype.setLatLngs.call(this,t)},_clipPoints:function(){var t=this._originalPoints,e=[];if(this._parts=[t].concat(this._holePoints),!this.options.noClip){for(var i=0,n=this._parts.length;n>i;i++){var s=o.PolyUtil.clipPolygon(this._parts[i],this._map._pathViewport);s.length&&e.push(s)}this._parts=e}},_getPathPartStr:function(t){var e=o.Polyline.prototype._getPathPartStr.call(this,t);return e+(o.Browser.svg?"z":"x")}}),o.polygon=function(t,e){return new o.Polygon(t,e)},function(){function t(t){return o.FeatureGroup.extend({initialize:function(t,e){this._layers={},this._options=e,this.setLatLngs(t)},setLatLngs:function(e){var i=0,n=e.length;for(this.eachLayer(function(t){n>i?t.setLatLngs(e[i++]):this.removeLayer(t)},this);n>i;)this.addLayer(new t(e[i++],this._options));return this},getLatLngs:function(){var t=[];return this.eachLayer(function(e){t.push(e.getLatLngs())}),t}})}o.MultiPolyline=t(o.Polyline),o.MultiPolygon=t(o.Polygon),o.multiPolyline=function(t,e){return new o.MultiPolyline(t,e)},o.multiPolygon=function(t,e){return new o.MultiPolygon(t,e)}}(),o.Rectangle=o.Polygon.extend({initialize:function(t,e){o.Polygon.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return t=o.latLngBounds(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}}),o.rectangle=function(t,e){return new o.Rectangle(t,e)},o.Circle=o.Path.extend({initialize:function(t,e,i){o.Path.prototype.initialize.call(this,i),this._latlng=o.latLng(t),this._mRadius=e},options:{fill:!0},setLatLng:function(t){return this._latlng=o.latLng(t),this.redraw()},setRadius:function(t){return this._mRadius=t,this.redraw()},projectLatlngs:function(){var t=this._getLngRadius(),e=this._latlng,i=this._map.latLngToLayerPoint([e.lat,e.lng-t]);this._point=this._map.latLngToLayerPoint(e),this._radius=Math.max(this._point.x-i.x,1)},getBounds:function(){var t=this._getLngRadius(),e=this._mRadius/40075017*360,i=this._latlng;return new o.LatLngBounds([i.lat-e,i.lng-t],[i.lat+e,i.lng+t])},getLatLng:function(){return this._latlng},getPathString:function(){var t=this._point,e=this._radius;return this._checkIfEmpty()?"":o.Browser.svg?"M"+t.x+","+(t.y-e)+"A"+e+","+e+",0,1,1,"+(t.x-.1)+","+(t.y-e)+" z":(t._round(),e=Math.round(e),"AL "+t.x+","+t.y+" "+e+","+e+" 0,23592600")},getRadius:function(){return this._mRadius},_getLatRadius:function(){return this._mRadius/40075017*360},_getLngRadius:function(){return this._getLatRadius()/Math.cos(o.LatLng.DEG_TO_RAD*this._latlng.lat)},_checkIfEmpty:function(){if(!this._map)return!1;var t=this._map._pathViewport,e=this._radius,i=this._point;return i.x-e>t.max.x||i.y-e>t.max.y||i.x+ei;i++)for(l=this._parts[i],n=0,r=l.length,s=r-1;r>n;s=n++)if((e||0!==n)&&(h=o.LineUtil.pointToSegmentDistance(t,l[s],l[n]),u>=h))return!0;return!1}}:{}),o.Polygon.include(o.Path.CANVAS?{_containsPoint:function(t){var e,i,n,s,a,r,h,l,u=!1;if(o.Polyline.prototype._containsPoint.call(this,t,!0))return!0;for(s=0,h=this._parts.length;h>s;s++)for(e=this._parts[s],a=0,l=e.length,r=l-1;l>a;r=a++)i=e[a],n=e[r],i.y>t.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(u=!u);return u}}:{}),o.Circle.include(o.Path.CANVAS?{_drawPath:function(){var t=this._point;this._ctx.beginPath(),this._ctx.arc(t.x,t.y,this._radius,0,2*Math.PI,!1)},_containsPoint:function(t){var e=this._point,i=this.options.stroke?this.options.weight/2:0;return t.distanceTo(e)<=this._radius+i}}:{}),o.CircleMarker.include(o.Path.CANVAS?{_updateStyle:function(){o.Path.prototype._updateStyle.call(this)}}:{}),o.GeoJSON=o.FeatureGroup.extend({initialize:function(t,e){o.setOptions(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,s=o.Util.isArray(t)?t:t.features;if(s){for(e=0,i=s.length;i>e;e++)n=s[e],(n.geometries||n.geometry||n.features||n.coordinates)&&this.addData(s[e]);return this}var a=this.options;if(!a.filter||a.filter(t)){var r=o.GeoJSON.geometryToLayer(t,a.pointToLayer,a.coordsToLatLng,a);return r.feature=o.GeoJSON.asFeature(t),r.defaultOptions=r.options,this.resetStyle(r),a.onEachFeature&&a.onEachFeature(t,r),this.addLayer(r)}},resetStyle:function(t){var e=this.options.style;e&&(o.Util.extend(t.options,t.defaultOptions),this._setLayerStyle(t,e))},setStyle:function(t){this.eachLayer(function(e){this._setLayerStyle(e,t)},this)},_setLayerStyle:function(t,e){"function"==typeof e&&(e=e(t.feature)),t.setStyle&&t.setStyle(e)}}),o.extend(o.GeoJSON,{geometryToLayer:function(t,e,i,n){var s,a,r,h,l="Feature"===t.type?t.geometry:t,u=l.coordinates,c=[];switch(i=i||this.coordsToLatLng,l.type){case"Point":return s=i(u),e?e(t,s):new o.Marker(s);case"MultiPoint":for(r=0,h=u.length;h>r;r++)s=i(u[r]),c.push(e?e(t,s):new o.Marker(s));return new o.FeatureGroup(c);case"LineString":return a=this.coordsToLatLngs(u,0,i),new o.Polyline(a,n);case"Polygon":if(2===u.length&&!u[1].length)throw new Error("Invalid GeoJSON object.");return a=this.coordsToLatLngs(u,1,i),new o.Polygon(a,n);case"MultiLineString":return a=this.coordsToLatLngs(u,1,i),new o.MultiPolyline(a,n);case"MultiPolygon":return a=this.coordsToLatLngs(u,2,i),new o.MultiPolygon(a,n);case"GeometryCollection":for(r=0,h=l.geometries.length;h>r;r++)c.push(this.geometryToLayer({geometry:l.geometries[r],type:"Feature",properties:t.properties},e,i,n));return new o.FeatureGroup(c);default:throw new Error("Invalid GeoJSON object.")}},coordsToLatLng:function(t){return new o.LatLng(t[1],t[0],t[2])},coordsToLatLngs:function(t,e,i){var n,o,s,a=[];for(o=0,s=t.length;s>o;o++)n=e?this.coordsToLatLngs(t[o],e-1,i):(i||this.coordsToLatLng)(t[o]),a.push(n);return a},latLngToCoords:function(t){var e=[t.lng,t.lat];return t.alt!==i&&e.push(t.alt),e},latLngsToCoords:function(t){for(var e=[],i=0,n=t.length;n>i;i++)e.push(o.GeoJSON.latLngToCoords(t[i]));return e},getFeature:function(t,e){return t.feature?o.extend({},t.feature,{geometry:e}):o.GeoJSON.asFeature(e)},asFeature:function(t){return"Feature"===t.type?t:{type:"Feature",properties:{},geometry:t}}});var a={toGeoJSON:function(){return o.GeoJSON.getFeature(this,{type:"Point",coordinates:o.GeoJSON.latLngToCoords(this.getLatLng())})}};o.Marker.include(a),o.Circle.include(a),o.CircleMarker.include(a),o.Polyline.include({toGeoJSON:function(){return o.GeoJSON.getFeature(this,{type:"LineString",coordinates:o.GeoJSON.latLngsToCoords(this.getLatLngs())})}}),o.Polygon.include({toGeoJSON:function(){var t,e,i,n=[o.GeoJSON.latLngsToCoords(this.getLatLngs())];if(n[0].push(n[0][0]),this._holes)for(t=0,e=this._holes.length;e>t;t++)i=o.GeoJSON.latLngsToCoords(this._holes[t]),i.push(i[0]),n.push(i);return o.GeoJSON.getFeature(this,{type:"Polygon",coordinates:n})}}),function(){function t(t){return function(){var e=[];return this.eachLayer(function(t){e.push(t.toGeoJSON().geometry.coordinates)}),o.GeoJSON.getFeature(this,{type:t,coordinates:e})}}o.MultiPolyline.include({toGeoJSON:t("MultiLineString")}),o.MultiPolygon.include({toGeoJSON:t("MultiPolygon")}),o.LayerGroup.include({toGeoJSON:function(){var e,i=this.feature&&this.feature.geometry,n=[];if(i&&"MultiPoint"===i.type)return t("MultiPoint").call(this);var s=i&&"GeometryCollection"===i.type;return this.eachLayer(function(t){t.toGeoJSON&&(e=t.toGeoJSON(),n.push(s?e.geometry:o.GeoJSON.asFeature(e)))}),s?o.GeoJSON.getFeature(this,{geometries:n,type:"GeometryCollection"}):{type:"FeatureCollection",features:n}}})}(),o.geoJson=function(t,e){return new o.GeoJSON(t,e)},o.DomEvent={addListener:function(t,e,i,n){var s,a,r,h=o.stamp(i),l="_leaflet_"+e+h;return t[l]?this:(s=function(e){return i.call(n||t,e||o.DomEvent._getEvent())},o.Browser.pointer&&0===e.indexOf("touch")?this.addPointerListener(t,e,s,h):(o.Browser.touch&&"dblclick"===e&&this.addDoubleTapListener&&this.addDoubleTapListener(t,s,h),"addEventListener"in t?"mousewheel"===e?(t.addEventListener("DOMMouseScroll",s,!1),t.addEventListener(e,s,!1)):"mouseenter"===e||"mouseleave"===e?(a=s,r="mouseenter"===e?"mouseover":"mouseout",s=function(e){return o.DomEvent._checkMouse(t,e)?a(e):void 0},t.addEventListener(r,s,!1)):"click"===e&&o.Browser.android?(a=s,s=function(t){return o.DomEvent._filterClick(t,a)},t.addEventListener(e,s,!1)):t.addEventListener(e,s,!1):"attachEvent"in t&&t.attachEvent("on"+e,s),t[l]=s,this))},removeListener:function(t,e,i){var n=o.stamp(i),s="_leaflet_"+e+n,a=t[s];return a?(o.Browser.pointer&&0===e.indexOf("touch")?this.removePointerListener(t,e,n):o.Browser.touch&&"dblclick"===e&&this.removeDoubleTapListener?this.removeDoubleTapListener(t,n):"removeEventListener"in t?"mousewheel"===e?(t.removeEventListener("DOMMouseScroll",a,!1),t.removeEventListener(e,a,!1)):"mouseenter"===e||"mouseleave"===e?t.removeEventListener("mouseenter"===e?"mouseover":"mouseout",a,!1):t.removeEventListener(e,a,!1):"detachEvent"in t&&t.detachEvent("on"+e,a),t[s]=null,this):this},stopPropagation:function(t){return t.stopPropagation?t.stopPropagation():t.cancelBubble=!0,o.DomEvent._skipped(t),this},disableScrollPropagation:function(t){var e=o.DomEvent.stopPropagation;return o.DomEvent.on(t,"mousewheel",e).on(t,"MozMousePixelScroll",e)},disableClickPropagation:function(t){for(var e=o.DomEvent.stopPropagation,i=o.Draggable.START.length-1;i>=0;i--)o.DomEvent.on(t,o.Draggable.START[i],e);return o.DomEvent.on(t,"click",o.DomEvent._fakeStop).on(t,"dblclick",e)},preventDefault:function(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this},stop:function(t){return o.DomEvent.preventDefault(t).stopPropagation(t)},getMousePosition:function(t,e){if(!e)return new o.Point(t.clientX,t.clientY);var i=e.getBoundingClientRect();return new o.Point(t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop)},getWheelDelta:function(t){var e=0;return t.wheelDelta&&(e=t.wheelDelta/120),t.detail&&(e=-t.detail/3),e},_skipEvents:{},_fakeStop:function(t){o.DomEvent._skipEvents[t.type]=!0},_skipped:function(t){var e=this._skipEvents[t.type];return this._skipEvents[t.type]=!1,e},_checkMouse:function(t,e){var i=e.relatedTarget;if(!i)return!0;try{for(;i&&i!==t;)i=i.parentNode}catch(n){return!1}return i!==t},_getEvent:function(){var e=t.event;if(!e)for(var i=arguments.callee.caller;i&&(e=i.arguments[0],!e||t.Event!==e.constructor);)i=i.caller;return e},_filterClick:function(t,e){var i=t.timeStamp||t.originalEvent.timeStamp,n=o.DomEvent._lastClick&&i-o.DomEvent._lastClick;return n&&n>100&&500>n||t.target._simulatedClick&&!t._simulated?void o.DomEvent.stop(t):(o.DomEvent._lastClick=i,e(t))}},o.DomEvent.on=o.DomEvent.addListener,o.DomEvent.off=o.DomEvent.removeListener,o.Draggable=o.Class.extend({includes:o.Mixin.Events,statics:{START:o.Browser.touch?["touchstart","mousedown"]:["mousedown"],END:{mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},MOVE:{mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"}},initialize:function(t,e){this._element=t,this._dragStartTarget=e||t},enable:function(){if(!this._enabled){for(var t=o.Draggable.START.length-1;t>=0;t--)o.DomEvent.on(this._dragStartTarget,o.Draggable.START[t],this._onDown,this);this._enabled=!0}},disable:function(){if(this._enabled){for(var t=o.Draggable.START.length-1;t>=0;t--)o.DomEvent.off(this._dragStartTarget,o.Draggable.START[t],this._onDown,this);this._enabled=!1,this._moved=!1}},_onDown:function(t){if(this._moved=!1,!t.shiftKey&&(1===t.which||1===t.button||t.touches)&&(o.DomEvent.stopPropagation(t),!o.Draggable._disabled&&(o.DomUtil.disableImageDrag(),o.DomUtil.disableTextSelection(),!this._moving))){var i=t.touches?t.touches[0]:t;this._startPoint=new o.Point(i.clientX,i.clientY),this._startPos=this._newPos=o.DomUtil.getPosition(this._element),o.DomEvent.on(e,o.Draggable.MOVE[t.type],this._onMove,this).on(e,o.Draggable.END[t.type],this._onUp,this)}},_onMove:function(t){if(t.touches&&t.touches.length>1)return void(this._moved=!0);var i=t.touches&&1===t.touches.length?t.touches[0]:t,n=new o.Point(i.clientX,i.clientY),s=n.subtract(this._startPoint);(s.x||s.y)&&(o.Browser.touch&&Math.abs(s.x)+Math.abs(s.y)<3||(o.DomEvent.preventDefault(t),this._moved||(this.fire("dragstart"),this._moved=!0,this._startPos=o.DomUtil.getPosition(this._element).subtract(s),o.DomUtil.addClass(e.body,"leaflet-dragging"),this._lastTarget=t.target||t.srcElement,o.DomUtil.addClass(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(s),this._moving=!0,o.Util.cancelAnimFrame(this._animRequest),this._animRequest=o.Util.requestAnimFrame(this._updatePosition,this,!0,this._dragStartTarget)))},_updatePosition:function(){this.fire("predrag"),o.DomUtil.setPosition(this._element,this._newPos),this.fire("drag")},_onUp:function(){o.DomUtil.removeClass(e.body,"leaflet-dragging"),this._lastTarget&&(o.DomUtil.removeClass(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null);for(var t in o.Draggable.MOVE)o.DomEvent.off(e,o.Draggable.MOVE[t],this._onMove).off(e,o.Draggable.END[t],this._onUp);o.DomUtil.enableImageDrag(),o.DomUtil.enableTextSelection(),this._moved&&this._moving&&(o.Util.cancelAnimFrame(this._animRequest),this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1}}),o.Handler=o.Class.extend({initialize:function(t){this._map=t},enable:function(){this._enabled||(this._enabled=!0,this.addHooks())},disable:function(){this._enabled&&(this._enabled=!1,this.removeHooks())},enabled:function(){return!!this._enabled}}),o.Map.mergeOptions({dragging:!0,inertia:!o.Browser.android23,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,inertiaThreshold:o.Browser.touch?32:18,easeLinearity:.25,worldCopyJump:!1}),o.Map.Drag=o.Handler.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new o.Draggable(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDrag,this),t.on("viewreset",this._onViewReset,this),t.whenReady(this._onViewReset,this))}this._draggable.enable()},removeHooks:function(){this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){var t=this._map;t._panAnim&&t._panAnim.stop(),t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(){if(this._map.options.inertia){var t=this._lastTime=+new Date,e=this._lastPos=this._draggable._newPos;this._positions.push(e),this._times.push(t),t-this._times[0]>200&&(this._positions.shift(),this._times.shift())}this._map.fire("move").fire("drag")},_onViewReset:function(){var t=this._map.getSize()._divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.project([0,180]).x},_onPreDrag:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,a=Math.abs(o+i)i.inertiaThreshold||!this._positions[0];if(e.fire("dragend",t),s)e.fire("moveend");else{var a=this._lastPos.subtract(this._positions[0]),r=(this._lastTime+n-this._times[0])/1e3,h=i.easeLinearity,l=a.multiplyBy(h/r),u=l.distanceTo([0,0]),c=Math.min(i.inertiaMaxSpeed,u),d=l.multiplyBy(c/u),p=c/(i.inertiaDeceleration*h),_=d.multiplyBy(-p/2).round();_.x&&_.y?(_=e._limitOffset(_,e.options.maxBounds),o.Util.requestAnimFrame(function(){e.panBy(_,{duration:p,easeLinearity:h,noMoveStart:!0})})):e.fire("moveend")}}}),o.Map.addInitHook("addHandler","dragging",o.Map.Drag),o.Map.mergeOptions({doubleClickZoom:!0}),o.Map.DoubleClickZoom=o.Handler.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom()+(t.originalEvent.shiftKey?-1:1);"center"===e.options.doubleClickZoom?e.setZoom(i):e.setZoomAround(t.containerPoint,i)}}),o.Map.addInitHook("addHandler","doubleClickZoom",o.Map.DoubleClickZoom),o.Map.mergeOptions({scrollWheelZoom:!0}),o.Map.ScrollWheelZoom=o.Handler.extend({addHooks:function(){o.DomEvent.on(this._map._container,"mousewheel",this._onWheelScroll,this),o.DomEvent.on(this._map._container,"MozMousePixelScroll",o.DomEvent.preventDefault),this._delta=0},removeHooks:function(){o.DomEvent.off(this._map._container,"mousewheel",this._onWheelScroll),o.DomEvent.off(this._map._container,"MozMousePixelScroll",o.DomEvent.preventDefault)},_onWheelScroll:function(t){var e=o.DomEvent.getWheelDelta(t);this._delta+=e,this._lastMousePos=this._map.mouseEventToContainerPoint(t),this._startTime||(this._startTime=+new Date);var i=Math.max(40-(+new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(o.bind(this._performZoom,this),i),o.DomEvent.preventDefault(t),o.DomEvent.stopPropagation(t)},_performZoom:function(){var t=this._map,e=this._delta,i=t.getZoom();e=e>0?Math.ceil(e):Math.floor(e),e=Math.max(Math.min(e,4),-4),e=t._limitZoom(i+e)-i,this._delta=0,this._startTime=null,e&&("center"===t.options.scrollWheelZoom?t.setZoom(i+e):t.setZoomAround(this._lastMousePos,i+e))}}),o.Map.addInitHook("addHandler","scrollWheelZoom",o.Map.ScrollWheelZoom),o.extend(o.DomEvent,{_touchstart:o.Browser.msPointer?"MSPointerDown":o.Browser.pointer?"pointerdown":"touchstart",_touchend:o.Browser.msPointer?"MSPointerUp":o.Browser.pointer?"pointerup":"touchend",addDoubleTapListener:function(t,i,n){function s(t){var e;if(o.Browser.pointer?(_.push(t.pointerId),e=_.length):e=t.touches.length,!(e>1)){var i=Date.now(),n=i-(r||i);h=t.touches?t.touches[0]:t,l=n>0&&u>=n,r=i}}function a(t){if(o.Browser.pointer){var e=_.indexOf(t.pointerId);if(-1===e)return;_.splice(e,1)}if(l){if(o.Browser.pointer){var n,s={};for(var a in h)n=h[a],"function"==typeof n?s[a]=n.bind(h):s[a]=n;h=s}h.type="dblclick",i(h),r=null}}var r,h,l=!1,u=250,c="_leaflet_",d=this._touchstart,p=this._touchend,_=[];t[c+d+n]=s,t[c+p+n]=a;var m=o.Browser.pointer?e.documentElement:t;return t.addEventListener(d,s,!1),m.addEventListener(p,a,!1),o.Browser.pointer&&m.addEventListener(o.DomEvent.POINTER_CANCEL,a,!1),this},removeDoubleTapListener:function(t,i){var n="_leaflet_";return t.removeEventListener(this._touchstart,t[n+this._touchstart+i],!1),(o.Browser.pointer?e.documentElement:t).removeEventListener(this._touchend,t[n+this._touchend+i],!1),o.Browser.pointer&&e.documentElement.removeEventListener(o.DomEvent.POINTER_CANCEL,t[n+this._touchend+i],!1),this}}),o.extend(o.DomEvent,{POINTER_DOWN:o.Browser.msPointer?"MSPointerDown":"pointerdown",POINTER_MOVE:o.Browser.msPointer?"MSPointerMove":"pointermove",POINTER_UP:o.Browser.msPointer?"MSPointerUp":"pointerup",POINTER_CANCEL:o.Browser.msPointer?"MSPointerCancel":"pointercancel",_pointers:[],_pointerDocumentListener:!1,addPointerListener:function(t,e,i,n){switch(e){case"touchstart":return this.addPointerListenerStart(t,e,i,n); +case"touchend":return this.addPointerListenerEnd(t,e,i,n);case"touchmove":return this.addPointerListenerMove(t,e,i,n);default:throw"Unknown touch event type"}},addPointerListenerStart:function(t,i,n,s){var a="_leaflet_",r=this._pointers,h=function(t){"mouse"!==t.pointerType&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&o.DomEvent.preventDefault(t);for(var e=!1,i=0;i1))&&(this._moved||(o.DomUtil.addClass(e._mapPane,"leaflet-touching"),e.fire("movestart").fire("zoomstart"),this._moved=!0),o.Util.cancelAnimFrame(this._animRequest),this._animRequest=o.Util.requestAnimFrame(this._updateOnMove,this,!0,this._map._container),o.DomEvent.preventDefault(t))}},_updateOnMove:function(){var t=this._map,e=this._getScaleOrigin(),i=t.layerPointToLatLng(e),n=t.getScaleZoom(this._scale);t._animateZoom(i,n,this._startCenter,this._scale,this._delta,!1,!0)},_onTouchEnd:function(){if(!this._moved||!this._zooming)return void(this._zooming=!1);var t=this._map;this._zooming=!1,o.DomUtil.removeClass(t._mapPane,"leaflet-touching"),o.Util.cancelAnimFrame(this._animRequest),o.DomEvent.off(e,"touchmove",this._onTouchMove).off(e,"touchend",this._onTouchEnd);var i=this._getScaleOrigin(),n=t.layerPointToLatLng(i),s=t.getZoom(),a=t.getScaleZoom(this._scale)-s,r=a>0?Math.ceil(a):Math.floor(a),h=t._limitZoom(s+r),l=t.getZoomScale(h)/this._scale;t._animateZoom(n,h,i,l)},_getScaleOrigin:function(){var t=this._centerOffset.subtract(this._delta).divideBy(this._scale);return this._startCenter.add(t)}}),o.Map.addInitHook("addHandler","touchZoom",o.Map.TouchZoom),o.Map.mergeOptions({tap:!0,tapTolerance:15}),o.Map.Tap=o.Handler.extend({addHooks:function(){o.DomEvent.on(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){o.DomEvent.off(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(o.DomEvent.preventDefault(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var i=t.touches[0],n=i.target;this._startPos=this._newPos=new o.Point(i.clientX,i.clientY),n.tagName&&"a"===n.tagName.toLowerCase()&&o.DomUtil.addClass(n,"leaflet-active"),this._holdTimeout=setTimeout(o.bind(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",i))},this),1e3),o.DomEvent.on(e,"touchmove",this._onMove,this).on(e,"touchend",this._onUp,this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),o.DomEvent.off(e,"touchmove",this._onMove,this).off(e,"touchend",this._onUp,this),this._fireClick&&t&&t.changedTouches){var i=t.changedTouches[0],n=i.target;n&&n.tagName&&"a"===n.tagName.toLowerCase()&&o.DomUtil.removeClass(n,"leaflet-active"),this._isTapValid()&&this._simulateEvent("click",i)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var e=t.touches[0];this._newPos=new o.Point(e.clientX,e.clientY)},_simulateEvent:function(i,n){var o=e.createEvent("MouseEvents");o._simulated=!0,n.target._simulatedClick=!0,o.initMouseEvent(i,!0,!0,t,1,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),n.target.dispatchEvent(o)}}),o.Browser.touch&&!o.Browser.pointer&&o.Map.addInitHook("addHandler","tap",o.Map.Tap),o.Map.mergeOptions({boxZoom:!0}),o.Map.BoxZoom=o.Handler.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._moved=!1},addHooks:function(){o.DomEvent.on(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){o.DomEvent.off(this._container,"mousedown",this._onMouseDown),this._moved=!1},moved:function(){return this._moved},_onMouseDown:function(t){return this._moved=!1,!t.shiftKey||1!==t.which&&1!==t.button?!1:(o.DomUtil.disableTextSelection(),o.DomUtil.disableImageDrag(),this._startLayerPoint=this._map.mouseEventToLayerPoint(t),void o.DomEvent.on(e,"mousemove",this._onMouseMove,this).on(e,"mouseup",this._onMouseUp,this).on(e,"keydown",this._onKeyDown,this))},_onMouseMove:function(t){this._moved||(this._box=o.DomUtil.create("div","leaflet-zoom-box",this._pane),o.DomUtil.setPosition(this._box,this._startLayerPoint),this._container.style.cursor="crosshair",this._map.fire("boxzoomstart"));var e=this._startLayerPoint,i=this._box,n=this._map.mouseEventToLayerPoint(t),s=n.subtract(e),a=new o.Point(Math.min(n.x,e.x),Math.min(n.y,e.y));o.DomUtil.setPosition(i,a),this._moved=!0,i.style.width=Math.max(0,Math.abs(s.x)-4)+"px",i.style.height=Math.max(0,Math.abs(s.y)-4)+"px"},_finish:function(){this._moved&&(this._pane.removeChild(this._box),this._container.style.cursor=""),o.DomUtil.enableTextSelection(),o.DomUtil.enableImageDrag(),o.DomEvent.off(e,"mousemove",this._onMouseMove).off(e,"mouseup",this._onMouseUp).off(e,"keydown",this._onKeyDown)},_onMouseUp:function(t){this._finish();var e=this._map,i=e.mouseEventToLayerPoint(t);if(!this._startLayerPoint.equals(i)){var n=new o.LatLngBounds(e.layerPointToLatLng(this._startLayerPoint),e.layerPointToLatLng(i));e.fitBounds(n),e.fire("boxzoomend",{boxZoomBounds:n})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}}),o.Map.addInitHook("addHandler","boxZoom",o.Map.BoxZoom),o.Map.mergeOptions({keyboard:!0,keyboardPanOffset:80,keyboardZoomOffset:1}),o.Map.Keyboard=o.Handler.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,173]},initialize:function(t){this._map=t,this._setPanOffset(t.options.keyboardPanOffset),this._setZoomOffset(t.options.keyboardZoomOffset)},addHooks:function(){var t=this._map._container;-1===t.tabIndex&&(t.tabIndex="0"),o.DomEvent.on(t,"focus",this._onFocus,this).on(t,"blur",this._onBlur,this).on(t,"mousedown",this._onMouseDown,this),this._map.on("focus",this._addHooks,this).on("blur",this._removeHooks,this)},removeHooks:function(){this._removeHooks();var t=this._map._container;o.DomEvent.off(t,"focus",this._onFocus,this).off(t,"blur",this._onBlur,this).off(t,"mousedown",this._onMouseDown,this),this._map.off("focus",this._addHooks,this).off("blur",this._removeHooks,this)},_onMouseDown:function(){if(!this._focused){var i=e.body,n=e.documentElement,o=i.scrollTop||n.scrollTop,s=i.scrollLeft||n.scrollLeft;this._map._container.focus(),t.scrollTo(s,o)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanOffset:function(t){var e,i,n=this._panKeys={},o=this.keyCodes;for(e=0,i=o.left.length;i>e;e++)n[o.left[e]]=[-1*t,0];for(e=0,i=o.right.length;i>e;e++)n[o.right[e]]=[t,0];for(e=0,i=o.down.length;i>e;e++)n[o.down[e]]=[0,t];for(e=0,i=o.up.length;i>e;e++)n[o.up[e]]=[0,-1*t]},_setZoomOffset:function(t){var e,i,n=this._zoomKeys={},o=this.keyCodes;for(e=0,i=o.zoomIn.length;i>e;e++)n[o.zoomIn[e]]=t;for(e=0,i=o.zoomOut.length;i>e;e++)n[o.zoomOut[e]]=-t},_addHooks:function(){o.DomEvent.on(e,"keydown",this._onKeyDown,this)},_removeHooks:function(){o.DomEvent.off(e,"keydown",this._onKeyDown,this)},_onKeyDown:function(t){var e=t.keyCode,i=this._map;if(e in this._panKeys){if(i._panAnim&&i._panAnim._inProgress)return;i.panBy(this._panKeys[e]),i.options.maxBounds&&i.panInsideBounds(i.options.maxBounds)}else{if(!(e in this._zoomKeys))return;i.setZoom(i.getZoom()+this._zoomKeys[e])}o.DomEvent.stop(t)}}),o.Map.addInitHook("addHandler","keyboard",o.Map.Keyboard),o.Handler.MarkerDrag=o.Handler.extend({initialize:function(t){this._marker=t},addHooks:function(){var t=this._marker._icon;this._draggable||(this._draggable=new o.Draggable(t,t)),this._draggable.on("dragstart",this._onDragStart,this).on("drag",this._onDrag,this).on("dragend",this._onDragEnd,this),this._draggable.enable(),o.DomUtil.addClass(this._marker._icon,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off("dragstart",this._onDragStart,this).off("drag",this._onDrag,this).off("dragend",this._onDragEnd,this),this._draggable.disable(),o.DomUtil.removeClass(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){this._marker.closePopup().fire("movestart").fire("dragstart")},_onDrag:function(){var t=this._marker,e=t._shadow,i=o.DomUtil.getPosition(t._icon),n=t._map.layerPointToLatLng(i);e&&o.DomUtil.setPosition(e,i),t._latlng=n,t.fire("move",{latlng:n}).fire("drag")},_onDragEnd:function(t){this._marker.fire("moveend").fire("dragend",t)}}),o.Control=o.Class.extend({options:{position:"topright"},initialize:function(t){o.setOptions(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i];return o.DomUtil.addClass(e,"leaflet-control"),-1!==i.indexOf("bottom")?n.insertBefore(e,n.firstChild):n.appendChild(e),this},removeFrom:function(t){var e=this.getPosition(),i=t._controlCorners[e];return i.removeChild(this._container),this._map=null,this.onRemove&&this.onRemove(t),this},_refocusOnMap:function(){this._map&&this._map.getContainer().focus()}}),o.control=function(t){return new o.Control(t)},o.Map.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.removeFrom(this),this},_initControlPos:function(){function t(t,s){var a=i+t+" "+i+s;e[t+s]=o.DomUtil.create("div",a,n)}var e=this._controlCorners={},i="leaflet-",n=this._controlContainer=o.DomUtil.create("div",i+"control-container",this._container);t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){this._container.removeChild(this._controlContainer)}}),o.Control.Zoom=o.Control.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"-",zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=o.DomUtil.create("div",e+" leaflet-bar");return this._map=t,this._zoomInButton=this._createButton(this.options.zoomInText,this.options.zoomInTitle,e+"-in",i,this._zoomIn,this),this._zoomOutButton=this._createButton(this.options.zoomOutText,this.options.zoomOutTitle,e+"-out",i,this._zoomOut,this),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},_zoomIn:function(t){this._map.zoomIn(t.shiftKey?3:1)},_zoomOut:function(t){this._map.zoomOut(t.shiftKey?3:1)},_createButton:function(t,e,i,n,s,a){var r=o.DomUtil.create("a",i,n);r.innerHTML=t,r.href="#",r.title=e;var h=o.DomEvent.stopPropagation;return o.DomEvent.on(r,"click",h).on(r,"mousedown",h).on(r,"dblclick",h).on(r,"click",o.DomEvent.preventDefault).on(r,"click",s,a).on(r,"click",this._refocusOnMap,a),r},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";o.DomUtil.removeClass(this._zoomInButton,e),o.DomUtil.removeClass(this._zoomOutButton,e),t._zoom===t.getMinZoom()&&o.DomUtil.addClass(this._zoomOutButton,e),t._zoom===t.getMaxZoom()&&o.DomUtil.addClass(this._zoomInButton,e)}}),o.Map.mergeOptions({zoomControl:!0}),o.Map.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new o.Control.Zoom,this.addControl(this.zoomControl))}),o.control.zoom=function(t){return new o.Control.Zoom(t)},o.Control.Attribution=o.Control.extend({options:{position:"bottomright",prefix:'Leaflet'},initialize:function(t){o.setOptions(this,t),this._attributions={}},onAdd:function(t){this._container=o.DomUtil.create("div","leaflet-control-attribution"),o.DomEvent.disableClickPropagation(this._container);for(var e in t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return t.on("layeradd",this._onLayerAdd,this).on("layerremove",this._onLayerRemove,this),this._update(),this._container},onRemove:function(t){t.off("layeradd",this._onLayerAdd).off("layerremove",this._onLayerRemove)},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):void 0},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):void 0},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(" | ")}},_onLayerAdd:function(t){t.layer.getAttribution&&this.addAttribution(t.layer.getAttribution())},_onLayerRemove:function(t){t.layer.getAttribution&&this.removeAttribution(t.layer.getAttribution())}}),o.Map.mergeOptions({attributionControl:!0}),o.Map.addInitHook(function(){this.options.attributionControl&&(this.attributionControl=(new o.Control.Attribution).addTo(this))}),o.control.attribution=function(t){return new o.Control.Attribution(t)},o.Control.Scale=o.Control.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0,updateWhenIdle:!1},onAdd:function(t){this._map=t;var e="leaflet-control-scale",i=o.DomUtil.create("div",e),n=this.options;return this._addScales(n,e,i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=o.DomUtil.create("div",e+"-line",i)),t.imperial&&(this._iScale=o.DomUtil.create("div",e+"-line",i))},_update:function(){var t=this._map.getBounds(),e=t.getCenter().lat,i=6378137*Math.PI*Math.cos(e*Math.PI/180),n=i*(t.getNorthEast().lng-t.getSouthWest().lng)/180,o=this._map.getSize(),s=this.options,a=0;o.x>0&&(a=n*(s.maxWidth/o.x)),this._updateScales(s,a)},_updateScales:function(t,e){t.metric&&e&&this._updateMetric(e),t.imperial&&e&&this._updateImperial(e)},_updateMetric:function(t){var e=this._getRoundNum(t);this._mScale.style.width=this._getScaleWidth(e/t)+"px",this._mScale.innerHTML=1e3>e?e+" m":e/1e3+" km"},_updateImperial:function(t){var e,i,n,o=3.2808399*t,s=this._iScale;o>5280?(e=o/5280,i=this._getRoundNum(e),s.style.width=this._getScaleWidth(i/e)+"px",s.innerHTML=i+" mi"):(n=this._getRoundNum(o),s.style.width=this._getScaleWidth(n/o)+"px",s.innerHTML=n+" ft")},_getScaleWidth:function(t){return Math.round(this.options.maxWidth*t)-10},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1,e*i}}),o.control.scale=function(t){return new o.Control.Scale(t)},o.Control.Layers=o.Control.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0},initialize:function(t,e,i){o.setOptions(this,i),this._layers={},this._lastZIndex=0,this._handlingClick=!1;for(var n in t)this._addLayer(t[n],n);for(n in e)this._addLayer(e[n],n,!0)},onAdd:function(t){return this._initLayout(),this._update(),t.on("layeradd",this._onLayerChange,this).on("layerremove",this._onLayerChange,this),this._container},onRemove:function(t){t.off("layeradd",this._onLayerChange,this).off("layerremove",this._onLayerChange,this)},addBaseLayer:function(t,e){return this._addLayer(t,e),this._update(),this},addOverlay:function(t,e){return this._addLayer(t,e,!0),this._update(),this},removeLayer:function(t){var e=o.stamp(t);return delete this._layers[e],this._update(),this},_initLayout:function(){var t="leaflet-control-layers",e=this._container=o.DomUtil.create("div",t);e.setAttribute("aria-haspopup",!0),o.Browser.touch?o.DomEvent.on(e,"click",o.DomEvent.stopPropagation):o.DomEvent.disableClickPropagation(e).disableScrollPropagation(e);var i=this._form=o.DomUtil.create("form",t+"-list");if(this.options.collapsed){o.Browser.android||o.DomEvent.on(e,"mouseover",this._expand,this).on(e,"mouseout",this._collapse,this);var n=this._layersLink=o.DomUtil.create("a",t+"-toggle",e);n.href="#",n.title="Layers",o.Browser.touch?o.DomEvent.on(n,"click",o.DomEvent.stop).on(n,"click",this._expand,this):o.DomEvent.on(n,"focus",this._expand,this),o.DomEvent.on(i,"click",function(){setTimeout(o.bind(this._onInputClick,this),0)},this),this._map.on("click",this._collapse,this)}else this._expand();this._baseLayersList=o.DomUtil.create("div",t+"-base",i),this._separator=o.DomUtil.create("div",t+"-separator",i),this._overlaysList=o.DomUtil.create("div",t+"-overlays",i),e.appendChild(i)},_addLayer:function(t,e,i){var n=o.stamp(t);this._layers[n]={layer:t,name:e,overlay:i},this.options.autoZIndex&&t.setZIndex&&(this._lastZIndex++,t.setZIndex(this._lastZIndex))},_update:function(){if(this._container){this._baseLayersList.innerHTML="",this._overlaysList.innerHTML="";var t,e,i=!1,n=!1;for(t in this._layers)e=this._layers[t],this._addItem(e),n=n||e.overlay,i=i||!e.overlay;this._separator.style.display=n&&i?"":"none"}},_onLayerChange:function(t){var e=this._layers[o.stamp(t.layer)];if(e){this._handlingClick||this._update();var i=e.overlay?"layeradd"===t.type?"overlayadd":"overlayremove":"layeradd"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)}},_createRadioElement:function(t,i){var n='t;t++)e=n[t],i=this._layers[e.layerId],e.checked&&!this._map.hasLayer(i.layer)?this._map.addLayer(i.layer):!e.checked&&this._map.hasLayer(i.layer)&&this._map.removeLayer(i.layer);this._handlingClick=!1,this._refocusOnMap()},_expand:function(){o.DomUtil.addClass(this._container,"leaflet-control-layers-expanded")},_collapse:function(){this._container.className=this._container.className.replace(" leaflet-control-layers-expanded","")}}),o.control.layers=function(t,e,i){return new o.Control.Layers(t,e,i)},o.PosAnimation=o.Class.extend({includes:o.Mixin.Events,run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._newPos=e,this.fire("start"),t.style[o.DomUtil.TRANSITION]="all "+(i||.25)+"s cubic-bezier(0,0,"+(n||.5)+",1)",o.DomEvent.on(t,o.DomUtil.TRANSITION_END,this._onTransitionEnd,this),o.DomUtil.setPosition(t,e),o.Util.falseFn(t.offsetWidth),this._stepTimer=setInterval(o.bind(this._onStep,this),50)},stop:function(){this._inProgress&&(o.DomUtil.setPosition(this._el,this._getPos()),this._onTransitionEnd(),o.Util.falseFn(this._el.offsetWidth))},_onStep:function(){var t=this._getPos();return t?(this._el._leaflet_pos=t,void this.fire("step")):void this._onTransitionEnd()},_transformRe:/([-+]?(?:\d*\.)?\d+)\D*, ([-+]?(?:\d*\.)?\d+)\D*\)/,_getPos:function(){var e,i,n,s=this._el,a=t.getComputedStyle(s);if(o.Browser.any3d){if(n=a[o.DomUtil.TRANSFORM].match(this._transformRe),!n)return;e=parseFloat(n[1]),i=parseFloat(n[2])}else e=parseFloat(a.left),i=parseFloat(a.top);return new o.Point(e,i,!0)},_onTransitionEnd:function(){o.DomEvent.off(this._el,o.DomUtil.TRANSITION_END,this._onTransitionEnd,this),this._inProgress&&(this._inProgress=!1,this._el.style[o.DomUtil.TRANSITION]="",this._el._leaflet_pos=this._newPos,clearInterval(this._stepTimer),this.fire("step").fire("end"))}}),o.Map.include({setView:function(t,e,n){if(e=e===i?this._zoom:this._limitZoom(e),t=this._limitCenter(o.latLng(t),e,this.options.maxBounds),n=n||{},this._panAnim&&this._panAnim.stop(),this._loaded&&!n.reset&&n!==!0){n.animate!==i&&(n.zoom=o.extend({animate:n.animate},n.zoom),n.pan=o.extend({animate:n.animate},n.pan));var s=this._zoom!==e?this._tryAnimatedZoom&&this._tryAnimatedZoom(t,e,n.zoom):this._tryAnimatedPan(t,n.pan);if(s)return clearTimeout(this._sizeTimer),this}return this._resetView(t,e),this},panBy:function(t,e){if(t=o.point(t).round(),e=e||{},!t.x&&!t.y)return this;if(this._panAnim||(this._panAnim=new o.PosAnimation,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),e.noMoveStart||this.fire("movestart"),e.animate!==!1){o.DomUtil.addClass(this._mapPane,"leaflet-pan-anim");var i=this._getMapPanePos().subtract(t);this._panAnim.run(this._mapPane,i,e.duration||.25,e.easeLinearity)}else this._rawPanBy(t),this.fire("move").fire("moveend");return this},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){o.DomUtil.removeClass(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._floor();return(e&&e.animate)===!0||this.getSize().contains(i)?(this.panBy(i,e),!0):!1}}),o.PosAnimation=o.DomUtil.TRANSITION?o.PosAnimation:o.PosAnimation.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=o.DomUtil.getPosition(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(),this._complete())},_animate:function(){this._animId=o.Util.requestAnimFrame(this._animate,this),this._step()},_step:function(){var t=+new Date-this._startTime,e=1e3*this._duration;e>t?this._runFrame(this._easeOut(t/e)):(this._runFrame(1),this._complete())},_runFrame:function(t){var e=this._startPos.add(this._offset.multiplyBy(t));o.DomUtil.setPosition(this._el,e),this.fire("step")},_complete:function(){o.Util.cancelAnimFrame(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(t){return 1-Math.pow(1-t,this._easeOutPower)}}),o.Map.mergeOptions({zoomAnimation:!0,zoomAnimationThreshold:4}),o.DomUtil.TRANSITION&&o.Map.addInitHook(function(){this._zoomAnimated=this.options.zoomAnimation&&o.DomUtil.TRANSITION&&o.Browser.any3d&&!o.Browser.android23&&!o.Browser.mobileOpera,this._zoomAnimated&&o.DomEvent.on(this._mapPane,o.DomUtil.TRANSITION_END,this._catchTransitionEnd,this)}),o.Map.include(o.DomUtil.TRANSITION?{_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||i.animate===!1||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/n),s=this._getCenterLayerPoint()._add(o);return i.animate===!0||this.getSize().contains(o)?(this.fire("movestart").fire("zoomstart"),this._animateZoom(t,e,s,n,null,!0),!0):!1},_animateZoom:function(t,e,i,n,s,a,r){r||(this._animatingZoom=!0),o.DomUtil.addClass(this._mapPane,"leaflet-zoom-anim"),this._animateToCenter=t,this._animateToZoom=e,o.Draggable&&(o.Draggable._disabled=!0),o.Util.requestAnimFrame(function(){this.fire("zoomanim",{center:t,zoom:e,origin:i,scale:n,delta:s,backwards:a}),setTimeout(o.bind(this._onZoomTransitionEnd,this),250)},this)},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._animatingZoom=!1,o.DomUtil.removeClass(this._mapPane,"leaflet-zoom-anim"),o.Util.requestAnimFrame(function(){this._resetView(this._animateToCenter,this._animateToZoom,!0,!0),o.Draggable&&(o.Draggable._disabled=!1)},this))}}:{}),o.TileLayer.include({_animateZoom:function(t){this._animating||(this._animating=!0,this._prepareBgBuffer());var e=this._bgBuffer,i=o.DomUtil.TRANSFORM,n=t.delta?o.DomUtil.getTranslateString(t.delta):e.style[i],s=o.DomUtil.getScaleString(t.scale,t.origin);e.style[i]=t.backwards?s+" "+n:n+" "+s},_endZoomAnim:function(){var t=this._tileContainer,e=this._bgBuffer;t.style.visibility="",t.parentNode.appendChild(t),o.Util.falseFn(e.offsetWidth);var i=this._map.getZoom();(i>this.options.maxZoom||i.5&&.5>n?(t.style.visibility="hidden",void this._stopLoadingImages(t)):(e.style.visibility="hidden",e.style[o.DomUtil.TRANSFORM]="",this._tileContainer=e,e=this._bgBuffer=t,this._stopLoadingImages(e),void clearTimeout(this._clearBgBufferTimer))},_getLoadedTilesPercentage:function(t){var e,i,n=t.getElementsByTagName("img"),o=0;for(e=0,i=n.length;i>e;e++)n[e].complete&&o++;return o/i},_stopLoadingImages:function(t){var e,i,n,s=Array.prototype.slice.call(t.getElementsByTagName("img"));for(e=0,i=s.length;i>e;e++)n=s[e],n.complete||(n.onload=o.Util.falseFn,n.onerror=o.Util.falseFn,n.src=o.Util.emptyImageUrl,n.parentNode.removeChild(n))}}),o.Map.include({_defaultLocateOptions:{watch:!1,setView:!1,maxZoom:1/0,timeout:1e4,maximumAge:0,enableHighAccuracy:!1},locate:function(t){if(t=this._locateOptions=o.extend(this._defaultLocateOptions,t),!navigator.geolocation)return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var e=o.bind(this._handleGeolocationResponse,this),i=o.bind(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})},_handleGeolocationResponse:function(t){var e=t.coords.latitude,i=t.coords.longitude,n=new o.LatLng(e,i),s=180*t.coords.accuracy/40075017,a=s/Math.cos(o.LatLng.DEG_TO_RAD*e),r=o.latLngBounds([e-s,i-a],[e+s,i+a]),h=this._locateOptions;if(h.setView){var l=Math.min(this.getBoundsZoom(r),h.maxZoom);this.setView(n,l)}var u={latlng:n,bounds:r,timestamp:t.timestamp};for(var c in t.coords)"number"==typeof t.coords[c]&&(u[c]=t.coords[c]);this.fire("locationfound",u)}})}(window,document); \ No newline at end of file diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-mod/operation-mod.hbs b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-mod/operation-mod.hbs new file mode 100644 index 000000000..8d7e6bc16 --- /dev/null +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-mod/operation-mod.hbs @@ -0,0 +1,20 @@ +{{! + Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + + WSO2 Inc. licenses this file to you under the Apache License, + Version 2.0 (the "License"); you may not use this file except + in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +}} +{{#zone "bottomJs"}} + {{js "js/operation-mod.js"}} +{{/zone}} \ No newline at end of file diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-mod/operation-mod.json b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-mod/operation-mod.json new file mode 100644 index 000000000..8fcf779d1 --- /dev/null +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-mod/operation-mod.json @@ -0,0 +1,8 @@ +{ + "version": "1.0.0", + "pushedUris": [ + "/policies", + "/policy/{+any}" + ], + "extends": "cdmf.unit.device.operation-mod" +} \ No newline at end of file diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-mod/public/js/operation-mod.js b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-mod/public/js/operation-mod.js new file mode 100644 index 000000000..b6b0795ca --- /dev/null +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-mod/public/js/operation-mod.js @@ -0,0 +1,1781 @@ +/* + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * WSO2 Inc. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +var operationModule = function () { + var publicMethods = {}; + var privateMethods = {}; + + // Constants to define platform types available + var platformTypeConstants = { + "ANDROID": "android", + "IOS": "ios", + "WINDOWS": "windows" + }; + + // Constants to define operation types available + var operationTypeConstants = { + "PROFILE": "profile", + "CONFIG": "config", + "COMMAND": "command" + }; + + // Constants to define Android Operation Constants + var androidOperationConstants = { + "PASSCODE_POLICY_OPERATION_CODE": "PASSCODE_POLICY", + "VPN_OPERATION_CODE": "VPN", + "CAMERA_OPERATION_CODE": "CAMERA", + "ENCRYPT_STORAGE_OPERATION_CODE": "ENCRYPT_STORAGE", + "WIFI_OPERATION_CODE": "WIFI", + "WIPE_OPERATION_CODE": "WIPE_DATA", + "NOTIFICATION_OPERATION_CODE": "NOTIFICATION", + "WORK_PROFILE_CODE": "WORK_PROFILE", + "CHANGE_LOCK_CODE_OPERATION_CODE": "CHANGE_LOCK_CODE", + "LOCK_OPERATION_CODE": "DEVICE_LOCK", + "UPGRADE_FIRMWARE": "UPGRADE_FIRMWARE", + "DISALLOW_ADJUST_VOLUME": "DISALLOW_ADJUST_VOLUME", + "DISALLOW_CONFIG_BLUETOOTH": "DISALLOW_CONFIG_BLUETOOTH", + "DISALLOW_CONFIG_CELL_BROADCASTS": "DISALLOW_CONFIG_CELL_BROADCASTS", + "DISALLOW_CONFIG_CREDENTIALS": "DISALLOW_CONFIG_CREDENTIALS", + "DISALLOW_CONFIG_MOBILE_NETWORKS": "DISALLOW_CONFIG_MOBILE_NETWORKS", + "DISALLOW_CONFIG_TETHERING": "DISALLOW_CONFIG_TETHERING", + "DISALLOW_CONFIG_VPN": "DISALLOW_CONFIG_VPN", + "DISALLOW_CONFIG_WIFI": "DISALLOW_CONFIG_WIFI", + "DISALLOW_APPS_CONTROL": "DISALLOW_APPS_CONTROL", + "DISALLOW_CREATE_WINDOWS": "DISALLOW_CREATE_WINDOWS", + "DISALLOW_CROSS_PROFILE_COPY_PASTE": "DISALLOW_CROSS_PROFILE_COPY_PASTE", + "DISALLOW_DEBUGGING_FEATURES": "DISALLOW_DEBUGGING_FEATURES", + "DISALLOW_FACTORY_RESET": "DISALLOW_FACTORY_RESET", + "DISALLOW_ADD_USER": "DISALLOW_ADD_USER", + "DISALLOW_INSTALL_APPS": "DISALLOW_INSTALL_APPS", + "DISALLOW_INSTALL_UNKNOWN_SOURCES": "DISALLOW_INSTALL_UNKNOWN_SOURCES", + "DISALLOW_MODIFY_ACCOUNTS": "DISALLOW_MODIFY_ACCOUNTS", + "DISALLOW_MOUNT_PHYSICAL_MEDIA": "DISALLOW_MOUNT_PHYSICAL_MEDIA", + "DISALLOW_NETWORK_RESET": "DISALLOW_NETWORK_RESET", + "DISALLOW_OUTGOING_BEAM": "DISALLOW_OUTGOING_BEAM", + "DISALLOW_OUTGOING_CALLS": "DISALLOW_OUTGOING_CALLS", + "DISALLOW_REMOVE_USER": "DISALLOW_REMOVE_USER", + "DISALLOW_SAFE_BOOT": "DISALLOW_SAFE_BOOT", + "DISALLOW_SHARE_LOCATION": "DISALLOW_SHARE_LOCATION", + "DISALLOW_SMS": "DISALLOW_SMS", + "DISALLOW_UNINSTALL_APPS": "DISALLOW_UNINSTALL_APPS", + "DISALLOW_UNMUTE_MICROPHONE": "DISALLOW_UNMUTE_MICROPHONE", + "DISALLOW_USB_FILE_TRANSFER": "DISALLOW_USB_FILE_TRANSFER", + "ALLOW_PARENT_PROFILE_APP_LINKING": "ALLOW_PARENT_PROFILE_APP_LINKING", + "ENSURE_VERIFY_APPS": "ENSURE_VERIFY_APPS", + "AUTO_TIME": "AUTO_TIME", + "SET_SCREEN_CAPTURE_DISABLED": "SET_SCREEN_CAPTURE_DISABLED", + "SET_STATUS_BAR_DISABLED": "SET_STATUS_BAR_DISABLED", + "APPLICATION_OPERATION_CODE": "APP-RESTRICTION", + "SYSTEM_UPDATE_POLICY_CODE": "SYSTEM_UPDATE_POLICY", + "KIOSK_APPS_CODE": "KIOSK_APPS" + }; + + // Constants to define Windows Operation Constants + var windowsOperationConstants = { + "PASSCODE_POLICY_OPERATION_CODE": "PASSCODE_POLICY", + "CAMERA_OPERATION_CODE": "CAMERA", + "ENCRYPT_STORAGE_OPERATION_CODE": "ENCRYPT_STORAGE", + "NOTIFICATION_OPERATION_CODE": "NOTIFICATION", + "CHANGE_LOCK_CODE_OPERATION_CODE": "CHANGE_LOCK_CODE" + }; + + // Constants to define iOS Operation Constants + var iosOperationConstants = { + "PASSCODE_POLICY_OPERATION_CODE": "PASSCODE_POLICY", + "RESTRICTIONS_OPERATION_CODE": "RESTRICTION", + "VPN_OPERATION_CODE": "VPN", + "WIFI_OPERATION_CODE": "WIFI", + "EMAIL_OPERATION_CODE": "EMAIL", + "AIRPLAY_OPERATION_CODE": "AIR_PLAY", + "LDAP_OPERATION_CODE": "LDAP", + "DOMAIN_OPERATION_CODE": "DOMAIN", + "CALENDAR_OPERATION_CODE": "CALDAV", + "NOTIFICATION_OPERATION_CODE": "NOTIFICATION", + "CALENDAR_SUBSCRIPTION_OPERATION_CODE": "CALENDAR_SUBSCRIPTION", + "APN_OPERATION_CODE": "APN", + "CELLULAR_OPERATION_CODE": "CELLULAR", + "PER_APP_VPN_OPERATION_CODE": "PER_APP_VPN", + "APP_TO_PER_APP_VPN_MAPPING_OPERATION_CODE": "APP_TO_PER_APP_VPN_MAPPING" + }; + + publicMethods.getIOSServiceEndpoint = function (operationCode) { + var featureMap = { + "DEVICE_LOCK": "lock", + "LOCATION": "location", + "ENTERPRISE_WIPE": "enterprise-wipe", + "NOTIFICATION": "notification", + "RING": "ring" + }; + return "/api/device-mgt/ios/v1.0/admin/devices/" + featureMap[operationCode]; + }; + + /** + * Convert the ios platform specific code to the generic payload. + * TODO: think of the possibility to follow a pattern to the key name (namespace?) + * @param operationCode + * @param operationPayload + * @returns {{}} + */ + privateMethods.generateGenericPayloadFromIOSPayload = function (operationCode, operationPayload) { + var payload = {}; + operationPayload = JSON.parse(operationPayload); + switch (operationCode) { + case iosOperationConstants["PASSCODE_POLICY_OPERATION_CODE"]: + payload = { + "passcodePolicyForcePIN": operationPayload["forcePIN"], + "passcodePolicyAllowSimple": operationPayload["allowSimple"], + "passcodePolicyRequireAlphanumeric": operationPayload["requireAlphanumeric"], + "passcodePolicyMinLength": operationPayload["minLength"], + "passcodePolicyMinComplexChars": operationPayload["minComplexChars"], + "passcodePolicyMaxPasscodeAgeInDays": operationPayload["maxPINAgeInDays"], + "passcodePolicyPasscodeHistory": operationPayload["pinHistory"], + "passcodePolicyMaxAutoLock": operationPayload["maxInactivity"], + "passcodePolicyGracePeriod": operationPayload["maxGracePeriod"], + "passcodePolicyMaxFailedAttempts": operationPayload["maxFailedAttempts"] + }; + break; + case iosOperationConstants["DOMAIN_OPERATION_CODE"]: + payload = { + "emailDomains": operationPayload["emailDomains"], + "webDomains": operationPayload["webDomains"] + }; + break; + case iosOperationConstants["RESTRICTIONS_OPERATION_CODE"]: + payload = { + "restrictionsAllowAccountModification": operationPayload["allowAccountModification"], + "restrictionsAllowAddingGameCenterFriends": operationPayload["allowAddingGameCenterFriends"], + "restrictionsAllowAirDrop": operationPayload["allowAirDrop"], + "restrictionsAllowAppCellularDataModification": operationPayload["allowAppCellularDataModification"], + "restrictionsAllowAppInstallation": operationPayload["allowAppInstallation"], + "restrictionsAllowAppRemoval": operationPayload["allowAppRemoval"], + "restrictionsAllowAssistant": operationPayload["allowAssistant"], + "restrictionsAllowAssistantUserGeneratedContent": operationPayload["allowAssistantUserGeneratedContent"], + "restrictionsAllowAssistantWhileLocked": operationPayload["allowAssistantWhileLocked"], + "restrictionsAllowBookstore": operationPayload["allowBookstore"], + "restrictionsAllowBookstoreErotica": operationPayload["allowBookstoreErotica"], + "restrictionsAllowCamera": operationPayload["allowCamera"], + "restrictionsAllowChat": operationPayload["allowChat"], + "restrictionsAllowCloudBackup": operationPayload["allowCloudBackup"], + "restrictionsAllowCloudDocumentSync": operationPayload["allowCloudDocumentSync"], + "restrictionsAllowCloudKeychainSync": operationPayload["allowCloudKeychainSync"], + "restrictionsAllowDiagnosticSubmission": operationPayload["allowDiagnosticSubmission"], + "restrictionsAllowExplicitContent": operationPayload["allowExplicitContent"], + "restrictionsAllowFindMyFriendsModification": operationPayload["allowFindMyFriendsModification"], + "restrictionsAllowFingerprintForUnlock": operationPayload["allowFingerprintForUnlock"], + "restrictionsAllowGameCenter": operationPayload["allowGameCenter"], + "restrictionsAllowGlobalBackgroundFetchWhenRoaming": operationPayload["allowGlobalBackgroundFetchWhenRoaming"], + "restrictionsAllowInAppPurchases": operationPayload["allowInAppPurchases"], + "restrictionsAllowLockScreenControlCenter": operationPayload["allowLockScreenControlCenter"], + "restrictionsAllowHostPairing": operationPayload["allowHostPairing"], + "restrictionsAllowLockScreenNotificationsView": operationPayload["allowLockScreenNotificationsView"], + "restrictionsAllowLockScreenTodayView": operationPayload["allowLockScreenTodayView"], + "restrictionsAllowMultiplayerGaming": operationPayload["allowMultiplayerGaming"], + "restrictionsAllowOpenFromManagedToUnmanaged": operationPayload["allowOpenFromManagedToUnmanaged"], + "restrictionsAllowOpenFromUnmanagedToManaged": operationPayload["allowOpenFromUnmanagedToManaged"], + "restrictionsAllowOTAPKIUpdates": operationPayload["allowOTAPKIUpdates"], + "restrictionsAllowPassbookWhileLocked": operationPayload["allowPassbookWhileLocked"], + "restrictionsAllowPhotoStream": operationPayload["allowPhotoStream"], + "restrictionsAllowSafari": operationPayload["allowSafari"], + "restrictionsSafariAllowAutoFill": operationPayload["safariAllowAutoFill"], + "restrictionsSafariForceFraudWarning": operationPayload["safariForceFraudWarning"], + "restrictionsSafariAllowJavaScript": operationPayload["safariAllowJavaScript"], + "restrictionsSafariAllowPopups": operationPayload["safariAllowPopups"], + "restrictionsAllowScreenShot": operationPayload["allowScreenShot"], + "restrictionsAllowSharedStream": operationPayload["allowSharedStream"], + "restrictionsAllowUIConfigurationProfileInstallation": operationPayload["allowUIConfigurationProfileInstallation"], + "restrictionsAllowUntrustedTLSPrompt": operationPayload["allowUntrustedTLSPrompt"], + "restrictionsAllowVideoConferencing": operationPayload["allowVideoConferencing"], + "restrictionsAllowVoiceDialing": operationPayload["allowVoiceDialing"], + "restrictionsAllowYouTube": operationPayload["allowYouTube"], + "restrictionsAllowITunes": operationPayload["allowiTunes"], + "restrictionsForceAssistantProfanityFilter": operationPayload["forceAssistantProfanityFilter"], + "restrictionsForceEncryptedBackup": operationPayload["forceEncryptedBackup"], + "restrictionsForceITunesStorePasswordEntry": operationPayload["forceITunesStorePasswordEntry"], + "restrictionsForceLimitAdTracking": operationPayload["forceLimitAdTracking"], + "restrictionsForceAirPlayOutgoingRequestsPairingPassword": operationPayload["forceAirPlayOutgoingRequestsPairingPassword"], + "restrictionsForceAirPlayIncomingRequestsPairingPassword": operationPayload["forceAirPlayIncomingRequestsPairingPassword"], + "restrictionsAllowManagedAppsCloudSync": operationPayload["allowManagedAppsCloudSync"], + "restrictionsAllowEraseContentAndSettings": operationPayload["allowEraseContentAndSettings"], + "restrictionsAllowSpotlightInternetResults": operationPayload["allowSpotlightInternetResults"], + "restrictionsAllowEnablingRestrictions": operationPayload["allowEnablingRestrictions"], + "restrictionsAllowActivityContinuation": operationPayload["allowActivityContinuation"], + "restrictionsAllowEnterpriseBookBackup": operationPayload["allowEnterpriseBookBackup"], + "restrictionsAllowEnterpriseBookMetadataSync": operationPayload["allowEnterpriseBookMetadataSync"], + "restrictionsAllowPodcasts": operationPayload["allowPodcasts"], + "restrictionsAllowDefinitionLookup": operationPayload["allowDefinitionLookup"], + "restrictionsAllowPredictiveKeyboard": operationPayload["allowPredictiveKeyboard"], + "restrictionsAllowAutoCorrection": operationPayload["allowAutoCorrection"], + "restrictionsAllowSpellCheck": operationPayload["allowSpellCheck"], + "restrictionsSafariAcceptCookies": operationPayload["safariAcceptCookies"], + "restrictionsAutonomousSingleAppModePermittedAppIDs": operationPayload["autonomousSingleAppModePermittedAppIDs"] + }; + break; + case iosOperationConstants["VPN_OPERATION_CODE"]: + var pptp = false; + var l2tp = false; + if (operationPayload["vpnType"] == "PPTP") { + pptp = true; + } else if (operationPayload["vpnType"] == "L2TP") { + l2tp = true; + } + + payload = { + "userDefinedName": operationPayload["userDefinedName"], + "overridePrimary": operationPayload["overridePrimary"], + "onDemandEnabled": operationPayload["onDemandEnabled"], + "onDemandMatchDomainsAlways": operationPayload["onDemandMatchDomainsAlways"], + "onDemandMatchDomainsNever": operationPayload["onDemandMatchDomainsNever"], + "onDemandMatchDomainsOnRetry": operationPayload["onDemandMatchDomainsOnRetry"], + "onDemandRules": operationPayload["onDemandRules"], + "vendorConfigs": operationPayload["vendorConfigs"], + "vpnType": operationPayload["vpnType"], + "pptpAuthName": pptp ? operationPayload.ppp["authName"] : "", + "pptpTokenCard": pptp ? operationPayload.ppp["tokenCard"] : "", + "pptpAuthPassword": pptp ? operationPayload.ppp["authPassword"] : "", + "pptpCommRemoteAddress": pptp ? operationPayload.ppp["commRemoteAddress"] : "", + "pptpRSASecureID": pptp ? operationPayload.ppp["RSASecureID"] : "", + "pptpCCPEnabled": pptp ? operationPayload.ppp["CCPEnabled"] : "", + "pptpCCPMPPE40Enabled": pptp ? operationPayload.ppp["CCPMPPE40Enabled"] : "", + "pptpCCPMPPE128Enabled": pptp ? operationPayload.ppp["CCPMPPE128Enabled"] : "", + "l2tpAuthName": l2tp ? operationPayload.ppp["authName"] : "", + "l2tpTokenCard": l2tp ? operationPayload.ppp["tokenCard"] : "", + "l2tpAuthPassword": l2tp ? operationPayload.ppp["authPassword"] : "", + "l2tpCommRemoteAddress": l2tp ? operationPayload.ppp["commRemoteAddress"] : "", + "l2tpRSASecureID": l2tp ? operationPayload.ppp["RSASecureID"] : "", + "ipsecRemoteAddress": operationPayload.ipSec["remoteAddress"], + "ipsecAuthenticationMethod": operationPayload.ipSec["authenticationMethod"], + "ipsecLocalIdentifier": operationPayload.ipSec["localIdentifier"], + "ipsecSharedSecret": operationPayload.ipSec["sharedSecret"], + "ipsecPayloadCertificateUUID": operationPayload.ipSec["payloadCertificateUUID"], + "ipsecXAuthEnabled": operationPayload.ipSec["XAuthEnabled"], + "ipsecXAuthName": operationPayload.ipSec["XAuthName"], + "ipsecPromptForVPNPIN": operationPayload.ipSec["promptForVPNPIN"], + "ikev2RemoteAddress": operationPayload.ikEv2["remoteAddress"], + "ikev2LocalIdentifier": operationPayload.ikEv2["localIdentifier"], + "ikev2RemoteIdentifier": operationPayload.ikEv2["remoteIdentifier"], + "ikev2AuthenticationMethod": operationPayload.ikEv2["authenticationMethod"], + "ikev2SharedSecret": operationPayload.ikEv2["sharedSecret"], + "ikev2PayloadCertificateUUID": operationPayload.ikEv2["payloadCertificateUUID"], + "ikev2ExtendedAuthEnabled": operationPayload.ikEv2["extendedAuthEnabled"], + "ikev2AuthName": operationPayload.ikEv2["authName"], + "ikev2AuthPassword": operationPayload.ikEv2["authPassword"], + "ikev2DeadPeerDetectionInterval": operationPayload.ikEv2["deadPeerDetectionInterval"], + "ikev2ServerCertificateIssuerCommonName": operationPayload.ikEv2["serverCertificateIssuerCommonName"], + "ikev2ServerCertificateCommonName": operationPayload.ikEv2["serverCertificateCommonName"] + }; + break; + case iosOperationConstants["PER_APP_VPN_OPERATION_CODE"]: + payload = { + "operation": { + "VPNUUID": operationPayload["PER-APP-VPNUUID"], + "safariDomains": operationPayload["safariDomains"], + "onDemandMatchAppEnabled": operationPayload["onDemandMatchAppEnabled"] + } + }; + break; + case iosOperationConstants["APP_TO_PER_APP_VPN_MAPPING_OPERATION_CODE"]: + payload = { + "operation": { + "appLayerVPNMappings": operationPayload["appLayerVPNMappings"] + } + }; + break; + case iosOperationConstants["WIFI_OPERATION_CODE"]: + payload = { + "wifiHiddenNetwork": operationPayload["hiddenNetwork"], + "wifiSSID": operationPayload["SSID"], + "wifiAutoJoin": operationPayload["autoJoin"], + "wifiProxyType": operationPayload["proxyType"], + "wifiEncryptionType": operationPayload["encryptionType"], + "wifiIsHotSpot": operationPayload["hotspot"], + "wifiDomainName": operationPayload["domainName"], + "wifiServiceProviderRoamingEnabled": operationPayload["serviceProviderRoamingEnabled"], + "wifiDisplayedOperatorName": operationPayload["displayedOperatorName"], + "wifiRoamingConsortiumOIs": operationPayload["roamingConsortiumOIs"], + "wifiPassword": operationPayload["password"], + "wifiPayloadCertUUID": operationPayload["payloadCertificateUUID"], + "wifiProxyServer": operationPayload["proxyServer"], + "wifiProxyPort": operationPayload["proxyPort"], + "wifiProxyUsername": operationPayload["proxyUsername"], + "wifiProxyPassword": operationPayload["proxyPassword"], + "wifiProxyPACURL": operationPayload["proxyPACURL"], + "wifiProxyPACFallbackAllowed": operationPayload["proxyPACFallbackAllowed"], + "wifiNAIRealmNames": operationPayload["nairealmNames"], + "wifiMCCAndMNCs": operationPayload["mccandMNCs"], + "wifiEAPUsername": operationPayload.clientConfiguration["username"], + "wifiAcceptedEAPTypes": operationPayload.clientConfiguration["acceptEAPTypes"], + "wifiEAPPassword": operationPayload.clientConfiguration["userPassword"], + "wifiEAPOneTimePassword": operationPayload.clientConfiguration["oneTimePassword"], + "wifiPayloadCertificateAnchorUUIDs": operationPayload.clientConfiguration["payloadCertificateAnchorUUID"], + "wifiEAPOuterIdentity": operationPayload.clientConfiguration["outerIdentity"], + "wifiTLSTrustedServerNames": operationPayload.clientConfiguration["tlstrustedServerNames"], + "wifiEAPTLSAllowTrustExceptions": operationPayload.clientConfiguration["tlsallowTrustExceptions"], + "wifiEAPTLSCertIsRequired": operationPayload.clientConfiguration["tlscertificateIsRequired"], + "wifiEAPTLSInnerAuthType": operationPayload.clientConfiguration["ttlsinnerAuthentication"], + "wifiEAPFastUsePAC": operationPayload.clientConfiguration["eapfastusePAC"], + "wifiEAPFastProvisionPAC": operationPayload.clientConfiguration["eapfastprovisionPAC"], + "wifiEAPFastProvisionPACAnonymously": operationPayload.clientConfiguration["eapfastprovisionPACAnonymously"], + "wifiEAPSIMNoOfRands": operationPayload.clientConfiguration["eapsimnumberOfRANDs"] + }; + break; + case iosOperationConstants["EMAIL_OPERATION_CODE"]: + payload = { + "emailAccountDescription": operationPayload["emailAccountDescription"], + "emailAccountName": operationPayload["emailAccountName"], + "emailAccountType": operationPayload["emailAccountType"], + "emailAddress": operationPayload["emailAddress"], + "emailIncomingMailServerAuthentication": operationPayload["incomingMailServerAuthentication"], + "emailIncomingMailServerHostname": operationPayload["incomingMailServerHostName"], + "emailIncomingMailServerPort": operationPayload["incomingMailServerPortNumber"], + "emailIncomingUseSSL": operationPayload["incomingMailServerUseSSL"], + "emailIncomingMailServerUsername": operationPayload["incomingMailServerUsername"], + "emailIncomingMailServerPassword": operationPayload["incomingPassword"], + "emailOutgoingMailServerPassword": operationPayload["outgoingPassword"], + "emailOutgoingPasswordSameAsIncomingPassword": operationPayload["outgoingPasswordSameAsIncomingPassword"], + "emailOutgoingMailServerAuthentication": operationPayload["outgoingMailServerAuthentication"], + "emailOutgoingMailServerHostname": operationPayload["outgoingMailServerHostName"], + "emailOutgoingMailServerPort": operationPayload["outgoingMailServerPortNumber"], + "emailOutgoingUseSSL": operationPayload["outgoingMailServerUseSSL"], + "emailOutgoingMailServerUsername": operationPayload["outgoingMailServerUsername"], + "emailPreventMove": operationPayload["preventMove"], + "emailPreventAppSheet": operationPayload["preventAppSheet"], + "emailDisableMailRecentsSyncing": operationPayload["disableMailRecentsSyncing"], + "emailIncomingMailServerIMAPPathPrefix": operationPayload["incomingMailServerIMAPPathPrefix"], + "emailSMIMEEnabled": operationPayload["smimeenabled"], + "emailSMIMESigningCertificateUUID": operationPayload["smimesigningCertificateUUID"], + "emailSMIMEEncryptionCertificateUUID": operationPayload["smimeencryptionCertificateUUID"], + "emailSMIMEEnablePerMessageSwitch": operationPayload["smimeenablePerMessageSwitch"] + }; + break; + case iosOperationConstants["AIRPLAY_OPERATION_CODE"]: + payload = { + "airplayDestinations": operationPayload["airPlayDestinations"], + "airplayCredentials": operationPayload["airPlayCredentials"] + }; + break; + case iosOperationConstants["LDAP_OPERATION_CODE"]: + payload = { + "ldapAccountDescription": operationPayload["accountDescription"], + "ldapAccountHostname": operationPayload["accountHostName"], + "ldapUseSSL": operationPayload["accountUseSSL"], + "ldapAccountUsername": operationPayload["accountUsername"], + "ldapAccountPassword": operationPayload["accountPassword"], + "ldapSearchSettings": operationPayload["ldapSearchSettings"] + }; + break; + case iosOperationConstants["CALENDAR_OPERATION_CODE"]: + payload = { + "calendarAccountDescription": operationPayload["accountDescription"], + "calendarAccountHostname": operationPayload["hostName"], + "calendarAccountUsername": operationPayload["username"], + "calendarAccountPassword": operationPayload["password"], + "calendarUseSSL": operationPayload["useSSL"], + "calendarAccountPort": operationPayload["port"], + "calendarPrincipalURL": operationPayload["principalURL"] + }; + break; + case iosOperationConstants["CALENDAR_SUBSCRIPTION_OPERATION_CODE"]: + payload = { + "calendarSubscriptionDescription": operationPayload["accountDescription"], + "calendarSubscriptionHostname": operationPayload["hostName"], + "calendarSubscriptionUsername": operationPayload["username"], + "calendarSubscriptionPassword": operationPayload["password"], + "calendarSubscriptionUseSSL": operationPayload["useSSL"] + }; + break; + case iosOperationConstants["APN_OPERATION_CODE"]: + payload = { + "apnConfigurations": operationPayload["apnConfigurations"] + }; + break; + case iosOperationConstants["CELLULAR_OPERATION_CODE"]: + payload = { + "cellularAttachAPNName": operationPayload["attachAPNName"], + "cellularAuthenticationType": operationPayload["authenticationType"], + "cellularUsername": operationPayload["username"], + "cellularPassword": operationPayload["password"], + "cellularAPNConfigurations": operationPayload["apnConfigurations"] + }; + break; + } + return payload; + }; + + privateMethods.generateIOSOperationPayload = function (operationCode, operationData, deviceList) { + var payload; + var operationType; + switch (operationCode) { + case iosOperationConstants["PASSCODE_POLICY_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "forcePIN": operationData["passcodePolicyForcePIN"], + "allowSimple": operationData["passcodePolicyAllowSimple"], + "requireAlphanumeric": operationData["passcodePolicyRequireAlphanumeric"], + "minLength": operationData["passcodePolicyMinLength"], + "minComplexChars": operationData["passcodePolicyMinComplexChars"], + "maxPINAgeInDays": operationData["passcodePolicyMaxPasscodeAgeInDays"], + "pinHistory": operationData["passcodePolicyPasscodeHistory"], + "maxInactivity": operationData["passcodePolicyMaxAutoLock"], + "maxGracePeriod": operationData["passcodePolicyGracePeriod"], + "maxFailedAttempts": operationData["passcodePolicyMaxFailedAttempts"] + } + }; + break; + case iosOperationConstants["WIFI_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + if (operationData["wifiProxyPort"] == "") { + operationData["wifiProxyPort"] = -1; + } + payload = { + "operation": { + "SSID": operationData["wifiSSID"], + "hiddenNetwork": operationData["wifiHiddenNetwork"], + "autoJoin": operationData["wifiAutoJoin"], + "proxyType": operationData["wifiProxyType"], + "encryptionType": operationData["wifiEncryptionType"], + "hotspot": operationData["wifiIsHotSpot"], + "domainName": operationData["wifiDomainName"], + "serviceProviderRoamingEnabled": operationData["wifiServiceProviderRoamingEnabled"], + "displayedOperatorName": operationData["wifiDisplayedOperatorName"], + "roamingConsortiumOIs": operationData["wifiRoamingConsortiumOIs"], + "password": operationData["wifiPassword"], + "clientConfiguration": { + "username": operationData["wifiEAPUsername"], + "acceptEAPTypes": operationData["wifiAcceptedEAPTypes"], + "userPassword": operationData["wifiEAPPassword"], + "oneTimePassword": operationData["wifiEAPOneTimePassword"], + "payloadCertificateAnchorUUID": operationData["wifiPayloadCertificateAnchorUUIDs"], + "outerIdentity": operationData["wifiEAPOuterIdentity"], + "tlstrustedServerNames": operationData["wifiTLSTrustedServerNames"], + "tlsallowTrustExceptions": operationData["wifiEAPTLSAllowTrustExceptions"], + "tlscertificateIsRequired": operationData["wifiEAPTLSCertIsRequired"], + "ttlsinnerAuthentication": operationData["wifiEAPTLSInnerAuthType"], + "eapfastusePAC": operationData["wifiEAPFastUsePAC"], + "eapfastprovisionPAC": operationData["wifiEAPFastProvisionPAC"], + "eapfastprovisionPACAnonymously": operationData["wifiEAPFastProvisionPACAnonymously"], + "eapsimnumberOfRANDs": operationData["wifiEAPSIMNoOfRands"] + }, + "payloadCertificateUUID": operationData["wifiPayloadCertUUID"], + "proxyServer": operationData["wifiProxyServer"], + "proxyPort": operationData["wifiProxyPort"], + "proxyUsername": operationData["wifiProxyUsername"], + "proxyPassword": operationData["wifiProxyPassword"], + "proxyPACURL": operationData["wifiProxyPACURL"], + "proxyPACFallbackAllowed": operationData["wifiProxyPACFallbackAllowed"], + "nairealmNames": operationData["wifiNAIRealmNames"], + "mccandMNCs": operationData["wifiMCCAndMNCs"] + } + }; + break; + case iosOperationConstants["VPN_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + var ppp = {}; + var ipSec = {}; + var ikev2 = {}; + var pulseSecure = {}; + + if (operationData["vpnType"] == "PPTP") { + ppp = { + "authName": operationData["pptpAuthName"], + "tokenCard": operationData["pptpTokenCard"], + "authPassword": operationData["pptpAuthPassword"], + "commRemoteAddress": operationData["pptpCommRemoteAddress"], + "RSASecureID": operationData["pptpRSASecureID"], + "CCPEnabled": operationData["pptpCCPEnabled"], + "CCPMPPE40Enabled": operationData["pptpCCPMPPE40Enabled"], + "CCPMPPE128Enabled": operationData["pptpCCPMPPE128Enabled"] + }; + } else if (operationData["vpnType"] == "L2TP") { + ppp = { + "authName": operationData["l2tpAuthName"], + "tokenCard": operationData["l2tpTokenCard"], + "authPassword": operationData["l2tpAuthPassword"], + "commRemoteAddress": operationData["l2tpCommRemoteAddress"], + "RSASecureID": operationData["l2tpRSASecureID"] + }; + } else if (operationData["vpnType"] == "IPSec") { + ipSec = { + "remoteAddress": operationData["ipsecRemoteAddress"], + "authenticationMethod": operationData["ipsecAuthenticationMethod"], + "localIdentifier": operationData["ipsecLocalIdentifier"], + "sharedSecret": operationData["ipsecSharedSecret"], + "payloadCertificateUUID": operationData["ipsecPayloadCertificateUUID"], + "XAuthEnabled": operationData["ipsecXAuthEnabled"], + "XAuthName": operationData["ipsecXAuthName"], + "promptForVPNPIN": operationData["ipsecPromptForVPNPIN"] + }; + } else if (operationData["vpnType"] == "IKEv2") { + ikev2 = { + "remoteAddress": operationData["ikev2RemoteAddress"], + "localIdentifier": operationData["ikev2LocalIdentifier"], + "remoteIdentifier": operationData["ikev2RemoteIdentifier"], + "authenticationMethod": operationData["ikev2AuthenticationMethod"], + "sharedSecret": operationData["ikev2SharedSecret"], + "payloadCertificateUUID": operationData["ikev2PayloadCertificateUUID"], + "extendedAuthEnabled": operationData["ikev2ExtendedAuthEnabled"], + "authName": operationData["ikev2AuthName"], + "authPassword": operationData["ikev2AuthPassword"], + "deadPeerDetectionInterval": operationData["ikev2DeadPeerDetectionInterval"], + "serverCertificateIssuerCommonName": operationData["ikev2ServerCertificateIssuerCommonName"], + "serverCertificateCommonName": operationData["ikev2ServerCertificateCommonName"] + }; + } else if (operationData["vpnType"] == "PulseSecure") { + pulseSecure = { + "remoteAddress": operationData["pulsesecureRemoteAddress"], + "userName": operationData["pulsesecureName"], + "sharedSecret": operationData["pulsesecureSharedSecret"] + }; + } + + var domainsAlways = new Array(); + for (var i = 0; i < operationData["onDemandMatchDomainsAlways"].length; i++) { + domainsAlways.push(operationData["onDemandMatchDomainsAlways"][i].domain); + } + + var domainsNever = new Array(); + for (var i = 0; i < operationData["onDemandMatchDomainsNever"].length; i++) { + domainsNever.push(operationData["onDemandMatchDomainsNever"][i].domain); + } + + var domainsRetry = new Array(); + for (var i = 0; i < operationData["onDemandMatchDomainsOnRetry"].length; i++) { + domainsRetry.push(operationData["onDemandMatchDomainsOnRetry"][i].domain); + } + + payload = { + "operation": { + "userDefinedName": operationData["userDefinedName"], + "overridePrimary": operationData["overridePrimary"], + "onDemandEnabled": operationData["onDemandEnabled"], + "onDemandMatchDomainsAlways": domainsAlways, + "onDemandMatchDomainsNever": domainsNever, + "onDemandMatchDomainsOnRetry": domainsRetry, + "onDemandRules": operationData["onDemandRules"], + "vendorConfigs": operationData["vendorConfigs"], + "vpnType": operationData["vpnType"], + "ppp": ppp, + "ipSec": ipSec, + "ikEv2": ikev2, + "pulseSecure": pulseSecure + } + }; + break; + case iosOperationConstants["PER_APP_VPN_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + var domains = new Array(); + for (var i = 0; i < operationData["safariDomains"].length; i++) { + domains.push(operationData["safariDomains"][i].domain); + } + payload = { + "operation": { + "VPNUUID": operationData["VPNUUID"], + "safariDomains": domains, + "onDemandMatchAppEnabled": operationData["onDemandMatchAppEnabled"] + } + }; + break; + case iosOperationConstants["APP_TO_PER_APP_VPN_MAPPING_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "appLayerVPNMappings": operationData["appLayerVPNMappings"] + } + }; + break; + case iosOperationConstants["RESTRICTIONS_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "allowAccountModification": operationData["restrictionsAllowAccountModification"], + "allowAddingGameCenterFriends": operationData["restrictionsAllowAddingGameCenterFriends"], + "allowAirDrop": operationData["restrictionsAllowAirDrop"], + "allowAppCellularDataModification": operationData["restrictionsAllowAppCellularDataModification"], + "allowAppInstallation": operationData["restrictionsAllowAppInstallation"], + "allowAppRemoval": operationData["restrictionsAllowAppRemoval"], + "allowAssistant": operationData["restrictionsAllowAssistant"], + "allowAssistantUserGeneratedContent": operationData["restrictionsAllowAssistantUserGeneratedContent"], + "allowAssistantWhileLocked": operationData["restrictionsAllowAssistantWhileLocked"], + "allowBookstore": operationData["restrictionsAllowBookstore"], + "allowBookstoreErotica": operationData["restrictionsAllowBookstoreErotica"], + "allowCamera": operationData["restrictionsAllowCamera"], + "allowChat": operationData["restrictionsAllowChat"], + "allowCloudBackup": operationData["restrictionsAllowCloudBackup"], + "allowCloudDocumentSync": operationData["restrictionsAllowCloudDocumentSync"], + "allowCloudKeychainSync": operationData["restrictionsAllowCloudKeychainSync"], + "allowDiagnosticSubmission": operationData["restrictionsAllowDiagnosticSubmission"], + "allowExplicitContent": operationData["restrictionsAllowExplicitContent"], + "allowFindMyFriendsModification": operationData["restrictionsAllowFindMyFriendsModification"], + "allowFingerprintForUnlock": operationData["restrictionsAllowFingerprintForUnlock"], + "allowGameCenter": operationData["restrictionsAllowGameCenter"], + "allowGlobalBackgroundFetchWhenRoaming": operationData["restrictionsAllowGlobalBackgroundFetchWhenRoaming"], + "allowInAppPurchases": operationData["restrictionsAllowInAppPurchases"], + "allowLockScreenControlCenter": operationData["restrictionsAllowLockScreenControlCenter"], + "allowHostPairing": operationData["restrictionsAllowHostPairing"], + "allowLockScreenNotificationsView": operationData["restrictionsAllowLockScreenNotificationsView"], + "allowLockScreenTodayView": operationData["restrictionsAllowLockScreenTodayView"], + "allowMultiplayerGaming": operationData["restrictionsAllowMultiplayerGaming"], + "allowOpenFromManagedToUnmanaged": operationData["restrictionsAllowOpenFromManagedToUnmanaged"], + "allowOpenFromUnmanagedToManaged": operationData["restrictionsAllowOpenFromUnmanagedToManaged"], + "allowOTAPKIUpdates": operationData["restrictionsAllowOTAPKIUpdates"], + "allowPassbookWhileLocked": operationData["restrictionsAllowPassbookWhileLocked"], + "allowPhotoStream": operationData["restrictionsAllowPhotoStream"], + "allowSafari": operationData["restrictionsAllowSafari"], + "safariAllowAutoFill": operationData["restrictionsSafariAllowAutoFill"], + "safariForceFraudWarning": operationData["restrictionsSafariForceFraudWarning"], + "safariAllowJavaScript": operationData["restrictionsSafariAllowJavaScript"], + "safariAllowPopups": operationData["restrictionsSafariAllowPopups"], + "allowScreenShot": operationData["restrictionsAllowScreenShot"], + "allowSharedStream": operationData["restrictionsAllowSharedStream"], + "allowUIConfigurationProfileInstallation": operationData["restrictionsAllowUIConfigurationProfileInstallation"], + "allowUntrustedTLSPrompt": operationData["restrictionsAllowUntrustedTLSPrompt"], + "allowVideoConferencing": operationData["restrictionsAllowVideoConferencing"], + "allowVoiceDialing": operationData["restrictionsAllowVoiceDialing"], + "allowYouTube": operationData["restrictionsAllowYouTube"], + "allowiTunes": operationData["restrictionsAllowITunes"], + "forceAssistantProfanityFilter": operationData["restrictionsForceAssistantProfanityFilter"], + "forceEncryptedBackup": operationData["restrictionsForceEncryptedBackup"], + "forceITunesStorePasswordEntry": operationData["restrictionsForceITunesStorePasswordEntry"], + "forceLimitAdTracking": operationData["restrictionsForceLimitAdTracking"], + "forceAirPlayOutgoingRequestsPairingPassword": operationData["restrictionsForceAirPlayOutgoingRequestsPairingPassword"], + "forceAirPlayIncomingRequestsPairingPassword": operationData["restrictionsForceAirPlayIncomingRequestsPairingPassword"], + "allowManagedAppsCloudSync": operationData["restrictionsAllowManagedAppsCloudSync"], + "allowEraseContentAndSettings": operationData["restrictionsAllowEraseContentAndSettings"], + "allowSpotlightInternetResults": operationData["restrictionsAllowSpotlightInternetResults"], + "allowEnablingRestrictions": operationData["restrictionsAllowEnablingRestrictions"], + "allowActivityContinuation": operationData["restrictionsAllowActivityContinuation"], + "allowEnterpriseBookBackup": operationData["restrictionsAllowEnterpriseBookBackup"], + "allowEnterpriseBookMetadataSync": operationData["restrictionsAllowEnterpriseBookMetadataSync"], + "allowPodcasts": operationData["restrictionsAllowPodcasts"], + "allowDefinitionLookup": operationData["restrictionsAllowDefinitionLookup"], + "allowPredictiveKeyboard": operationData["restrictionsAllowPredictiveKeyboard"], + "allowAutoCorrection": operationData["restrictionsAllowAutoCorrection"], + "allowSpellCheck": operationData["restrictionsAllowSpellCheck"], + "safariAcceptCookies": operationData["restrictionsSafariAcceptCookies"], + "autonomousSingleAppModePermittedAppIDs": operationData["restrictionsAutonomousSingleAppModePermittedAppIDs"] + } + }; + break; + case iosOperationConstants["EMAIL_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "emailAccountDescription": operationData["emailAccountDescription"], + "emailAccountName": operationData["emailAccountName"], + "emailAccountType": operationData["emailAccountType"], + "emailAddress": operationData["emailAddress"], + "incomingMailServerAuthentication": operationData["emailIncomingMailServerAuthentication"], + "incomingMailServerHostName": operationData["emailIncomingMailServerHostname"], + "incomingMailServerPortNumber": operationData["emailIncomingMailServerPort"], + "incomingMailServerUseSSL": operationData["emailIncomingUseSSL"], + "incomingMailServerUsername": operationData["emailIncomingMailServerUsername"], + "incomingPassword": operationData["emailIncomingMailServerPassword"], + "outgoingPassword": operationData["emailOutgoingMailServerPassword"], + "outgoingPasswordSameAsIncomingPassword": operationData["emailOutgoingPasswordSameAsIncomingPassword"], + "outgoingMailServerAuthentication": operationData["emailOutgoingMailServerAuthentication"], + "outgoingMailServerHostName": operationData["emailOutgoingMailServerHostname"], + "outgoingMailServerPortNumber": operationData["emailOutgoingMailServerPort"], + "outgoingMailServerUseSSL": operationData["emailOutgoingUseSSL"], + "outgoingMailServerUsername": operationData["emailOutgoingMailServerUsername"], + "preventMove": operationData["emailPreventMove"], + "preventAppSheet": operationData["emailPreventAppSheet"], + "disableMailRecentsSyncing": operationData["emailDisableMailRecentsSyncing"], + "incomingMailServerIMAPPathPrefix": operationData["emailIncomingMailServerIMAPPathPrefix"], + "smimeenabled": operationData["emailSMIMEEnabled"], + "smimesigningCertificateUUID": operationData["emailSMIMESigningCertificateUUID"], + "smimeencryptionCertificateUUID": operationData["emailSMIMEEncryptionCertificateUUID"], + "smimeenablePerMessageSwitch": operationData["emailSMIMEEnablePerMessageSwitch"] + } + }; + break; + case iosOperationConstants["AIRPLAY_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "airPlayDestinations": operationData["airplayDestinations"], + "airPlayCredentials": operationData["airplayCredentials"] + } + }; + break; + case iosOperationConstants["LDAP_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "accountDescription": operationData["ldapAccountDescription"], + "accountHostName": operationData["ldapAccountHostname"], + "accountUseSSL": operationData["ldapUseSSL"], + "accountUsername": operationData["ldapAccountUsername"], + "accountPassword": operationData["ldapAccountPassword"], + "ldapSearchSettings": operationData["ldapSearchSettings"] + } + }; + break; + case iosOperationConstants["CALENDAR_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "accountDescription": operationData["calendarAccountDescription"], + "hostName": operationData["calendarAccountHostname"], + "username": operationData["calendarAccountUsername"], + "password": operationData["calendarAccountPassword"], + "useSSL": operationData["calendarUseSSL"], + "port": operationData["calendarAccountPort"], + "principalURL": operationData["calendarPrincipalURL"] + } + }; + break; + case iosOperationConstants["CALENDAR_SUBSCRIPTION_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "accountDescription": operationData["calendarSubscriptionDescription"], + "hostName": operationData["calendarSubscriptionHostname"], + "username": operationData["calendarSubscriptionUsername"], + "password": operationData["calendarSubscriptionPassword"], + "useSSL": operationData["calendarSubscriptionUseSSL"] + } + }; + break; + case iosOperationConstants["APN_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "apnConfigurations": operationData["apnConfigurations"] + } + }; + break; + case iosOperationConstants["DOMAIN_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "emailDomains": operationData["emailDomains"], + "webDomains": operationData["webDomains"] + } + }; + break; + case + iosOperationConstants["CELLULAR_OPERATION_CODE"] + : + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "attachAPNName": operationData["cellularAttachAPNName"], + "authenticationType": operationData["cellularAuthenticationType"], + "username": operationData["cellularUsername"], + "password": operationData["cellularPassword"], + "apnConfigurations": operationData["cellularAPNConfigurations"] + } + }; + break; + case + iosOperationConstants["NOTIFICATION_OPERATION_CODE"] + : + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "messageTitle": operationData["messageTitle"], + "messageText": operationData["messageText"] + } + }; + break; + default: + // If the operation is neither of above, it is a command operation + operationType = operationTypeConstants["COMMAND"]; + // Operation payload of a command operation is simply an array of device IDs + payload = deviceList; + } + + if (operationType == operationTypeConstants["PROFILE"] && deviceList) { + payload["deviceIDs"] = deviceList; + } + return payload; + } + ; + + /** + * Convert the android platform specific code to the generic payload. + * TODO: think of the possibility to follow a pattern to the key name (namespace?) + * @param operationCode + * @param operationPayload + * @returns {{}} + */ + privateMethods.generateGenericPayloadFromAndroidPayload = function (operationCode, operationPayload) { + var payload = {}; + operationPayload = JSON.parse(operationPayload); + switch (operationCode) { + case androidOperationConstants["PASSCODE_POLICY_OPERATION_CODE"]: + payload = { + "passcodePolicyAllowSimple": operationPayload["allowSimple"], + "passcodePolicyRequireAlphanumeric": operationPayload["requireAlphanumeric"], + "passcodePolicyMinLength": operationPayload["minLength"], + "passcodePolicyMinComplexChars": operationPayload["minComplexChars"], + "passcodePolicyMaxPasscodeAgeInDays": operationPayload["maxPINAgeInDays"], + "passcodePolicyPasscodeHistory": operationPayload["pinHistory"], + "passcodePolicyMaxFailedAttempts": operationPayload["maxFailedAttempts"] + }; + break; + case androidOperationConstants["CAMERA_OPERATION_CODE"]: + payload = operationPayload; + break; + case androidOperationConstants["ENCRYPT_STORAGE_OPERATION_CODE"]: + payload = { + "encryptStorageEnabled": operationPayload["encrypted"] + }; + break; + case androidOperationConstants["WORK_PROFILE_CODE"]: + payload = { + "workProfilePolicyProfileName": operationPayload["profileName"], + "workProfilePolicyEnableSystemApps": operationPayload["enableSystemApps"], + "workProfilePolicyHideSystemApps": operationPayload["hideSystemApps"], + "workProfilePolicyUnhideSystemApps": operationPayload["unhideSystemApps"], + "workProfilePolicyEnablePlaystoreApps": operationPayload["enablePlaystoreApps"] + }; + break; + case androidOperationConstants["WIFI_OPERATION_CODE"]: + payload = { + "wifiSSID": operationPayload["ssid"], + "wifiPassword": operationPayload["password"], + "wifiType": operationPayload["type"], + "wifiEAP": operationPayload["eap"], + "wifiPhase2": operationPayload["phase2"], + "wifiProvisioning": operationPayload["provisioning"], + "wifiIdentity": operationPayload["identity"], + "wifiAnoIdentity": operationPayload["anonymousIdentity"], + "wifiCaCert": operationPayload["cacert"], + "wifiCaCertName": operationPayload["cacertName"] + }; + break; + case androidOperationConstants["VPN_OPERATION_CODE"]: + payload = { + "serverAddress": operationPayload["serverAddress"], + "serverPort": operationPayload["serverPort"], + "sharedSecret": operationPayload["sharedSecret"], + "dnsServer": operationPayload["dnsServer"] + }; + break; + case androidOperationConstants["APPLICATION_OPERATION_CODE"]: + payload = { + "restrictionType": operationPayload["restriction-type"], + "restrictedApplications": operationPayload["restricted-applications"] + }; + break; + case androidOperationConstants["SYSTEM_UPDATE_POLICY_CODE"]: + if (operationPayload["type"] != "window") { + payload = { + "cosuSystemUpdatePolicyType": operationPayload["type"] + }; + } else { + payload = { + "cosuSystemUpdatePolicyType": operationPayload["type"], + "cosuSystemUpdatePolicyWindowStartTime": operationPayload["startTime"], + "cosuSystemUpdatePolicyWindowEndTime": operationPayload["endTime"] + }; + } + break; + case androidOperationConstants["KIOSK_APPS_CODE"]: + payload = { + "cosuWhitelistedApplications": operationPayload["whitelistedApplications"] + }; + break; + } + return payload; + }; + + privateMethods.generateAndroidOperationPayload = function (operationCode, operationData, deviceList) { + var payload; + var operationType; + switch (operationCode) { + case androidOperationConstants["CAMERA_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "CAMERA": operationData["cameraEnabled"], + "DISALLOW_ADJUST_VOLUME": operationData["disallowAdjustVolumeEnabled"], + "DISALLOW_CONFIG_BLUETOOTH": operationData["disallowConfigBluetooth"], + "DISALLOW_CONFIG_CELL_BROADCASTS": operationData["disallowConfigCellBroadcasts"], + "DISALLOW_CONFIG_CREDENTIALS": operationData["disallowConfigCredentials"], + "DISALLOW_CONFIG_MOBILE_NETWORKS": operationData["disallowConfigMobileNetworks"], + "DISALLOW_CONFIG_TETHERING": operationData["disallowConfigTethering"], + "DISALLOW_CONFIG_VPN": operationData["disallowConfigVpn"], + "DISALLOW_CONFIG_WIFI": operationData["disallowConfigWifi"], + "DISALLOW_APPS_CONTROL": operationData["disallowAppControl"], + "DISALLOW_CREATE_WINDOWS": operationData["disallowCreateWindows"], + "DISALLOW_CROSS_PROFILE_COPY_PASTE": operationData["disallowCrossProfileCopyPaste"], + "DISALLOW_DEBUGGING_FEATURES": operationData["disallowDebugging"], + "DISALLOW_FACTORY_RESET": operationData["disallowFactoryReset"], + "DISALLOW_ADD_USER": operationData["disallowAddUser"], + "DISALLOW_INSTALL_APPS": operationData["disallowInstallApps"], + "DISALLOW_INSTALL_UNKNOWN_SOURCES": operationData["disallowInstallUnknownSources"], + "DISALLOW_MODIFY_ACCOUNTS": operationData["disallowModifyAccounts"], + "DISALLOW_MOUNT_PHYSICAL_MEDIA": operationData["disallowMountPhysicalMedia"], + "DISALLOW_NETWORK_RESET": operationData["disallowNetworkReset"], + "DISALLOW_OUTGOING_BEAM": operationData["disallowOutgoingBeam"], + "DISALLOW_OUTGOING_CALLS": operationData["disallowOutgoingCalls"], + "DISALLOW_REMOVE_USER": operationData["disallowRemoveUser"], + "DISALLOW_SAFE_BOOT": operationData["disallowSafeBoot"], + "DISALLOW_SHARE_LOCATION": operationData["disallowLocationSharing"], + "DISALLOW_SMS": operationData["disallowSMS"], + "DISALLOW_UNINSTALL_APPS": operationData["disallowUninstallApps"], + "DISALLOW_UNMUTE_MICROPHONE": operationData["disallowUnmuteMicrophone"], + "DISALLOW_USB_FILE_TRANSFER": operationData["disallowUSBFileTransfer"], + "ALLOW_PARENT_PROFILE_APP_LINKING": operationData["disallowParentProfileAppLinking"], + "ENSURE_VERIFY_APPS": operationData["ensureVerifyApps"], + "AUTO_TIME": operationData["enableAutoTime"], + "SET_SCREEN_CAPTURE_DISABLED": operationData["disableScreenCapture"], + "SET_STATUS_BAR_DISABLED": operationData["disableStatusBar"] + } + }; + break; + case androidOperationConstants["CHANGE_LOCK_CODE_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "lockCode": operationData["lockCode"] + } + }; + break; + case androidOperationConstants["ENCRYPT_STORAGE_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "encrypted": operationData["encryptStorageEnabled"] + } + }; + break; + case androidOperationConstants["NOTIFICATION_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + //"message" : operationData["message"] + "messageText": operationData["messageText"], + "messageTitle": operationData["messageTitle"] + } + }; + break; + case androidOperationConstants["UPGRADE_FIRMWARE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "schedule": operationData["schedule"], + "server": operationData["server"] + } + }; + break; + case androidOperationConstants["WIPE_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "pin": operationData["pin"] + } + }; + break; + case androidOperationConstants["WIFI_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "ssid": operationData["wifiSSID"], + "type": operationData["wifiType"], + "password": operationData["wifiPassword"], + "eap": operationData["wifiEAP"], + "phase2": operationData["wifiPhase2"], + "provisioning": operationData["wifiProvisioning"], + "identity": operationData["wifiIdentity"], + "anonymousIdentity": operationData["wifiAnoIdentity"], + "cacert": operationData["wifiCaCert"], + "cacertName": operationData["wifiCaCertName"] + } + }; + break; + case androidOperationConstants["VPN_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "serverAddress": operationData["serverAddress"], + "serverPort": operationData["serverPort"], + "sharedSecret": operationData["sharedSecret"], + "dnsServer": operationData["dnsServer"] + } + }; + break; + case androidOperationConstants["LOCK_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "message": operationData["lock-message"], + "isHardLockEnabled": operationData["hard-lock"] + } + }; + break; + case androidOperationConstants["WORK_PROFILE_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "profileName": operationData["workProfilePolicyProfileName"], + "enableSystemApps": operationData["workProfilePolicyEnableSystemApps"], + "hideSystemApps": operationData["workProfilePolicyHideSystemApps"], + "unhideSystemApps": operationData["workProfilePolicyUnhideSystemApps"], + "enablePlaystoreApps": operationData["workProfilePolicyEnablePlaystoreApps"] + } + }; + break; + case androidOperationConstants["PASSCODE_POLICY_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "allowSimple": operationData["passcodePolicyAllowSimple"], + "requireAlphanumeric": operationData["passcodePolicyRequireAlphanumeric"], + "minLength": operationData["passcodePolicyMinLength"], + "minComplexChars": operationData["passcodePolicyMinComplexChars"], + "maxPINAgeInDays": operationData["passcodePolicyMaxPasscodeAgeInDays"], + "pinHistory": operationData["passcodePolicyPasscodeHistory"], + "maxFailedAttempts": operationData["passcodePolicyMaxFailedAttempts"] + } + }; + break; + case androidOperationConstants["APPLICATION_OPERATION_CODE"]: + payload = { + "operation": { + "restriction-type": operationData["restrictionType"], + "restricted-applications": operationData["restrictedApplications"] + } + }; + break; + case androidOperationConstants["SYSTEM_UPDATE_POLICY_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + if (operationData["cosuSystemUpdatePolicyType"] != "window") { + payload = { + "operation": { + "type": operationData["cosuSystemUpdatePolicyType"] + } + }; + } else { + payload = { + "operation": { + "type": operationData["cosuSystemUpdatePolicyType"], + "startTime": operationData["cosuSystemUpdatePolicyWindowStartTime"], + "endTime": operationData["cosuSystemUpdatePolicyWindowEndTime"] + } + }; + } + break; + case androidOperationConstants["KIOSK_APPS_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "whitelistedApplications": operationData["cosuWhitelistedApplications"] + } + }; + break; + default: + // If the operation is neither of above, it is a command operation + operationType = operationTypeConstants["COMMAND"]; + // Operation payload of a command operation is simply an array of device IDs + payload = deviceList; + } + + if (operationType == operationTypeConstants["PROFILE"] && deviceList) { + payload["deviceIDs"] = deviceList; + } + + return payload; + }; + + publicMethods.getAndroidServiceEndpoint = function (operationCode) { + var featureMap = { + "WIFI": "configure-wifi", + "CAMERA": "control-camera", + "VPN": "configure-vpn", + "DEVICE_LOCK": "lock-devices", + "DEVICE_UNLOCK": "unlock-devices", + "DEVICE_LOCATION": "location", + "CLEAR_PASSWORD": "clear-password", + "APPLICATION_LIST": "get-application-list", + "DEVICE_RING": "ring", + "DEVICE_REBOOT": "reboot", + "UPGRADE_FIRMWARE": "upgrade-firmware", + "DEVICE_MUTE": "mute", + "NOTIFICATION": "send-notification", + "ENCRYPT_STORAGE": "encrypt-storage", + "CHANGE_LOCK_CODE": "change-lock-code", + "WEBCLIP": "set-webclip", + "INSTALL_APPLICATION": "install-application", + "UNINSTALL_APPLICATION": "uninstall-application", + "BLACKLIST_APPLICATIONS": "blacklist-applications", + "PASSCODE_POLICY": "set-password-policy", + "ENTERPRISE_WIPE": "enterprise-wipe", + "WIPE_DATA": "wipe" + }; + //return "/mdm-android-agent/operation/" + featureMap[operationCode]; + return "/api/device-mgt/android/v1.0/admin/devices/" + featureMap[operationCode]; + }; + + /** + * Convert the windows platform specific code to the generic payload. + * TODO: think of the possibility to follow a pattern to the key name (namespace?) + * @param operationCode + * @param operationPayload + * @returns {{}} + */ + privateMethods.generateGenericPayloadFromWindowsPayload = function (operationCode, operationPayload) { + var payload = {}; + operationPayload = JSON.parse(operationPayload); + switch (operationCode) { + case windowsOperationConstants["PASSCODE_POLICY_OPERATION_CODE"]: + payload = { + "passcodePolicyAllowSimple": operationPayload["allowSimple"], + "passcodePolicyRequireAlphanumeric": operationPayload["requireAlphanumeric"], + "passcodePolicyMinLength": operationPayload["minLength"], + "passcodePolicyMinComplexChars": operationPayload["minComplexChars"], + "passcodePolicyMaxPasscodeAgeInDays": operationPayload["maxPINAgeInDays"], + "passcodePolicyPasscodeHistory": operationPayload["pinHistory"], + "passcodePolicyMaxFailedAttempts": operationPayload["maxFailedAttempts"] + }; + break; + case windowsOperationConstants["CAMERA_OPERATION_CODE"]: + payload = { + "cameraEnabled": operationPayload["enabled"] + }; + break; + case windowsOperationConstants["ENCRYPT_STORAGE_OPERATION_CODE"]: + payload = { + "encryptStorageEnabled": operationPayload["encrypted"] + }; + break; + } + return payload; + }; + + privateMethods.generateWindowsOperationPayload = function (operationCode, operationData, deviceList) { + var payload; + var operationType; + switch (operationCode) { + case windowsOperationConstants["CAMERA_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "enabled": operationData["cameraEnabled"] + } + }; + break; + case windowsOperationConstants["CHANGE_LOCK_CODE_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "lockCode": operationData["lockCode"] + } + }; + break; + case windowsOperationConstants["ENCRYPT_STORAGE_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "encrypted": operationData["encryptStorageEnabled"] + } + }; + break; + case windowsOperationConstants["NOTIFICATION_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "message": operationData["message"] + } + }; + break; + case windowsOperationConstants["PASSCODE_POLICY_OPERATION_CODE"]: + operationType = operationTypeConstants["PROFILE"]; + payload = { + "operation": { + "allowSimple": operationData["passcodePolicyAllowSimple"], + "requireAlphanumeric": operationData["passcodePolicyRequireAlphanumeric"], + "minLength": operationData["passcodePolicyMinLength"], + "minComplexChars": operationData["passcodePolicyMinComplexChars"], + "maxPINAgeInDays": operationData["passcodePolicyMaxPasscodeAgeInDays"], + "pinHistory": operationData["passcodePolicyPasscodeHistory"], + "maxFailedAttempts": operationData["passcodePolicyMaxFailedAttempts"] + } + }; + break; + default: + // If the operation is neither of above, it is a command operation + operationType = operationTypeConstants["COMMAND"]; + // Operation payload of a command operation is simply an array of device IDs + payload = deviceList; + } + + if (operationType == operationTypeConstants["PROFILE"] && deviceList) { + payload["deviceIDs"] = deviceList; + } + + return payload; + }; + + + publicMethods.getWindowsServiceEndpoint = function (operationCode) { + var featureMap = { + "DEVICE_LOCK": "lock-devices", + "DISENROLL": "disenroll", + "DEVICE_RING": "ring-device", + "LOCK_RESET": "lock-reset", + "WIPE_DATA": "wipe-data" + }; + //return "/mdm-windows-agent/services/windows/operation/" + featureMap[operationCode]; + return "/api/device-mgt/windows/v1.0/services/windows/admin/devices/" + featureMap[operationCode]; + }; + /** + * Get the icon for the featureCode + * @param operationCode + * @returns icon class + */ + publicMethods.getAndroidIconForFeature = function (operationCode) { + var featureMap = { + "DEVICE_LOCK": "fw-lock", + "DEVICE_LOCATION": "fw-map-location", + "CLEAR_PASSWORD": "fw-clear", + "ENTERPRISE_WIPE": "fw-block", + "WIPE_DATA": "fw-delete", + "DEVICE_RING": "fw-dial-up", + "DEVICE_REBOOT": "fw-refresh", + "UPGRADE_FIRMWARE": "fw-hardware", + "DEVICE_MUTE": "fw-mute", + "NOTIFICATION": "fw-message", + "CHANGE_LOCK_CODE": "fw-security", + "DEVICE_UNLOCK": "fw-key" + }; + return featureMap[operationCode]; + }; + + /** + * Get the icon for the featureCode + * @param operationCode + * @returns icon class + */ + publicMethods.getWindowsIconForFeature = function (operationCode) { + var featureMap = { + "DEVICE_LOCK": "fw-lock", + "DEVICE_RING": "fw-dial-up", + "DISENROLL": "fw-export", + "LOCK_RESET": "fw-key", + "WIPE_DATA": "fw-delete" + }; + return featureMap[operationCode]; + }; + + /** + * Get the icon for the featureCode + * @param operationCode + * @returns icon class + */ + publicMethods.getIOSIconForFeature = function (operationCode) { + var featureMap = { + "DEVICE_LOCK": "fw-lock", + "LOCATION": "fw-map-location", + "ENTERPRISE_WIPE": "fw-block", + "NOTIFICATION": "fw-message", + "RING": "fw-dial-up" + }; + return featureMap[operationCode]; + }; + + /** + * Filter a list by a data attribute. + * @param prop + * @param val + * @returns {Array} + */ + $.fn.filterByData = function (prop, val) { + return this.filter( + function () { + return $(this).data(prop) == val; + } + ); + }; + + /** + * Method to generate Platform specific operation payload. + * + * @param platformType Platform Type of the profile + * @param operationCode Operation Codes to generate the profile from + * @param deviceList Optional device list to include in payload body for operations + * @returns {*} + */ + publicMethods.generatePayload = function (platformType, operationCode, deviceList) { + var payload; + var operationData = {}; + // capturing form input data designated by .operationDataKeys + $(".operation-data").filterByData("operation-code", operationCode).find(".operationDataKeys").each( + function () { + var operationDataObj = $(this); + var key = operationDataObj.data("key"); + var value; + if (operationDataObj.is(":text") || operationDataObj.is("textarea") || + operationDataObj.is(":password") || operationDataObj.is("input[type=hidden]")) { + value = operationDataObj.val(); + operationData[key] = value; + } else if (operationDataObj.is(":checkbox")) { + value = operationDataObj.is(":checked"); + operationData[key] = value; + } else if (operationDataObj.is(":radio") && operationDataObj.is(":checked")) { + value = operationDataObj.val(); + operationData[key] = value; + } else if (operationDataObj.is("select")) { + value = operationDataObj.find("option:selected").attr("value"); + operationData[key] = value; + } else if (operationDataObj.hasClass("grouped-array-input")) { + value = []; + var childInput; + var childInputValue; + if (operationDataObj.hasClass("one-column-input-array")) { + $(".child-input", this).each(function () { + childInput = $(this); + if (childInput.is(":text") || childInput.is("textarea") || childInput.is(":password") + || childInput.is("input[type=hidden]")) { + childInputValue = childInput.val(); + } else if (childInput.is(":checkbox")) { + childInputValue = childInput.is(":checked"); + } else if (childInput.is("select")) { + childInputValue = childInput.find("option:selected").attr("value"); + } + // push to value + value.push(childInputValue); + }); + } else if (operationDataObj.hasClass("valued-check-box-array")) { + $(".child-input", this).each(function () { + childInput = $(this); + if (childInput.is(":checked")) { + // get associated value with check-box + childInputValue = childInput.data("value"); + // push to value + value.push(childInputValue); + } + }); + } else if (operationDataObj.hasClass("multi-column-joined-input-array")) { + var columnCount = operationDataObj.data("column-count"); + var inputCount = 0; + var joinedInput; + $(".child-input", this).each(function () { + childInput = $(this); + if (childInput.is(":text") || childInput.is("textarea") || childInput.is(":password") + || childInput.is("input[type=hidden]")) { + childInputValue = childInput.val(); + } else if (childInput.is(":checkbox")) { + childInputValue = childInput.is(":checked"); + } else if (childInput.is("select")) { + childInputValue = childInput.find("option:selected").attr("value"); + } + inputCount++; + if (inputCount % columnCount == 1) { + // initialize joinedInput value + joinedInput = ""; + // append childInputValue to joinedInput + joinedInput += childInputValue; + } else if ((inputCount % columnCount) >= 2) { + // append childInputValue to joinedInput + joinedInput += childInputValue; + } else { + // append childInputValue to joinedInput + joinedInput += childInputValue; + // push to value + value.push(joinedInput); + } + }); + } else if (operationDataObj.hasClass("multi-column-key-value-pair-array")) { + columnCount = operationDataObj.data("column-count"); + inputCount = 0; + var childInputKey; + var keyValuePairJson; + $(".child-input", this).each(function () { + childInput = $(this); + childInputKey = childInput.data("child-key"); + if (childInput.is(":text") || childInput.is("textarea") || childInput.is(":password") + || childInput.is("input[type=hidden]")) { + childInputValue = childInput.val(); + } else if (childInput.is(":checkbox")) { + childInputValue = childInput.is(":checked"); + } else if (childInput.is("select")) { + childInputValue = childInput.find("option:selected").attr("value"); + } + inputCount++; + if ((inputCount % columnCount) == 1) { + // initialize keyValuePairJson value + keyValuePairJson = {}; + // set key-value-pair + keyValuePairJson[childInputKey] = childInputValue; + } else if ((inputCount % columnCount) >= 2) { + // set key-value-pair + keyValuePairJson[childInputKey] = childInputValue; + } else { + // set key-value-pair + keyValuePairJson[childInputKey] = childInputValue; + // push to value + value.push(keyValuePairJson); + } + }); + } + operationData[key] = value; + } + } + ); + + switch (platformType) { + case platformTypeConstants["ANDROID"]: + payload = privateMethods.generateAndroidOperationPayload(operationCode, operationData, deviceList); + break; + case platformTypeConstants["IOS"]: + payload = privateMethods.generateIOSOperationPayload(operationCode, operationData, deviceList); + break; + case platformTypeConstants["WINDOWS"]: + payload = privateMethods.generateWindowsOperationPayload(operationCode, operationData, deviceList); + break; + } + return payload; + }; + + /** + * Method to populate the Platform specific operation payload. + * + * @param platformType Platform Type of the profile + * @param operationCode Operation Codes to generate the profile from + * @param operationPayload payload + * @returns {*} + */ + publicMethods.populateUI = function (platformType, operationCode, operationPayload) { + var uiPayload; + switch (platformType) { + case platformTypeConstants["ANDROID"]: + uiPayload = privateMethods.generateGenericPayloadFromAndroidPayload(operationCode, operationPayload); + break; + case platformTypeConstants["IOS"]: + uiPayload = privateMethods.generateGenericPayloadFromIOSPayload(operationCode, operationPayload); + break; + case platformTypeConstants["WINDOWS"]: + uiPayload = privateMethods.generateGenericPayloadFromWindowsPayload(operationCode, operationPayload); + break; + } + // capturing form input data designated by .operationDataKeys + $(".operation-data").filterByData("operation-code", operationCode).find(".operationDataKeys").each( + function () { + var operationDataObj = $(this); + //TODO :remove + //operationDataObj.prop('disabled', true) + var key = operationDataObj.data("key"); + // retrieve corresponding input value associated with the key + var value = uiPayload[key]; + // populating input value according to the type of input + if (operationDataObj.is(":text") || + operationDataObj.is("textarea") || + operationDataObj.is(":password") || + operationDataObj.is("input[type=hidden]")) { + operationDataObj.val(value); + } else if (operationDataObj.is(":checkbox")) { + operationDataObj.prop("checked", value); + } else if (operationDataObj.is(":radio")) { + if (operationDataObj.val() == uiPayload[key]) { + operationDataObj.attr("checked", true); + operationDataObj.trigger("click"); + } + } else if (operationDataObj.is("select")) { + operationDataObj.val(value); + /* trigger a change of value, so that if slidable panes exist, + make them slide-down or slide-up accordingly */ + operationDataObj.trigger("change"); + } else if (operationDataObj.hasClass("grouped-array-input")) { + // then value is complex + var i, childInput; + var childInputIndex = 0; + // var childInputValue; + if (operationDataObj.hasClass("one-column-input-array")) { + // generating input fields to populate complex value + if (value) { + for (i = 0; i < value.length; ++i) { + operationDataObj.parent().find("a").filterByData("click-event", "add-form").click(); + } + // traversing through each child input + $(".child-input", this).each(function () { + childInput = $(this); + var childInputValue = value[childInputIndex]; + // populating extracted value in the UI according to the input type + if (childInput.is(":text") || + childInput.is("textarea") || + childInput.is(":password") || + childInput.is("input[type=hidden]") || + childInput.is("select")) { + childInput.val(childInputValue); + } else if (childInput.is(":checkbox")) { + operationDataObj.prop("checked", childInputValue); + } + // incrementing childInputIndex + childInputIndex++; + }); + } + } else if (operationDataObj.hasClass("valued-check-box-array")) { + // traversing through each child input + $(".child-input", this).each(function () { + childInput = $(this); + // check if corresponding value of current checkbox exists in the array of values + if (value) { + if (value.indexOf(childInput.data("value")) != -1) { + // if YES, set checkbox as checked + childInput.prop("checked", true); + } + } + }); + } else if (operationDataObj.hasClass("multi-column-joined-input-array")) { + // generating input fields to populate complex value + if (value) { + for (i = 0; i < value.length; ++i) { + operationDataObj.parent().find("a").filterByData("click-event", "add-form").click(); + } + var columnCount = operationDataObj.data("column-count"); + var multiColumnJoinedInputArrayIndex = 0; + // handling scenarios specifically + if (operationDataObj.attr("id") == "wifi-mcc-and-mncs") { + // traversing through each child input + $(".child-input", this).each(function () { + childInput = $(this); + var multiColumnJoinedInput = value[multiColumnJoinedInputArrayIndex]; + var childInputValue; + if ((childInputIndex % columnCount) == 0) { + childInputValue = multiColumnJoinedInput.substring(3, 0) + } else { + childInputValue = multiColumnJoinedInput.substring(3); + // incrementing childInputIndex + multiColumnJoinedInputArrayIndex++; + } + // populating extracted value in the UI according to the input type + if (childInput.is(":text") || + childInput.is("textarea") || + childInput.is(":password") || + childInput.is("input[type=hidden]") || + childInput.is("select")) { + childInput.val(childInputValue); + } else if (childInput.is(":checkbox")) { + operationDataObj.prop("checked", childInputValue); + } + // incrementing childInputIndex + childInputIndex++; + }); + } + } + } else if (operationDataObj.hasClass("multi-column-key-value-pair-array")) { + // generating input fields to populate complex value + if (value) { + for (i = 0; i < value.length; ++i) { + operationDataObj.parent().find("a").filterByData("click-event", "add-form").click(); + } + columnCount = operationDataObj.data("column-count"); + var multiColumnKeyValuePairArrayIndex = 0; + // traversing through each child input + $(".child-input", this).each(function () { + childInput = $(this); + var multiColumnKeyValuePair = value[multiColumnKeyValuePairArrayIndex]; + var childInputKey = childInput.data("child-key"); + var childInputValue = multiColumnKeyValuePair[childInputKey]; + // populating extracted value in the UI according to the input type + if (childInput.is(":text") || + childInput.is("textarea") || + childInput.is(":password") || + childInput.is("input[type=hidden]") || + childInput.is("select")) { + childInput.val(childInputValue); + } else if (childInput.is(":checkbox")) { + operationDataObj.prop("checked", childInputValue); + } + // incrementing multiColumnKeyValuePairArrayIndex for the next row of inputs + if ((childInputIndex % columnCount) == (columnCount - 1)) { + multiColumnKeyValuePairArrayIndex++; + } + // incrementing childInputIndex + childInputIndex++; + }); + } + } + } + } + ); + }; + + /** + * generateProfile method is only used for policy-creation UIs. + * + * @param platformType Platform Type of the profile + * @param operationCodes Operation codes to generate the profile from + * @returns {{}} + */ + publicMethods.generateProfile = function (platformType, operationCodes) { + var generatedProfile = {}; + for (var i = 0; i < operationCodes.length; ++i) { + var operationCode = operationCodes[i]; + var payload = publicMethods.generatePayload(platformType, operationCode, null); + + if (platformType == platformTypeConstants["ANDROID"] && + operationCodes[i] == androidOperationConstants["CAMERA_OPERATION_CODE"]) { + var operations = payload["operation"]; + for (var key in operations) { + operationCode = key; + var restriction = false; + if (operations[key]) { + restriction = true; + } + var payloadResult = { + "operation": { + "enabled": restriction + } + }; + generatedProfile[operationCode] = payloadResult["operation"]; + } + + } else { + generatedProfile[operationCode] = payload["operation"]; + } + } + return generatedProfile; + }; + + /** + * populateProfile method is used to populate the html ui with saved payload. + * + * @param platformType Platform Type of the profile + * @param payload List of profileFeatures + * @returns [] configuredOperations array + */ + publicMethods.populateProfile = function (platformType, payload) { + var i, configuredOperations = []; + var restrictions = {}; + for (i = 0; i < payload.length; ++i) { + var configuredFeature = payload[i]; + var featureCode = configuredFeature["featureCode"]; + var operationPayload = configuredFeature["content"]; + if (platformType == platformTypeConstants["ANDROID"]) { + var restriction = JSON.parse(operationPayload); + if (featureCode == androidOperationConstants["CAMERA_OPERATION_CODE"]) { + restrictions["cameraEnabled"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_ADJUST_VOLUME"]) { + restrictions["disallowAdjustVolumeEnabled"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_CONFIG_BLUETOOTH"]) { + restrictions["disallowConfigBluetooth"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_CONFIG_CELL_BROADCASTS"]) { + restrictions["disallowConfigCellBroadcasts"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_CONFIG_CREDENTIALS"]) { + restrictions["disallowConfigCredentials"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_CONFIG_MOBILE_NETWORKS"]) { + restrictions["disallowConfigMobileNetworks"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_CONFIG_TETHERING"]) { + restrictions["disallowConfigTethering"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_CONFIG_VPN"]) { + restrictions["disallowConfigVpn"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_CONFIG_WIFI"]) { + restrictions["disallowConfigWifi"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_APPS_CONTROL"]) { + restrictions["disallowAppControl"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_CREATE_WINDOWS"]) { + restrictions["disallowCreateWindows"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_CROSS_PROFILE_COPY_PASTE"]) { + restrictions["disallowCrossProfileCopyPaste"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_DEBUGGING_FEATURES"]) { + restrictions["disallowDebugging"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_FACTORY_RESET"]) { + restrictions["disallowFactoryReset"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_ADD_USER"]) { + restrictions["disallowAddUser"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_INSTALL_APPS"]) { + restrictions["disallowInstallApps"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_INSTALL_UNKNOWN_SOURCES"]) { + restrictions["disallowInstallUnknownSources"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_MODIFY_ACCOUNTS"]) { + restrictions["disallowModifyAccounts"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_MOUNT_PHYSICAL_MEDIA"]) { + restrictions["disallowMountPhysicalMedia"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_NETWORK_RESET"]) { + restrictions["disallowNetworkReset"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_OUTGOING_BEAM"]) { + restrictions["disallowOutgoingBeam"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_OUTGOING_CALLS"]) { + restrictions["disallowOutgoingCalls"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_REMOVE_USER"]) { + restrictions["disallowRemoveUser"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_SAFE_BOOT"]) { + restrictions["disallowSafeBoot"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_SHARE_LOCATION"]) { + restrictions["disallowLocationSharing"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_SMS"]) { + restrictions["disallowSMS"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_UNINSTALL_APPS"]) { + restrictions["disallowUninstallApps"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_UNMUTE_MICROPHONE"]) { + restrictions["disallowUnmuteMicrophone"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["DISALLOW_USB_FILE_TRANSFER"]) { + restrictions["disallowUSBFileTransfer"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["ALLOW_PARENT_PROFILE_APP_LINKING"]) { + restrictions["disallowParentProfileAppLinking"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["ENSURE_VERIFY_APPS"]) { + restrictions["ensureVerifyApps"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["AUTO_TIME"]) { + restrictions["enableAutoTime"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["SET_SCREEN_CAPTURE_DISABLED"]) { + restrictions["disableScreenCapture"] = restriction["enabled"]; + continue; + } else if (featureCode == androidOperationConstants["SET_STATUS_BAR_DISABLED"]) { + restrictions["disableStatusBar"] = restriction["enabled"]; + continue; + } + } + //push the feature-code to the configuration array + configuredOperations.push(featureCode); + publicMethods.populateUI(platformType, featureCode, operationPayload); + } + if (typeof restrictions.cameraEnabled !== 'undefined') { + configuredOperations.push(androidOperationConstants["CAMERA_OPERATION_CODE"]); + publicMethods.populateUI(platformType, androidOperationConstants["CAMERA_OPERATION_CODE"], JSON.stringify(restrictions)); + } + return configuredOperations; + }; + + return publicMethods; +}(); diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.type-view/public/js/type-view.js b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.type-view/public/js/type-view.js new file mode 100644 index 000000000..681a484f3 --- /dev/null +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.type-view/public/js/type-view.js @@ -0,0 +1,385 @@ +/* + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * WSO2 Inc. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +var modalPopup = ".modal", + modalPopupContainer = modalPopup + " .modal-content", + modalPopupContent = modalPopup + " .modal-content"; + +var emmAdminBasePath = "/api/device-mgt/v1.0"; + +//function openCollapsedNav() { +// $(".wr-hidden-nav-toggle-btn").addClass("active"); +// $("#hiddenNav").slideToggle("slideDown", function () { +// if ($(this).css("display") == "none") { +// $(".wr-hidden-nav-toggle-btn").removeClass("active"); +// } +// }); +//} + +/* + * set popup maximum height function. + */ +function setPopupMaxHeight() { + var maxHeight = "max-height"; + var marginTop = "margin-top"; + var body = "body"; + $(modalPopupContent).css(maxHeight, ($(body).height() - ($(body).height() / 100 * 30))); + $(modalPopupContainer).css(marginTop, (-($(modalPopupContainer).height() / 2))); +} + +/* + * show popup function. + */ +function showPopup() { + $(modalPopup).modal('show'); +} + +/* + * hide popup function. + */ +function hidePopup() { + $(modalPopupContent).html(""); + $(modalPopupContent).removeClass("operation-data"); + $(modalPopup).modal('hide'); + $('body').removeClass('modal-open').css('padding-right','0px'); + $('.modal-backdrop').remove(); +} + +/* + * QR-code generation function. + */ +function generateQRCode(qrCodeClass) { + var enrollmentURL = $("#qr-code-modal").data("enrollment-url"); + $(qrCodeClass).qrcode({ + text: enrollmentURL, + width: 200, + height: 200 + }); +} + +function toggleEnrollment() { + $(".modal-content").html($("#qr-code-modal").html()); + generateQRCode(".modal-content .qr-code"); + showPopup(); +} + +var updateNotificationCountOnSuccess = function (data, textStatus, jqXHR) { + var notificationBubble = "#notification-bubble"; + if (jqXHR.status == 200 && data) { + var responsePayload = JSON.parse(data); + var newNotificationsCount = responsePayload["count"]; + if (newNotificationsCount > 0) { + $(notificationBubble).html(newNotificationsCount); + $(notificationBubble).show(); + } else { + $(notificationBubble).hide(); + } + } +}; + +function updateNotificationCountOnError() { + var notificationBubble = "#notification-bubble"; + $(notificationBubble).html("Error"); + $(notificationBubble).show(); +} + +function loadNewNotificationsOnSideViewPanel() { + if ($("#right-sidebar").attr("is-authorized") == "false") { + $("#notification-bubble-wrapper").remove(); + } else { + var serviceURL = emmAdminBasePath + "/notifications?status=NEW"; + invokerUtil.get(serviceURL, updateNotificationCountOnSuccess, updateNotificationCountOnError); + loadNewNotifications(); + } +} + +function loadNewNotifications() { + var messageSideBar = ".sidebar-messages"; + if ($("#right-sidebar").attr("is-authorized") == "false") { + $(messageSideBar).html("

You are not authorized to view notifications.

"); + } else { + var notifications = $("#notifications"); + var currentUser = notifications.data("currentUser"); + + $.template("notification-listing", notifications.attr("src"), function (template) { + var serviceURL = emmAdminBasePath + "/notifications?offset=0&limit=5&status=NEW"; + invokerUtil.get( + serviceURL, + // on success + function (data, textStatus, jqXHR) { + if (jqXHR.status == 200 && data) { + var viewModel = {}; + var responsePayload = JSON.parse(data); + if (responsePayload["notifications"]) { + if (responsePayload.count > 0) { + viewModel["notifications"] = responsePayload["notifications"]; + viewModel["appContext"] = context; + $(messageSideBar).html(template(viewModel)); + } else { + $(messageSideBar).html(''); + } + } else { + $(messageSideBar).html("

Unexpected error " + + "occurred while loading new notifications.

"); + } + } + }, + // on error + function (jqXHR) { + if (jqXHR.status = 500) { + $(messageSideBar).html("

Unexpected error occurred while trying " + + "to retrieve any new notifications.

"); + } + } + ); + }); + } +} + +/** + * Toggle function for + * notification listing sidebar. + * @return {Null} + */ +$.sidebar_toggle = function (action, target, container) { + var elem = '[data-toggle=sidebar]', + button, + containerOffsetLeft, + containerOffsetRight, + targetOffsetLeft, + targetOffsetRight, + targetWidth, + targetSide, + relationship, + pushType, + buttonParent; + + var sidebar_window = { + update: function (target, container, button) { + containerOffsetLeft = $(container).data('offset-left') ? $(container).data('offset-left') : 0; + containerOffsetRight = $(container).data('offset-right') ? $(container).data('offset-right') : 0; + targetOffsetLeft = $(target).data('offset-left') ? $(target).data('offset-left') : 0; + targetOffsetRight = $(target).data('offset-right') ? $(target).data('offset-right') : 0; + targetWidth = $(target).data('width'); + targetSide = $(target).data("side"); + pushType = $(container).parent().is('body') == true ? 'padding' : 'margin'; + + if (button !== undefined) { + relationship = button.attr('rel') ? button.attr('rel') : ''; + buttonParent = $(button).parent(); + } + }, + + show: function () { + if ($(target).data('sidebar-fixed') == true) { + $(target).height($(window).height() - $(target).data('fixed-offset')); + } + $(target).trigger('show.sidebar'); + if (targetWidth !== undefined) { + $(target).css('width', targetWidth); + } + $(target).addClass('toggled'); + if (button !== undefined) { + if (relationship !== '') { + // Removing active class from all relative buttons + $(elem + '[rel=' + relationship + ']:not([data-handle=close])').removeClass("active"); + $(elem + '[rel=' + relationship + ']:not([data-handle=close])').attr('aria-expanded', 'false'); + } + // Adding active class to button + if (button.attr('data-handle') !== 'close') { + button.addClass("active"); + button.attr('aria-expanded', 'true'); + } + if (buttonParent.is('li')) { + if (relationship !== '') { + $(elem + '[rel=' + relationship + ']:not([data-handle=close])').parent().removeClass("active"); + $(elem + '[rel=' + relationship + ']:not([data-handle=close])').parent().attr('aria-expanded', 'false'); + } + buttonParent.addClass("active"); + buttonParent.attr('aria-expanded', 'true'); + } + } + // Sidebar open function + if (targetSide == 'left') { + if ((button !== undefined) && (button.attr('data-container-divide'))) { + $(container).css(pushType + '-' + targetSide, targetWidth + targetOffsetLeft); + } + $(target).css(targetSide, targetOffsetLeft); + } else if (targetSide == 'right') { + if ((button !== undefined) && (button.attr('data-container-divide'))) { + $(container).css(pushType + '-' + targetSide, targetWidth + targetOffsetRight); + } + $(target).css(targetSide, targetOffsetRight); + } + $(target).trigger('shown.sidebar'); + }, + + hide: function () { + $(target).trigger('hide.sidebar'); + $(target).removeClass('toggled'); + if (button !== undefined) { + if (relationship !== '') { + // Removing active class from all relative buttons + $(elem + '[rel=' + relationship + ']:not([data-handle=close])').removeClass("active"); + $(elem + '[rel=' + relationship + ']:not([data-handle=close])').attr('aria-expanded', 'false'); + } + // Removing active class from button + if (button.attr('data-handle') !== 'close') { + button.removeClass("active"); + button.attr('aria-expanded', 'false'); + } + if ($(button).parent().is('li')) { + if (relationship !== '') { + $(elem + '[rel=' + relationship + ']:not([data-handle=close])').parent().removeClass("active"); + $(elem + '[rel=' + relationship + ']:not([data-handle=close])').parent().attr('aria-expanded', 'false'); + } + } + } + // Sidebar close function + if (targetSide == 'left') { + if ((button !== undefined) && (button.attr('data-container-divide'))) { + $(container).css(pushType + '-' + targetSide, targetOffsetLeft); + } + $(target).css(targetSide, -Math.abs(targetWidth + targetOffsetLeft)); + } else if (targetSide == 'right') { + if ((button !== undefined) && (button.attr('data-container-divide'))) { + $(container).css(pushType + '-' + targetSide, targetOffsetRight); + } + $(target).css(targetSide, -Math.abs(targetWidth + targetOffsetRight)); + } + $(target).trigger('hidden.sidebar'); + } + }; + if (action === 'show') { + sidebar_window.update(target, container); + sidebar_window.show(); + } + if (action === 'hide') { + sidebar_window.update(target, container); + sidebar_window.hide(); + } + // binding click function + var body = 'body'; + $(body).off('click', elem); + $(body).on('click', elem, function (e) { + e.preventDefault(); + button = $(this); + container = button.data('container'); + target = button.data('target'); + sidebar_window.update(target, container, button); + /** + * Sidebar function on data container divide + * @return {Null} + */ + if (button.attr('aria-expanded') == 'false') { + sidebar_window.show(); + } else if (button.attr('aria-expanded') == 'true') { + sidebar_window.hide(); + } + }); +}; + +$.fn.collapse_nav_sub = function () { + var navSelector = 'ul.nav'; + + if (!$(navSelector).hasClass('collapse-nav-sub')) { + $(navSelector + ' > li', this).each(function () { + var position = $(this).offset().left - $(this).parent().scrollLeft(); + $(this).attr('data-absolute-position', (position + 5)); + }); + + $(navSelector + ' li', this).each(function () { + if ($('ul', this).length !== 0) { + $(this).addClass('has-sub'); + } + }); + + $(navSelector + ' > li', this).each(function () { + $(this).css({ + 'left': $(this).data('absolute-position'), + 'position': 'absolute' + }); + }); + + $(navSelector + ' li.has-sub', this).on('click', function () { + var elem = $(this); + if (elem.attr('aria-expanded') !== 'true') { + elem.siblings().fadeOut(100, function () { + elem.animate({'left': '15'}, 200, function () { + $(elem).first().children('ul').fadeIn(200); + }); + }); + elem.siblings().attr('aria-expanded', 'false'); + elem.attr('aria-expanded', 'true'); + } else { + $(elem).first().children('ul').fadeOut(100, function () { + elem.animate({'left': $(elem).data('absolute-position')}, 200, function () { + elem.siblings().fadeIn(100); + }); + }); + elem.siblings().attr('aria-expanded', 'false'); + elem.attr('aria-expanded', 'false'); + } + }); + + $(navSelector + ' > li.has-sub ul', this).on('click', function (e) { + e.stopPropagation(); + }); + $(navSelector).addClass('collapse-nav-sub'); + } +}; + +$(".download-link").click(function(){ + toggleEnrollment(); +}); + +$(document).ready(function () { + $.sidebar_toggle(); + if (typeof $.fn.collapse == 'function') { + $('.navbar-collapse.tiles').on('shown.bs.collapse', function () { + $(this).collapse_nav_sub(); + }); + } + + loadNewNotificationsOnSideViewPanel(); + $("#right-sidebar").on("click", ".new-notification", function () { + var notificationId = $(this).data("id"); + var redirectUrl = $(this).data("url"); + var markAsReadNotificationsEpr = emmAdminBasePath + "/notifications/" + notificationId + "/mark-checked"; + var messageSideBar = ".sidebar-messages"; + + invokerUtil.put( + markAsReadNotificationsEpr, + null, + // on success + function (data) { + data = JSON.parse(data); + if (data.statusCode == responseCodes["ACCEPTED"]) { + location.href = redirectUrl; + } + }, + // on error + function () { + var content = "
  • Warning

    " + + "

    Unexpected error occurred while loading notification. Please refresh the page and" + + " try again

  • "; + $(messageSideBar).html(content); + } + ); + }); +}); From 0fd317d027e5184ba919d2103674f42b0e80dfc1 Mon Sep 17 00:00:00 2001 From: Hasunie Date: Thu, 1 Dec 2016 09:35:01 +0530 Subject: [PATCH 2/5] adding windows operation bar --- .../device-view.hbs | 6 +++--- .../operation-bar.hbs | 4 ++-- .../operation-bar.js | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.hbs b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.hbs index 0f613ddc8..d220367f3 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.hbs +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/device-view.hbs @@ -1,7 +1,7 @@ -{{unit "cdmf.unit.device.type.android.leaflet"}} +{{unit "cdmf.unit.device.type.windows.leaflet"}} {{unit "cdmf.unit.lib.qrcode"}} -{{unit "cdmf.unit.device.type.android.qr-modal"}} -{{unit "cdmf.unit.device.type.android.operation-bar"}} +{{unit "cdmf.unit.device.type.windows.qr-modal"}} +{{unit "cdmf.unit.device.type.windows.operation-bar"}} {{#if deviceFound}} {{#if isAuthorized}} diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/operation-bar.hbs b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/operation-bar.hbs index 893953771..fa79c9270 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/operation-bar.hbs +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/operation-bar.hbs @@ -16,11 +16,11 @@ under the License. }} -{{unit "mdm.unit.date-range-picker"}} +{{unit "cdmf.unit.device.type.windows.date-range-picker"}} {{#zone "content"}}
    - {{unit "mdm.unit.device.operation-mod"}} + {{unit "cdmf.unit.device.type.windows.operation-mod"}}
    {{/zone}} diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/operation-bar.js b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/operation-bar.js index 512edff65..242cb4874 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/operation-bar.js +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar/operation-bar.js @@ -17,7 +17,7 @@ */ function onRequest(context) { - var log = new Log("mdm.unit.device.operation-bar"); + var log = new Log("cdmf.unit.device.type.windows.operation-bar"); var userModule = require("/app/modules/business-controllers/user.js")["userModule"]; var viewModel = {}; var permissions = {}; From 35ba0b2a9bf6783d545d01e3dfb30cd49b50c6a8 Mon Sep 17 00:00:00 2001 From: Hasunie Date: Thu, 1 Dec 2016 09:40:29 +0530 Subject: [PATCH 3/5] fixing windows enrollment flow --- .../src/assembly/src.xml | 10 +- .../modules/business-controllers/device.js | 2 +- .../enrollments/windows/agent-controller.jag | 34 ++--- .../enrollments/windows/agent-enroll.jag | 6 +- .../app/modules/oauth/token-handlers.js | 49 ++++--- .../windows-web-agent/jaggery.conf | 54 +++---- .../datasources/windows-datasources.xml | 2 +- .../main/resources/devicetypes/windows.xml | 136 +++++++++++------- .../src/main/resources/p2.inf | 5 + 9 files changed, 176 insertions(+), 122 deletions(-) diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/assembly/src.xml b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/assembly/src.xml index 3815c75d7..5996c0457 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/assembly/src.xml +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/assembly/src.xml @@ -28,17 +28,17 @@ ${basedir}/src - ${basedir}/src/main/resources/jaggeryapps/devicemgt - /devicemgt + ${basedir}/src/main/resources/jaggeryapps/windows-web-agent + /windows-web-agent true - ${basedir}/src/main/resources/jaggeryapps/uuf-template-app - /windows-web-agent + ${basedir}/src/main/resources/jaggeryapps/devicemgt + /devicemgt true - ${basedir}/src/main/resources/jaggeryapps/windows-web-agent + ${basedir}/src/main/resources/jaggeryapps/uuf-template-app /windows-web-agent true diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/app/modules/business-controllers/device.js b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/app/modules/business-controllers/device.js index dbc76aabc..3dce168f4 100755 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/app/modules/business-controllers/device.js +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/app/modules/business-controllers/device.js @@ -312,7 +312,7 @@ deviceModule = function () { var url; var license; if (deviceType == "windows") { - url = devicemgtProps["httpURL"] + "/mdm-windows-agent/services/device/license"; + url = devicemgtProps["httpURL"] + "/api/device-mgt/windows/v1.0/services/configuration/license"; } else if (deviceType == "ios") { url = devicemgtProps["httpsURL"] + "/ios-enrollment/license/"; } diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/app/modules/enrollments/windows/agent-controller.jag b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/app/modules/enrollments/windows/agent-controller.jag index f76bcf925..c5740cd40 100755 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/app/modules/enrollments/windows/agent-controller.jag +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/app/modules/enrollments/windows/agent-controller.jag @@ -57,24 +57,24 @@ if (platform != "Windows Phone") { } }; serviceInvokers.XMLHttp.post( - authUrl, - stringify(payload), - function (restAPIResponse) { - var status = restAPIResponse["status"]; - if (status == 200) { - session.put("authenticatedUser", username); - session.put("windowsBinaryToken", parse(xmlHttpRequest["responseText"]).UserToken); - response.sendRedirect(mdmProps["appContext"] + "enrollments/windows/license-agent"); - } else if (status == 403) { - response.sendRedirect(mdmProps["appContext"] + "enrollments/windows/login-agent?error=auth-failed"); - } else if (status == 409) { - response.sendRedirect(mdmProps["appContext"] + "enrollments/windows/login-agent?" + - "error=auth-failed&message=Provided Workplace email does not match with username. Please check."); - } else { - // one visible possibility would be server sending 500 - response.sendRedirect(mdmProps["appContext"] + "enrollments/windows/login-agent?error=unexpected"); + authUrl, + stringify(payload), + function (restAPIResponse) { + var status = restAPIResponse["status"]; + if (status == 200) { + session.put("authenticatedUser", username); + session.put("windowsBinaryToken", parse(restAPIResponse["responseText"]).UserToken); + response.sendRedirect(mdmProps["appContext"] + "enrollments/windows/license-agent"); + } else if (status == 403) { + response.sendRedirect(mdmProps["appContext"] + "enrollments/windows/login-agent?error=auth-failed"); + } else if (status == 409) { + response.sendRedirect(mdmProps["appContext"] + "enrollments/windows/login-agent?" + + "error=auth-failed&message=Provided Workplace email does not match with username. Please check."); + } else { + // one visible possibility would be server sending 500 + response.sendRedirect(mdmProps["appContext"] + "enrollments/windows/login-agent?error=unexpected"); + } } - } ); } } diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/app/modules/enrollments/windows/agent-enroll.jag b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/app/modules/enrollments/windows/agent-enroll.jag index 1ad693001..66a4eed09 100755 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/app/modules/enrollments/windows/agent-enroll.jag +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/app/modules/enrollments/windows/agent-enroll.jag @@ -36,10 +36,10 @@ if (platform != "Windows Phone") { if (!authenticatedUser) { response.sendRedirect(mdmProps["appContext"] + "enrollments/error/unintentional-request"); } else { - var enrollmentUtils = require("/modules/enrollments/util/utils.js")["methods"]; - var Handlebars = require("/lib/handlebars-v2.0.0.js")["Handlebars"]; + var enrollmentUtils = require("/app/modules/enrollments/util/utils.js")["methods"]; + var Handlebars = require("/lib/modules/handlebars/handlebars-v2.0.0.js")["Handlebars"]; var template = Handlebars.compile(enrollmentUtils. - getResource("/modules/enrollments/windows/config/workplace-switch-request-template.hbs")); + getResource("/app/modules/enrollments/windows/config/workplace-switch-request-template.hbs")); var windowsWorkplaceAppID = session.get("windowsWorkplaceAppID"); var windowsBinaryToken = session.get("windowsBinaryToken"); diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/app/modules/oauth/token-handlers.js b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/app/modules/oauth/token-handlers.js index d16304606..bff0f143f 100755 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/app/modules/oauth/token-handlers.js +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/app/modules/oauth/token-handlers.js @@ -133,35 +133,44 @@ var handlers = function () { privateMethods["setUpEncodedTenantBasedClientAppCredentials"] = function (username) { if (!username) { throw new Error("{/app/modules/oauth/token-handlers.js} Could not set up encoded tenant based " + - "client credentials to session context. No username of logged in user is found as " + - "input - setUpEncodedTenantBasedClientAppCredentials(x)"); + "client credentials to session context. No username of logged in user is found as " + + "input - setUpEncodedTenantBasedClientAppCredentials(x)"); } else { var dynamicClientAppCredentials = tokenUtil.getDynamicClientAppCredentials(); if (!dynamicClientAppCredentials) { throw new Error("{/app/modules/oauth/token-handlers.js} Could not set up encoded tenant based " + - "client credentials to session context as the server is unable to obtain " + - "dynamic client credentials - setUpEncodedTenantBasedClientAppCredentials(x)"); + "client credentials to session context as the server is unable to obtain " + + "dynamic client credentials - setUpEncodedTenantBasedClientAppCredentials(x)"); } else { - var jwtToken = tokenUtil.getAccessTokenByJWTGrantType(dynamicClientAppCredentials); - if (!jwtToken) { - throw new Error("{/app/modules/oauth/token-handlers.js} Could not set up encoded tenant based " + + if (devicemgtProps["apimgt-gateway"]) { + var jwtToken = tokenUtil.getAccessTokenByJWTGrantType(dynamicClientAppCredentials); + if (!jwtToken) { + throw new Error("{/app/modules/oauth/token-handlers.js} Could not set up encoded tenant based " + "client credentials to session context as the server is unable to obtain " + - "a jwt token - setUpEncodedTenantBasedClientAppCredentials(x)"); - } else { - var tenantBasedClientAppCredentials = tokenUtil. - getTenantBasedClientAppCredentials(username, jwtToken); - if (!tenantBasedClientAppCredentials) { - throw new Error("{/app/modules/oauth/token-handlers.js} Could not set up encoded tenant " + - "based client credentials to session context as the server is unable " + - "to obtain such credentials - setUpEncodedTenantBasedClientAppCredentials(x)"); + "a jwt token - setUpEncodedTenantBasedClientAppCredentials(x)"); } else { - var encodedTenantBasedClientAppCredentials = - tokenUtil.encode(tenantBasedClientAppCredentials["clientId"] + ":" + + var tenantBasedClientAppCredentials = tokenUtil. + getTenantBasedClientAppCredentials(username, jwtToken); + if (!tenantBasedClientAppCredentials) { + throw new Error("{/app/modules/oauth/token-handlers.js} Could not set up encoded tenant " + + "based client credentials to session context as the server is unable " + + "to obtain such credentials - setUpEncodedTenantBasedClientAppCredentials(x)"); + } else { + var encodedTenantBasedClientAppCredentials = + tokenUtil.encode(tenantBasedClientAppCredentials["clientId"] + ":" + tenantBasedClientAppCredentials["clientSecret"]); - // setting up encoded tenant based client credentials to session context. - session.put(constants["ENCODED_TENANT_BASED_CLIENT_APP_CREDENTIALS"], - encodedTenantBasedClientAppCredentials); + // setting up encoded tenant based client credentials to session context. + session.put(constants["ENCODED_TENANT_BASED_CLIENT_APP_CREDENTIALS"], + encodedTenantBasedClientAppCredentials); + } } + } else { + var encodedTenantBasedClientAppCredentials = + tokenUtil.encode(dynamicClientAppCredentials["clientId"] + ":" + + dynamicClientAppCredentials["clientSecret"]); + // setting up encoded tenant based client credentials to session context. + session.put(constants["ENCODED_TENANT_BASED_CLIENT_APP_CREDENTIALS"], + encodedTenantBasedClientAppCredentials); } } } diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/jaggery.conf b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/jaggery.conf index a9c7a0ec9..59caaa1ed 100755 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/jaggery.conf +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/windows-web-agent/jaggery.conf @@ -65,33 +65,33 @@ } ], "securityConstraints": [ - { - "securityConstraint": { - "webResourceCollection": { - "name": "WINDOWS-WEB-AGENT", - "urlPatterns": [ - "/*" - ] - }, - "userDataConstraint": { - "transportGuarantee": "CONFIDENTIAL" - } - } - }, - { - "securityConstraint": { - "webResourceCollection": { - "name": "WINDOWS-WEB-AGENT-http", - "urlPatterns": [ - "/public/*", - "/enrollments/windows/*", - "/enrollment/windows/*" - ] - }, - "userDataConstraint": { - "transportGuarantee": "NONE" - } - } + { + "securityConstraint": { + "webResourceCollection": { + "name": "WINDOWS-WEB-AGENT", + "urlPatterns": [ + "/*" + ] + }, + "userDataConstraint": { + "transportGuarantee": "CONFIDENTIAL" + } + } + }, + { + "securityConstraint": { + "webResourceCollection": { + "name": "WINDOWS-WEB-AGENT-http", + "urlPatterns": [ + "/public/*", + "/enrollments/windows/*", + "/enrollment/windows/*" + ] + }, + "userDataConstraint": { + "transportGuarantee": "NONE" + } } + } ] } diff --git a/features/mobile-plugins-feature/windows-plugin-feature/org.wso2.carbon.device.mgt.mobile.windows.feature/src/main/resources/datasources/windows-datasources.xml b/features/mobile-plugins-feature/windows-plugin-feature/org.wso2.carbon.device.mgt.mobile.windows.feature/src/main/resources/datasources/windows-datasources.xml index 89e2c13cc..d85eaafc0 100644 --- a/features/mobile-plugins-feature/windows-plugin-feature/org.wso2.carbon.device.mgt.mobile.windows.feature/src/main/resources/datasources/windows-datasources.xml +++ b/features/mobile-plugins-feature/windows-plugin-feature/org.wso2.carbon.device.mgt.mobile.windows.feature/src/main/resources/datasources/windows-datasources.xml @@ -30,7 +30,7 @@ - jdbc:h2:repository/database/WindowsDM_DB;DB_CLOSE_ON_EXIT=FALSE + jdbc:h2:repository/database/WSO2MobileWindows_DB;DB_CLOSE_ON_EXIT=FALSE wso2carbon wso2carbon diff --git a/features/mobile-plugins-feature/windows-plugin-feature/org.wso2.carbon.device.mgt.mobile.windows.feature/src/main/resources/devicetypes/windows.xml b/features/mobile-plugins-feature/windows-plugin-feature/org.wso2.carbon.device.mgt.mobile.windows.feature/src/main/resources/devicetypes/windows.xml index d62ad7d90..e2f3bd3e7 100644 --- a/features/mobile-plugins-feature/windows-plugin-feature/org.wso2.carbon.device.mgt.mobile.windows.feature/src/main/resources/devicetypes/windows.xml +++ b/features/mobile-plugins-feature/windows-plugin-feature/org.wso2.carbon.device.mgt.mobile.windows.feature/src/main/resources/devicetypes/windows.xml @@ -19,56 +19,96 @@ --> - - en_US - 1.0.0 - This is license text - + - - false - + + en_US + 1.0.0 + This is license text + - - - jdbc/MobileWindowsDM_DS - - - - DEVICE_ID - - DEVICE_ID - CHANNEL_URI - DEVICE_INFO - IMEI - IMSI - OS_VERSION - DEVICE_MODEL - VENDOR - LATITUDE - LONGITUDE - SERIAL - MAC_ADDRESS - DEVICE_NAME - OS_BUILD_DATE - -
    -
    -
    + + false + - - - abc - this is a feature - - - deviceId - - - test - - - - + + + jdbc/MobileWindowsDM_DS + + + + DEVICE_ID + + CHANNEL_URI + DEVICE_INFO + IMEI + IMSI + OS_VERSION + DEVICE_MODEL + VENDOR + LATITUDE + LONGITUDE + SERIAL + MAC_ADDRESS + DEVICE_NAME + +
    +
    +
    + + + + Device Lock + Lock the device + + + + + Device Lock + Lock the device + + + + + Device Lock + Lock the device + + + + + Device Lock + Lock the device + + + + + Device Lock + Lock the device + + + + + Password Policy + Set passcode policy + + + + + Camera Enable/Disable + Enable/Disable camera + + + + + Encrypt Storage + Encrypt the device storage + + + + + + + false +
    diff --git a/features/mobile-plugins-feature/windows-plugin-feature/org.wso2.carbon.device.mgt.mobile.windows.feature/src/main/resources/p2.inf b/features/mobile-plugins-feature/windows-plugin-feature/org.wso2.carbon.device.mgt.mobile.windows.feature/src/main/resources/p2.inf index 130f763b0..915cd258e 100644 --- a/features/mobile-plugins-feature/windows-plugin-feature/org.wso2.carbon.device.mgt.mobile.windows.feature/src/main/resources/p2.inf +++ b/features/mobile-plugins-feature/windows-plugin-feature/org.wso2.carbon.device.mgt.mobile.windows.feature/src/main/resources/p2.inf @@ -18,7 +18,12 @@ org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../dep org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.policy-edit);\ org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.policy-view);\ org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.policy-wizard);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.qr-modal);\ org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.type-view);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.leaflet);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-bar);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.operation-mod);\ +org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../deployment/server/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.date-range-picker);\ org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../../dbscripts/cdm/plugins/windows);\ org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../../database/WSO2MobileWindows_DB.h2.db);\ org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/../. From b19629ab2353d370a2fed9f8a9200e9827dbe9f7 Mon Sep 17 00:00:00 2001 From: Hasunie Date: Thu, 1 Dec 2016 16:20:05 +0530 Subject: [PATCH 4/5] adding windows enrollment image --- .../public/images/windows_enrollment.png | Bin 143764 -> 164587 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.type-view/public/images/windows_enrollment.png b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.type-view/public/images/windows_enrollment.png index 17b2102e371041fd112915c8719f7085e351bac6..4f767075525d945e315d8940676172ca5b9cb36c 100644 GIT binary patch literal 164587 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 z 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 Date: Thu, 1 Dec 2016 16:21:57 +0530 Subject: [PATCH 5/5] changing add enromment --- .../type-view.hbs | 44 ++++++++----------- 1 file changed, 18 insertions(+), 26 deletions(-) diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.type-view/type-view.hbs b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.type-view/type-view.hbs index ed4654d77..a35375318 100644 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.type-view/type-view.hbs +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.type-view/type-view.hbs @@ -9,49 +9,41 @@ -
    - -

    What it Does


    -

    Connect and manage your Android device with WSO2 IoT Server.

    +

    Connect and manage your Windows device with WSO2 IoT Server.


    -

    What You Need

    +

    Configure your workplace account


      -
    • STEP 01 Windows - Mobile. +
    • STEP 01 Open Workplace native application on your + mobile device through device settings.
    • -
    • STEP 02 Go ahead - and click [Enroll Device]. +
    • STEP 02 Tap add account to start the + registration process.
    • -
    • STEP 03 Proceed - to the [Prepare] section. +
    • STEP 03 Provide your corporate email address, + and tap sign in. +
    • +
    • STEP 04 Enter your details, and tap Login. + Username - Enter username provided in the email. + Password - Enter password provided in the email.
    • -
    -
    - Enroll Device -

    -
    -
    -

    Prepare


    -
      -
    • 01 Scan QR code..
    • -
    • 02 Follow instructions in wizard.
    • -
    • 03 Configure your workspace account
    • -
    -
    +
  • STEP 05 Read the policy agreement, + and tap I Accept to accept the agreement and completed the device enrollment. +
  • + +
    -

    Click on the image to zoom

    +

    Follow instructions in wizard

    4*9t^x*H?1W4_eSBO(j)dZE z_mWR20;?Z-a&-@m|BM)KPz$PA6T-5O{@q-#lRz}mxg_!YRJ&Sd9_exBGtkpW;-O7= zy?&uPH-iM4XK+M)_3GtP@~e>Yzb6s1`@JwTk`pFn&J?sPXZZRnqzUxAH+T!{V#Ex& zE~pTO$XjfW&^tN*x)OMwzF&kxzV5#{&1#aQlAmu;>(G9N&eUqe-u&}dGX5T#NtO4B zKZIzrgV_Aruust06#LJc2&pT5%ZxYIKR$|*0p zJ%&E7m7%A^G7qC?719?<8*Ysa!zlrffGamKj0i%a?AKQeHmgOwO1<94{G+aAg%n0j-aJ@r4kqZ zzlQ;4?_{`mAR0DlY5KwQ`CKnb6v1st6Ix1cKKYM{{dlScz}#Hie5Ab~CCJCK``7HN z@%R-I=CZZAluEa7Q#la~a|++C?w2FpN0M}8t~C>c3|AY330;DRmb-|jgl3re{ktD^ z4+$mN<)2<@qsCdtc;XcYuLNm6VD?_V?Tl76^ak!e5(kd~)ZoE*HL@kO93#X zBZ{eSfWUxy&)cvEOyE{k*%LTo1Mb{|Hem#S27cbbqnIg<^6s)eOz;MZT|8`Se<%eI zHZXbb;1gd}t`{LJVG7<&O`36vj-dWwC=($+Z=2x*6`U+coIhd2LAIF4ARV=nIQ;dZ z$uGHcPf?+LPvEI!P1Yv0SSCQqw8hQ!oC=c6YO(nv5kxLn3(rC>Vp_}Zup(M}vNjVr zpNUnJ_U=Okg=|<ggW4vyQN$-!HR^dc215%bynR_)N;h;+YG?Ro`E9ohj?l_S3G^faQ?+t#0+TsQmNA zfW7%>(eX1qe+Jsrb=)E&m0Mv z7Il*#F;L0}&o7b+fPZ^rOAzA4$j$>BpYH5@Bq8rU{=HkT+tK&DnwD~v*|Z|R^g7~$ zGnv~Y7MVX2WpyqrlR@q%8R*CSf!ZfA189ga{KT+r=c)&_lAw>I+*A#T_+rh*!??Za zBDzx1ac5M8Bb>gIDH3rm2#v*~o9m&tT-tBfrFxGR=iQramB$n$PP#-K`*acQ0aa4m zxUukig=$zkmguW}W{1m0W zI^8_FZ0!OW9_HYd-zL_&C^B(0t5MGa&)dXR&j88|U&)=MBJJ9s=l8KwfX~UKGy&Ec z=h>x~Y;CJFZ$4YxFhpCAe^XsX4}*HuWB3)ovuvgE(#P(zuQ{k{s@$A<%<}rI;<}qi zOUx2Hc3ZUtnHS|f#Ai`Z73|X;5#(e{M&jSCfsnp7+$ui3XYqZEi2teUCeTM7Q0WAc zjvmzryfP-ClX)Nz-f9tgt!>%y-W`c>W`^m9*Oh^rX-zYq*2`l3Tshvs9u9I{O7z($ zJ@EN(mfQ%*^AhGo*Am!X`Ycuvl!LAT^bKoBlWw&L(y7Cb$0PU%R6wKU#OO^5Wn#Yi z0u9Bu!zdekt$|1oL|!1ztVh@P48C2 z{b~34g9*(eVX+SuOIFUiJ8_**-%(MAM3uCu(9PDS#6_C)h@oGBG%_QMM_8{RB%Tku zo%QBVWrd!VpTy;vY(@t%f`)OR%XUm2ZRY$dVfx_rrtNEQ3vDf1x5~o8$cEh>y$@%9 zRniA*M%*HKh(QRX+-~lMua&QA)Vr$D4iHuSW@=xS+QAU463j^eJ+p z_B(+R7>IdCtdF@6c(ZPblaMq?xg0FNZVa$eBLLK-C4JrgoLiO-$PH)_WdWkFF#@;_ zm)JLSICZVNKO?CC0}mQl@a-+BQkxr{JtLx}bR$NM?#myOba!C>82z*7gNIMuMNYMPzn9nol3PJj?AYjawPPbuHfm6fK^&x^Cf1UNmn4*-FugL&;1S= z2Q*d$G18&Jp8iD`-EgRhrhbzYPAE$jn)#UPD5e0bUFGwyezNLPEb97TK;)yfQ)y13 zvg;StJ?|x#8f_LW4PF~7D!n$=8qDLKdxkfUZ2}sl;MuafFIbxDXjFROYoFmSu$VvK zfw$ayA(ferXfXX}xPV`8!Kd@r`dgccZupIBdHNSrKmj4b7p*SW=osjEd#~m}b=6`F zQ}>Qy`d{EuW(iWg$>L7IIMN=>cLx4MWD*qu+-R6LY|J&4UcX%?9l-Z8O7q{Hrbq{6 zO2edLu283Jbn@~2Fj(9b(1l&46`oxYrx0Q&?_j0iaX;i&U0~@~w#{S+7$46Czr;+M z{KYfR^2|D~Jc`@cqjB0ux4Yn`e8fs=UgQ4W$QBuc3BKs+)|CKeGxATK-@F^h{M11f z=b0sSJqqTbkY@oZ1;|o(GVL=wiLWx!Kg@(p$)xQQy*Jl8^jA!mMQdl#luk18_l{%FIA*!GqVz1jWI?);lkwiR46(T! zEPI6u&2@ORr*TR?qsZbev@wYu!!rj{^v$F@PFVnl(F9<>3zMpy%7U|Paj$E7nHG*suCB|&=mW|Ky|cjB`T_1ZCmJ$HJhI@yl=Oiw#~){ zpA_9pqJic^>jVc~2dF3S<5T0=95bu*Nm6dmim0ljj=O(K#$;}t>??F|G>fmSAS`Jd z^%#vCq^%rIrxg54*NMX%=$qxAwBT{Hy|VV{s|>p(LNlA*3B~94S?mhdH{G**QYoa# z_|oC&Vo>Ip)p#!%O4@uC>yF&I6de2AaEmY>Q5^meX;M;4Erws1QntzS#`Ma4sDaPq z2XpiK|1M4#OfZK0XQ?P*acC#{wi#ZBZ{nf6~qHU>3ykAEQLse2l2hqWP+9 zw)DZ)JbFEb+c!5J-w;cEtQRd^vrHg%LtY6SKAyv5j+xMDx)4EX7`zhq zvIs{L8*xcY5|FAwkJWc1I1>rq3N)sbgVm~y_hbX`qrPzULZ`v`G>E6qZYyibp{)px zk_pn}|Ng$GLR3M$ueHvMR(;TPfby?btu|!~Y$ndF@rne`Zv7ShEJMz(f~2!d=5W|zacJ{Zg32Nms~u5 zV>v#Nxey|_1FS=#!*->GxIK?|W^g)}@p9NB(RmE5Utb|xM)CA_@r>FsPDpvKZYtsw zL?AgWL4Ivx16DkRoIriDqcD=teLn0A7a8Uy7S2uh*QoHApp44zYX2X3 zeL*=lT^&q08bJ-hA;V6`=k#ToOu!pt$>4P|$!ywZSrS}*wcOWwx?Vr0pz>Rr}g9W%S7|c`hO#L`?wlpOaAoM(0 zT9V&JkM@^8mK}M2N;qr*Y9V~#X=qWsxoG(xYtPZQD|OBFtx6i*YL3rNkpKQK3(Nyy zOrt?^D+?X8qEGe4G_aP$WfnbZl z8zGY9ZbbxgUEHpc1+iZ?i~AHG(>}AxO;SjQKilPYmseoXf|hu*$B89XvrA-`d%c+Q zF6vduYd({7}!GPfU=a$;UZ4DQ^eAtOI*1ak60!Hsy84uxDS2%v;S z!aas+BozOXos0rI97RTX22~2m$exDX(mhYqG0)n)j6V+wMxI=Wr1cDfP)P{5;**G7 z3_hZ~GYr^UUoJ?IzB%kM8RyhJr3e^EbP(x%#w92!iM;3PPPl{(t0)od9_smx>}VbF zr8fsLG8qxmbN=a_u0D46Y++#;g|uVozmx7O;KwN$+gP-Av&poE?)L1fC1wg-=)ldT z5l7qMLgFouK!LF}o-TIYA6bVJVsC(Zo(MfKUUctIt3evYiXoE6p~tMQ>y8&4R8J=D zg6@Gj5@L<2_^|A57I-X2O3P@f6uqtk%_OXZ{A3Y7>Y8n7`F2M`Qk-YmcvRSbdnd`aN<=m zWkd*XAv^MM*tb#MtLK`6*$xltq15KvlXAa|6jMLScaQx-N6s5MSIRY*HTaYJZ`30B z#4;RPjR@It!^SlJ4j|A_eid~S_K$^@PTr@SH`M0&nXH$m=t%hGY(Hu)B6&{rOW7>P zKYDyT;4HBkOiD3DB`{_t0XI5sMPRr*h+$KVb({jS;%h0$YM0|ezrIpE>t&azVJ(e* zc!_Qg|13f~P|?LbK=l2F1*Oh(H42Kea1yifV$!`o$7}|$*h7+-L%iPcH=V+`v%r5G zqz?#^x$$Ei(Wqh2NX--5<$mUj>J`)!zcbU<^@Wb}a=HItznk)PbkGOo_%gV5#S6f{ zOhO--7}_sOY-`pjEeLYIS@i1Z=S`GNcrtHf^h#d>0{dAn9=>r&obCE|T(&9|lq zfMZHlX=lts+IPwF+1^DbGs7(ULO6!b9P2j{TUrtBJ%gd~E0I!r+9F%thm^ba)uK?& z@*NCdzs0xO^d%_>TmvEqtD@uu>stWX>eyD#Ks=EQBk{>Ig4Hs#f4*m9h)4V02XULcjQ0lt2HQum-56$5NT!BZRDIzU9tC zNkmV%ExE@-KB7Xqq2x5)c|*Lu9fxuE_|lPsQ+&AK;XNgt_QCFoXRS z;S{VKF^p4;{hO^b^*v!ZDWN3*B3kt+`$ICH)%t(G48wGW%1Y{^6qp5!ppw=aw*=`XE8G;xOF8qhHb2}iuonQdb zhLM*Xf-o{ENc`l!cw}*KCfvqvsBOEP zn5=?m!=x~%XmY&GVmkarYUs`SYhYSj@eHlQ zSEkY#GZ!BgWXwlCsps>S2mbGyb!7O}3Rjtnmr88LD-n5fe&|6)t2V>T^IOyN55O3! zN4ghJpf2JxXU^>7ad_k+mosk?4jKZs3_&hNsvr_=dkgb^0<$8afb2o>TL*F=kAAXM z{;MkuvG72w1j7OP$|LX*p}AIu_v9qqQu_F8&AteW>etI#BAs#IWVY zYD$~2uOru0R<+C3HPkD~M-a!##-8@NrQUA)x9!B-jU5EsoSlXzGG{9c3zJb4`7a)w zBBT=-Y`&eQyd@Xm{#-c?31X_3QHh-p=t{u-+FT8MynMh>melqKq2TIUJ$p4D=LE%#Pj8IXbaxqxb( zEUS21O!X0M0vLXbxOSUiK|BdPNsP>jisF=`}A8d^R%&S#sY>=)_>HCAH3PvN1JYk znrq*eo#hHR=V~y1TkMZq(v&t?IT(fmQN*{E`lfw9B5A`sy{g`@!Cj}LOAI6duYI$C zd0OsEbOl`DG(4oLuY{DseiK+QKjlDRQpNW=h03kM8m<|Zs;bi*8SV4_a4$3Pd89Gb z0G#`=lXXMow0>37aCoZqXZ$d9g-_jo|Dn4dL?MA+j>S4M6^MzJU<0R3U2Dbik1v6z*K zR6P*Syh^69AH2E006jJRUd$$r;CW|30K~=hLF12Loxx~p_yKku6-FoMc6NLD*0YbU zRpT}+g)x>?2641JNob^$uc9CbGh4&)qfaA6fgH4a!s!dcjyXCyp)V(#z-Nd+^Ep!* zI62*vg@dln9`YB7cGS_WOG`#~pYW1kI`T3VV?#B)$>M{;2myJcVzqr_qjx7di>Fw> ziqjNYx^AW5PR&|*xwL*opEaeK*B(Ba9P&e+Cc4ioz~M`N7B=lGVjmp?rak21qB1B> zy;XCZ`ZS#8xEncRP6m^BgYW7e2ZPuyH(xoMZ}C&muP8|SPvjc%b(+1~=;VS`TxuA3 z)f4NttGsW8oCod8p3A42^Q#w4)-yyCvIqSFoBJYi6e?Eg*`)3zJB3rH8uYJ6F{MNU zgTQ5g1@;YFbyR{ie<4Z!!)-K>`goX!{=;NJ3mJAb1n($MBHPXKNS(n5oDLKc6c0D+ z=a0ASz9K!#r^4{jY zPn=$VMdiARsV@DQpX3OXwh8HL>5B4-c8mx1--O5o5c}T7ntspVb(wbe#~9%p5}Ns_ zX}c(WS$2EvN{Ng8F|Q^B-R9xD?>~%67iK(h5vZ?-6D&N@^c~JhW73$3Z|K>1Xg}N1 zX<`bfHwm?cClB8mZpIK$>~b@o#6;Mpj9IF+nA68Q5q+vpz@+(C)4(D@+^p*Ut6u+| zpB-|3em=`ZZiqs6P0{v?UqekhbN8Qb;H^>@hc!Lh+Y*jv4V=(}vvXHL&rg8v1o=Wn z-m*k(VDgE_2#^oK5~>r9CmVeivl-6gtPMtprZ3UeKK%&0H|hMrK2%t&WVzC|7W%@h z9E{}`{?$xps;Po4Mg@lOs1oe{S- z9pVQMt0FP@oba(7ze4n9g6*>(Pr1Q`Ua{9r@*T-vGp*9_SZqJlCwS9{+o#%8Z}*!}9wHDDRVz3}WZD%L*D>HJ z{kZS@@*pcHH;U3A9jCJb&iW4FmH}-*62=j~q7I96xdHBi`Y_V*;DB0*$}6ipRS_%_ z2#^g{A2#sk?=JX2iGsAJRNpQ{qRlq5i4T?XXSIQaCGRN5N-$>3zS^+S>9)62HW;bqc$}n5doQdSwtFhI+x>Mw%ZD3W zyEp&tBa2#9ui2I)avaa`hF-G&<>j|%eNG^}SAW|-1;UCEIiTMpfpTOXMS;=E8HC(k z=P1K*9vTvyX`B3UG)4`M3*K`uv+WjE10mvJSQ9%^Z#2k1pzj9NAuL|D2UKvO_X%r+ zSx6TKv#kzD{R4Rr{)rf-P8-T`mmK-}Vahm(er1y>3TqfPc!u>b>aGShZckoUpXuRz z&UoDJUF5djAIpJ&Sn<*l!(ur0Ko*tqF@$PTkF*`+yfGz}BZG1;^tc`N|>*_Wq~UiIXst@fs1}SZ>B_r^!X>Z4`B9d ze`L@12e4aZgzA6N4PX-d2%NiROm*l1uuNp71&*#@jXg{=sZ_@VKd^8jgnlxQZgm+v@V&0A>t<}j= z5UPFc5#lC2GiE)SDT<%}croev0yn$9LHg+jjQyIt6XvKZc?O zLb+-gm-jvAL$qKaBjs{qbKGSRq2andMUkFJ<;Ji5oh$r-q>=Ls`?HLQZt3fW!Qlt! zQN^$56KtoggkD^}>OCa*4oD`h`s4hJjFkb~Y?#Ne&DHNJAo2^xmi}-`^fv&b73<>!bv<+W zb8PX_jbdoGQ!)^!I$~3Rf^<7QWAZv2LXbQQu-keNvPE(+pO^Ep>q}d-5KX6S0pMwY{Et9yE#wJO0otzK9Jc+h)epTC%TvpRp9=wbzuNE$eg`0275)D~3d9A9zM&=|T*5pFJjVi;L9(maA52(G^LO zgErk;?XytWFC1Wdwn@!uK&kD&YriZd+*Npz_PF%X82!M>WT!pu$~V=q4~Kx>{(YtH zT4O13{)@n8E-42;xsVi5*kay=_)rymdz@ycPK6uM=ZT^J3U6}sNa55d$K`DSx|m?e z<}V(FG0>$hSXFGs=sqZQ25_Qm4aC|?ane#dufC$M_-mCcB zf_$KW^H7Ta8S5pFk>kW=fHQ()fz#qQYx;O9{4>~V`!q}W76-~ttil@&5dBaoBls^z z`E9UK(6B)8R=DdD2RcwVAOTtGipCJb1&UeLJcEE97(fYZ5JXZO|vGJNEi@P z9_scn-ATqYP89Ni=FQvHOc@LHr1j__y-`=4XW}<)zTa7B^DoXyRJ*UJAW4rL;KRz` zZPB+$zURSFAQ3VGm6K{}nKskM?(x87Dfd)lU<|!Ds?@FLPneUllRaP0d%AsD*_M4y{?N;_& z3%Au@2YpUw{*s#oK+G%n_u?-h&*T4bGPF%>Xp{AP_2uf=mjboA%IHc7kgKjvtvl8a zDdHDTsuUorDTyGt?QJn3+FyhkSpce(B@WgmP=boJfOH^1p{L3s)*o^~G(fW1^) zLgI2JF1ZRPByl_J9B&)Vu(U_K?h#6F)o+$^7yzDnvgWFSi3}S20&`<^K|+$yb;prKz}KiWgwnOytWK zG9xIhN1fSCQ9wU6sIl*rOfd2I6_(@pmag$Z^!$@!b#UF9dLfP6EU!g^r;#VKE-C%F z_QZD}A0AW|B^ z73Z~WF(_>2lnHFzD6@KIQ zheO_-Kn$AImQ3aW{4gPoM0ag(8C0gq`R~1T@nfdU0+0RR*pq)ClzgHLplo!3n;_~c zT=mdDJlGb#dge?`SG=1odQkD6)IKiCeAhLN$O{@Ebe|x^CZH{?4L9TpWbja1M~d8u zcKxVZcF&pweTIDfC6KQlr^$D_gHWUhONcgOYlhrovS}T0-Xo4cr?3@q$hOU{I3A2Q z{-36jtJ5yGUZAA{6d*KYzy*-xp)EU_JdTXPbK8joAY1NU0Q#?HV#@I_D}eu*?=sv+ zUVWDtZSt7s*OdF{ZXM@DT;l||*>mMUGE3JZcsAy6LRvrm#b=;zQX-S-FW1SAs)2WJ zRPPbk@;a6P94i9^pA*cEV(V{x^nv?U37-C-d?@3@XCDN(XBb!M-?FY)HHmB0(aq|o zL}JNt{8x!y038V;H20#8BU6R8K#Yw9Vzk>k24Fo#eA`Wxyq6A*W=@h?D%a)N?%Qb! z)5@IG^a~f2ewUB@5!I&jWw!{!=P?wgHZSelu#7)HrNYR^vCcYOoQs`;BoApxXR3>4 z!XSDE;5SS4UcPc6#-ELHupV`}{O{(LjEd-5EGMzsON_>OAVJiA1HgNat&*fPAiF|g z70Zi?94bXtHB3bYbt(KS^AUu4vua ze)a2{lo`t9ff!+}Ix}F+#p7~>R}&)^ok14hKMJPE*gbOqT3Wo{)-nR`bJ6Lb+rb?T zh8;x|``q8`3(jt9S>f;E<*lv_eNOG0i@oRS<^zCF3gILr5v`YIr)%8+T^t-6fD*Og z>QJEz!!C_^?`3Vzum9(bJM4v922dADD#8d&fUBe<_CL@Ch{r-ONh#B3G1LDTTjM!(;}& zTOo;KXK4L<%^v<9^VCfTu6M7UU-`<9A9EJ6tcwoe$vb;j2s6@}Ga&RSwCKmt+8q8Sn1J%0tzDRWVQvJemN>FE~gqz@2m60t&u@6r2+${|HXSYvnB z#}4k-`zA3Ei2$xSkd?zowV#sfh|>X=)cvy8aye_wW8H&sSKZvdnkySKza>2zA~Su? z{0MP_MolFP7Pfd@hpRnKtC9gc0mya{z8^WVr_ij&%f?;L!^7O92`wtKcsBUU4s0Y` z<9&j`kB6%BXOHhQa;EIBRn+2#II?AUI=G%&9ESg)WhQDlYHZ9N1B5MqYd(YcnheGN zbb_(;14yEIW&{+p-E-_Wuu3O@ZOxThjx(j=gj+)XL*SAZubf&@6 zCG!wQKCA#@CbvgqVQF;#TiCSu<)wb@HbMmSG`rGLTha94&vNQp8zF;p=6A_py>XOW zY}9RQ@IEVmA8_g^bfeE&8EFBINg$Vb8bX%-6?AHak^f#(<_+RQ;|kk;BacKIFpB`kvx-^DNKtcp?k27Vd8Dz|*4#*ZF1G+% zYT4ka1I5?IoK(-gM@^uqf85o_;XQCV<7*oFcbrm0XEGg=cuW0bc_5(^A zE^`Y>>R4|m%MkvINBGb1jsDo(g^l}i1N%0nj5$6}&N{PCLC+6;ZC~;!2b+@A>Jz69 zWiyP*JB?@S{4czNV~SEjJfApW1pMZ=OdXNQa&W`Qeo1GQjq2aHOHMGws(dL~aQ^$O z)hhB`&@|wliL01z8JEuTL&Fpm2INmHdjiQu{Hi2t9RR*i}UZE)tCa7NBZ}j{*(fn2Q zAJ=wTDy!$*kJhFwzK=4p2dMuk7vEv2X-HH5Zhz|fs<7FxZG&khu^KEan~qf5xV9au zp_h}s09G3tM`dp^gO!t@j;CQs<*c`QeQYhe8^v}BD%u_hMw%0jzD_6XzcrLW;O72Z z!?h9PzB9SQ4j#!kG>%mZI~*75`zmh0wKbS>zB9>`F*FLcTY5f!ZaVwb|K@jFI@y(F z-_QJ%j_w_a^fe<4(5@hl=kAwVM33e9)$?B>aYnF1`!xY|g8?-^Q%md*3^(K$YvG9D z4=Y7txFfNsVFy=-N_KH7X2%~ish`^b!_BoL1oNH;?K{v^An9m-0!MgH8DqA~t#+MG zD^S2V{QLpHIZObq+Xj3ow?U4ssBiTpRWw>A!ZlQ8DSo?Nxw}ZA@s#53^^U^p@CuM$ zupr!29mZ?Xe^MH{tgzn0I}f&h)MSUtPNWVg5;T;RI-6>gv0pnrPg7HW!Xqsz@&G*v zKI_$&jh%M$n!LGrmh$V&jeEj#--TdMoODUzib7>jei>VdEc3F2|I~!7DQ- z1Fszcjt%19`fpepQc1=wa|pPr_ow>U+(BJjCANacON|KG^Q>^(%7BM!&VHrzd{1zj ztnz6nd9B7^&H^17Y^ZIojga6<3`UzFc0kz*s};4v%1~p=rubIV!OeD`ZJmlnWqJ0q z<}6k2qBpNkLZvA+!Ev-PCAIYMGTN~P^pb{1C3G+R`pZG*_|$Xy{h1EzLR$)H(tz*} zWrNQB@OyzB=G8!HE6}E>oz*}|;Fu#{|7e6lvFm0z-xmZxNNvP1I&wFJs(DDez6I=X ze*})|>Lb*dl%vs7fvhV4XQKtQs|6do6NDhr1VOgQK-hY;cvWi1r%DB!015k1c@nD;_)YjUwr=(I?1=OJQ6{=V1?3 zM!Ot+;MY>-Y3(`GTml4SvM_O-!qTIA6Hk9H;oQ3tFdHm zJ>qY>-aH9g-gX_4{zk3cLfk<(_!~RIasKn8_3eF|L`Dq11c7ab!1vqhCo6C(*IhH* zv=hnjyJ^Ffk}q#6H=+n>uP}o({#I&Sk!6#-r}xuT2bvEan3sQwbm+lTcqGw${hEB1DVe=|Xad+-Dpbr(HOz?{)DY>VKA~FC5|1HYBWkYzTK%Y?EaC0W(}UpZi-M z?!i~w+Z1zsch#Qj&nkfB+JwWW0F9`wT~6n3m~&Myvm%yZJIZ8=**1Bnvo@8gnhp(B z2|O^h6q<=5cX7)wFgJsT?aF`AzR$v*G57wTgI5@?8u42`bBeqMk%)xg1HhBeWw&Z% zUVu&?cllYB-I#VcH{KbO1}6=dS=kcHiah*6$zI1XJaCiH>qFs@DjrpWVF)prwU6XY z#~Lc8K&&ejoOu=~U{F3eJp3gJmufUfbQ*nqbjhZsU}VbXkp!+a5UR*_tlR zc%vh&rQW?uIo-GbZ#C<6>T82A*OgAzTFX8}Q88`K)Q;yx{MyfNVDEY(CaA&`@gpaE z{j?_x4EnZE9sLHJY|cUjw2!`xpj2^!IOZRJoh7>MtjS+uQ{CpmX*F3jdYO8ifRpIa zKFs04Fs+cr9zD$Z60^&$kW|HxCbe&X^9>(@*&Uj?p^uU@{h$=fn5P*p-Pq`}D5iEr zd7fD7h*PpW&C9NPe#EWC8#f4r)y@B_ZiizszC-Ne+AzhT2i{F2qIqCnk`HHSpUHT- zESAu>$Hsakc=@c#XC!X!owB3H)B}XE0&Sjs)i5Uo5;JsBQ>y+l6IwJIqHxchWIc&^ z-!y$lpZUytIu;CLb;OJQ zxHlPWGNe2$cF<8w+M-+LcGzL4(W8aQ!{+S-dp$ ziGD~`9z>rszt;u-Zfl)x=xb1K1%JruaV{7(rfKbP=-Ob#+gggGo~eV^t02+TdOJGC zQ13BcM$(BEeP$aiG+^}xuHEPKf}U8wg#q2M+rj>{+S8uibBba}rG3AwM7htJ@m4(e zWmcREVb*U+9-}pW+`W|Y1$XO?`0j14OI)s8d*D|A;FG5j@bPY0$|Er!a6E&yaASpd zr-Qo?5d;Yq8s#}?BiSJs{Idu0@U zBaXnZ9=$6Ea{Vqo;jZ7LKq`qc0fodZ&ln+&L{z#RJ(pzrCH-slEij9zrbaELZE4=w z11D`K%TBJalZcu7*C}+}31#PQ%qs6R&u!e!$2PAgRHtoVHMuLR=72V{@J|P?=D@$3 zfz^3WFb*H*D3h^Sz%#VONAFu#c;h3il_zMNGw7+Gbm5{IXc-TA&)cl&!8t-yF~9Eq zrp3nE0Yx#Pi5`5E6!Jba=f40y$kl;K=%FIOzQeeT3s`$M(7O%HHb+iX+fkPK>bYcg z>|B*UJtsO4wXwGgi^G8dN!T7`;-PnpA2~RNlG-DX3OA`8bnW&M0PI51aHF{ zBlM54=-TDvH#mT&&vDXsmPR|<-?`om%nhKz2%s6F2K?%}fL|S`S25mx%dbEs3A42R zP#5hk}blIy&V(fwTQ?x2X0as`k0~ePuX6 zRkK!=)suz0JT-3P4))tWL0iq9jPy+L?PnWgHIL5oG$S=pA%dlXjse$}!>XHSM42NLV@4QbPU2{f<46(vd22%sy~FUY z!k!r39GR(T(M6ynAt#y@vC-3ic5O~wEt9}-D=i*I0sSe6Sn#r4E#ZXKwS&Th-%w8n zo5UY!m7m5_4PJfO+?KNcO%X8xM)xBC%J^n}s~fz6-RuK1wM!+BO-+Ly`-antEl+mR zkz$Uyc*@s3w=@v33jL2C&ej%@rG6?tB@QHD<4U7M^IB)>r+Sd?mE}_D)i>YLzB0dF$VfXr?=%rmP0<3PCa%=ESDHneF9Dg|!#TKDH?dieh2{;UhA%FWJ6m*yE z->AG}%!|~$9eME$xqmz9a@1RfVl(+8&HhFQ)-~(pOP$})xv3GEDYQm***F=(#!0v-4;Pa#2vt!G4ndCOjg4v z1`25mh&1g*1>zc|x>|Q_K$wb-EP++8l@9M;NfOq*&B>QXRY8YXqaEj*4Fr}fna4P9uVZ}DJs{;6|bM$8dn9CWjL$5-0>u!RprjB#cuJtLD zb3lx>QLy)0$L<;0k3?CML93=ot0{3QPmIOpX&Ni1@i6!WY95kl zrwA+DB|2kId|sG$kGjtkF4gt}wO~#ETp#e~PoUlSY}z&9@J7uMP{~sYT;5qyIV-!zTc*v78dol# z^wp8acq_DtfWF^}N>rCDgH)ceecWK8n5PX%&Co@5Lf-h^iMHXGS&LzEOL&{NxN3+~ z@mmii1WiGEnp1mZRT{?>Jw>vR0Kt*kMby%VI~GRX%>=?Xk}?2Ss`~=PvyL%x!vOsN z*(J&iSxrzdj8O4P42cY|*Li^wW#g3xh(;N3ZvuUwm^iY%mez7wWjA(^aHvab&FUoX zb9>bn^|6xHiI4~IpKC-SYApyXh|9dCL_N1)$ICIf$T``Bk-ms;}mFHGcyu9ekB>` z+iqs!kMUKHARatv7`eVA>N%x*Ne3b1o)P{TU8VPwt=t%UK!$%1yhNhnvdN(`ZP)TG zQj=ahK9v^Mvy)f1i6ykX;?v)bl1kZt?h{skMx&90UqNOLr!4)Qoq;vWb0|OK#fibE z>e2hU^=eIDc;-wzuvy{lV3!`h$68klRx3aIdgj+`H8B4f!2_gRBjfWtXP;cwUAJ!ZgY z$zI(2`Zo`tCvqB5S5_;z?Q_bD574;SRiH?0KVy&;drs`L9%*KCav-7msvkZDx5~V6 z%DRkc?m<9bZ(PT(uaY4IuwRtjSn^rtdu4<{IXrUfmo?#iF2d~JP{YUDCLDc-sc{eTI3;$1qGjgw~J)u8` z$LJKuQGz*sNd6K;s2gh^)ZsEIsn&$mKVtXe=^^pqSF_B7K^|8gy7qX!PfSq1vSv4& z#-G=94n zF`en35}5y;G+Bu+Ekv?PM~qOxrNbt73uonapU7$!L<|l;86J+Qkvj9>2JsQ3BFwSD zJgo#>rbx!YTB=!xEZ?O|Vt-jy;@9B`xz0a0iYCBsd7^4kw0xfZLC~nz@dxoT?am!8 zW$&gDeNH+ihzUh`fJ2#rHM91QZCca-EL{i&&>Ne|BQM{ym5V&l2mST3zAe8 zINR5W8;!i42($VcdC?g}T7qBI3}#nT#4mAti1VPR`io&q`N_C!N^l&lk_6`ciX2?L=gr&_!i zZ*f~RF}sx$i;2pzC(EQeNi2ptiuxjaf_KqrzlGGB{FD%3YV_YjHqJ#yrdJaxDDf_c z*wpYTn7^$f3!*yosxAdr5+zGh8zt>|Ftt>pi0Pe2wMCmFh(D=_%70B^iMFeV)SlQ~MhK9sIdwNU;_P-TX-|;rP-o=k zM3VvM&Oec)2~M&#W>OQqtdY?H*mY?8C2dz=?-&UXNFRLqJbc z7jE`mehmjujrZ(ZG8FAA?(gGo;hU~aPmi~FF!6gpC*KuvJS$6A{@w~V$JD0c^E=4C z21lfnIFYb1N3`5m^Z^p@q{;6YNmLVg%9x4)tbx9B+f*vO(5)$HuNeg0gJG#=7r)d{ zBz{0?M@sqzWXVE6VFWrOIj2{}lEEc# zLxdT97T4s6vg~1%>t@~R{Us6hW|JI?uddvOZf6dilR`-5zFl*UjDYj3jrap5J@|w; zbh$*58LEbfq~|itenV3x&=t@U%RPnWOq#rLPrXo7H>#?RlP+9JE;T$ziXQ>Km^GJK z8`NZqU9~7g@(j>J2`EgsvIH)O(Y)A$PUPm#wU2kpXm{b0 zwDtwIfMohxm>nXtNiR0yLL7|Q%+nfzo+yKG*|CG|aee^`3`S-;K~dWVodFBZSR$|<_4XAM&<|sP|foQVR?`;ra zQt>JmZS2DaLMncx=G*yp{$w9bVmCr(H-x$;ocqni&sOJKaMNVcE5Ns&OuswM^2kKO zVLsmVkexrwM?eBAIY)N*^z%+O0hISRe#%}l{uv)9_i}I3kiIM(-@d%IxD6aDNmU+Y ztEK(AlIJl_{6nbQ8GfMayjSu9J{Hk#Jr}S(t3HIt*KDj~Sx3?hmFLwINa_Y2`j=z* zb~2+qugKZSyoR&hxt4gah)G*?n)BZc>)H2h<^c3Midih_U~3M886z}rV6);s1$zG) z9HyZ|lajgd=X+;z0%R+Ny6eR+=e&P1^lxEvM55cDwX;rHd?)RwZ0>-!hW-Dd`Ddxe zu#k?hQ-R?0fzY^Ke;6Ff()4Bogjrks%UIOr%dwB3Ehw&(#=TI}(Ua|b$r1us^D4Fa z`6X4CNe90Ah>s@N2}UDhZIBU*3!PAk-N#BVp{o;Hd0eqvdpS zK=#EHko3Mwc5bbwURmrkiMJ4sY$Xw9$f%Xr>JH+)NR@saC$afEVN5ycW`VH)C6~vT z#5YyyhxLxWD7)W`lDMZs{({-eb{FgcM!B5h$$xm_*a5Hc9nou==UU*@_k3#B$|w=P z<-7iw9IXY>rbZ9tDHU_5$=4r7NV=`7)u#}b0uDMxNWU&f9Gf1!S?attDhp&2+UkN~%n=Y@~mn`|B{HCF8|?)aGRl7C3gm%FVI=*8Qjn!6Hyaa?J15FENuL2xw z_p24ZwlbGnrQUvy()jJKF?jAYQ^)@--y9r;Kp5J&8MsoHa{feI%WU(cUHD`mobk%{ zx>AS~bKt|`GJZN+>s1Hq#X|2lr}E;9&CQCf1dJ@>ikBEY{k&lyzEIg=5j4*v2}0zrt4u7TkCTWybH(nN3FBH($A z;ay*N8LkN&ona=ji$5{2F@>c|%;ta?2VRQgx2ny--Pvgbo#0N@D(9QZiIx-L>p=AuV&+vmM1h7Vx>MU(r4RcuBWK3 z?nivhUDk!)r=smXg%Q~>2YvLQ5!~XD40%)?z;e(Epck{XC6x6yZe0=Yuz>Ud6`=I7 z>|OU(S8t|TGM03@`GP?e>yS)LHvUf2DWN?Kw{3k6b5Ouq-7Zi3C3{QS(scNH(wJH= zWFq$Zv?QFtX1n&lcUV41K0{E71n=S8l{=rff3TIoD>`>@DlwJSBO|{-Vqo5Q`dciR z@pp|HbB^hR(FUA~LQ9#Vp5z}EV`QH^mvL~Su`nOHn$Cdu1wjgvus>cY>v&5du8ZGP zuwc|{iN^yri#Nl^NhlReJ(qAr5{3+A@Ba0Mqz*bSjJf4LB^|+8T@r2(T7VXnaZ@$HF!-At0{d{hd4}ZDd>p?v_r$cZXs_&%N6`f zM=@_3+m1Pl*wgG%-bBv)=QBG_;1q=FxiEg&V}JamcBiQ-U3Ad(DxRY&$+kT-p%Z9l z0_vY11+7}}!et#%!8}z3TO8Pi9tjOd;EV8mf7*Nndo3xB)+~(3@C<*+vs`Nw9O3fY zLknk471?s@aQYOkq;L8f%;03s+sOY{MU)K~0+sw7irH1=#g3zaS?lAYsSq=Mmxg5g zL%o07fMHv4#d}vYDy3rvt4R=^PJAFv!Aj|AE8!M?iS0R*>BuKfAY0g|7 zK35Z>g+tw^uFFxd9e7Ozfa9twQA9`gxpVw;hzG@<3yM`P#}sslr{zpr_``Tc(jcB|3V$^ zwD;QvKmBP~ppMllUeVpcJL_Qe%eb&p_I%exhu~zf<0x)W={+NO<*d5~f^UUY$g`)L z{In#jO9^}0q-!>kBdgVcs{l;+>BZe3u6JQ@F@bGlH*Q;ET8BCfUE9fHMtiz&voFGWxJSK}4m zV@h;9XU=}jw9DaP7F`vjNE?6}guiPWMCu3ppM+G5W@2gxU?vPF({?`jN*2aH6y8Vs zsf%N~NMM?YI12drQKTju8QZhJc5OpjXyrnf^d0hTz21|M4G;+fQ}iEm-l^{kYC89) z4vRZFXm1PMcU+#%yvUpSZF8bple5-A5SF{5kn7DUm;j{X*b6d}Ta;G*JS!ez?kP|_u;%VvPawM}~#`rd|EV4(o zmOy$f9Xlvx;Arw7T&2U}*EYQnd1XI+k*F~6EfV*Vo6vn_EJ z_JjUErr;Rj_Jq3ptW#Jg8@SQklA>liRk-%~TC^L%$eo`Oy;NT}@Szjs zu8|ADYENER0x#J^{I$M<|7I1xc4M`PEIO_(%|WLnQ$#KZpRZ}8g+5)GizTk7#NVUN zpoIvUBQ)%C&#hR=nqE9w2>kyQ- z#Ukf&bbcu3Y^~g`?Hc4gW5qdbzuFCUJKrC&k6xJB#ykgziVZT^wG|y{se~*!l(H@{CY>_N0*iOf_kG z`|33&1twaq7ZPZhS9@$ww4hhl?dS?@_{ z4dx^6S8LBxW#6<4v4@Zs_Ny#;xnfuQiw}i@g`9z%!#|7@7cA@VUr-14&+Sb+Mixl> zexCNh?kH1G-i7+_E+O*1o~~UA;lKUjZO&WlJj<^_%;~ek|9<@xgYu3Iae;~kUNSZP z%3qW-Wh9x?$`D|&3nEZdbqYf;DAIZ`|6u=ToE62GcxNt>tf4Kmp@rIav=7=_`07*G zYjHy7%5TN5sBacKKqo`Y1$2I*-3NDP!2Hu?E(Kqh3!Hc#SEZ@n+tHp5%-H|st@ z7}*)`Xi=G+i-}?IlJMekd-O+*3f8t+CB9_u5DNk*LuCq1=x8b7Bf77v3Ara!2q*GU zv3NALaT1mkAFuTIYOYe|X=KF~uu4`>qt$|q8R=O!?n8$wzP)1|`Fc7AH6t%^(Qw22 z4X*+QW1U!7+15VI>{)1&pnB=F7hzKg9GYbOE+Fn}4h2cY$YIJaI^3I(XM>Fhb!SY~ zfVCavLFw;q8G5L)B+2x|B%G_yjxW8{C;9u_4|#=hH5aC4VU*rT90)dxd1^X^1MiX_ zE48ac!jb^Y1+)O%_+NZL%V;Sp49*)Rsj##O`Re&|o?&$nYQG%{qqlw2V%AmKCVQsK z(3klps8Q%Md}8(?J=J%uv$NlE%2)DxdKX=Q9}tjHOH86N|2He39@2iv<2Wa{Bag56 zr^fikVQ@GzH*4vRfvaePD`5gna!6@p({?kfxtKb7HYarjy*gsUPy;Vgk`06T_uRfi ze8d1~R`slt88j8bOi)g+NGw9R)` zcZm*uHx%B+Bc4Jc%E7M^V^6j56tZ)pUB(E#EC|Z}I99rtz(gs%AGUg128wt6>A0PZ z_`l8it(%R}j!jc&;^O}}h37p&YjGHpv)Jl)6MacoJyKkuN7a2n3EvY6nJ31$9jAy}>M)uc-Fgxsv8g z=u{tcw$u_d`EH=_xli^W9Cx719hbXrhCs^u!jxKtj+F3c0aKgXD#v9`-dI`t4W*?= zmfVb)M^jsj(4cw2s*wbW0W zHt02!H53mx>59_X*42ap=RQporuBmZgL-&jyl^SRvE7Uz6)H=l_bq!Es;?q_17wJb zwf7mz7mUZrr{GyG&*(LPbEs6mY3MIH(5zbN|T4Fy!UQ>7d=F%b5rv9 zo;dH-Mz8|&FS)7tRnNBCNjd(cNeSXoMHiQSK;bJD7@{kfm>ul?Q3v-RV_umb6Lr51)C36;a-Un1DN>&gBV-hwqh zPA?>mieSWaXf&#Naexif=K95R6A^!l+=TM|fS?5MKrN5ao;8^$bZ^7ly&Wz8wPKP3 zb2zXQkDkkS8s%N>f#=@Ps+}RwiU>_GN2*9fj9_^Hqrh|_46jO^W=3CahEhxWXFY{c zYRWu5YYy}Zvh3v2HPLb&qA?$q+~a*R7q26bQ4eufZnnbU)HQ~2uQ%iVQDX>pIagNB zS~)MVui=d<|6&$ty}WivY&?t@@dnb2mk!qVi`OUJ1`by5x$I?b7>}y%xoCPI8TRCeM*RjkDet z8t)HPx7Fl*S3(4HKU6tq$&#^N35PI;u2_cQo;6k}UaN%=Q|>^x8nRt8|8gU&Rq}FT;)I$Kg7vfXD>tFx+pipu zoon_ll=37@ExoLrh#@J+9=PSC>jY(ub5Hv23NKy>4*T9@xDB%qllFUr4MM*={=Dj% zk&3Y6`HeKnsT1p1dd22L7D(p(s4{k1AhM|V=p?)Vj(B9GXG_*yfA5R!ZX$UHUL z?FcKAzO+XB-B6pCZP3=Z7iiG1=I&ee(|i5(Ctn_}ZO=6Mw+wwFn-6K3t8Pfek4W@J zLF$Q^Nl!9`g?;Wx7jYdwZuqJ>$>Uuwx?TtAQ_{~CC#rz*$I6>rSAtI#)Tg2dq|L9s zg!^POh4HVVxu)Hmc6=a3$6Q6*5NsOd{+NGvJuADc{ZMru<39#&Nw-<`1PK^*#a;xj z>0;O>9g8ER<=jc}w$*ek6NYR5rK;Lc4;K6{%*pUkcfz`sm?bBHne9CUPj)`W*u!$^e<@)^3 z8R_ovW9>mye~ryu`pwO$2eQQd(AJDBh%Os>}!FCC`Sx^77Ye1^!UiDuWl8a=G3PNw|P zv)%7kwY!(p z3l15=1&xWD5nZ%Mo>3yZ=XlSaNXj>O9)E4r^|9G2i6!H$HUw+Ig$R1_rQ?VAsC2|I z=zjG#4?CK+Hh9zO%3o$dm|v7n3#r}%ds8)lDU;Z`)wx)Q1va|GBV#`LyVn96di;N%{pfDLZ}E zk$fZpeyXF+f(7?X*;|GF+U457^davXc9&6@?m9ASy6_?*p!UaZ<8pK)T$=wtn+oI` z25@!;SvvY5#}`Xs1e}!$jK{eCn1#yC1}D(hxK|GY#V&^LD4WC^qr++mh4eKleo0w1 zAKmJbN@da>rs`vq$)@)HA^xHp(kBlz1jjKj2sxE4S?BJ5Q#jwrTLvi9KY|d z)GbCzXkF7nho;h3!I^UPL!bp8o{8sI@$FIj`*#5lb)_%?HC))K0_Jsuxa0(CQN9MK zyLY(8ZKKKNwf0R-@*^#=9Ut#vYOF`cvgl*CCHx=X{d#d#Mz9|DkSFuo$%=^wUONDN+`1}Pi|uXzeB7kF{ITe?b2l$)%#(~=^hyVH`HSP)H3ER`{!c@jL?ug%W&QBET^C#-fsaV-NEOaq=n zLB<|?7QQAnMbfC=Q?70%(s{rs z_{{gdwq$C}B&U{rL2mu2yKQ#OkgS@Rz2YlIL}3Cc5-DMq*}Ca^%QPV?1t{QAFFFNl|Ai9dWT~ZL;1k*ea+_>T6ope0b%QVaZe!gWQ1;JhR*mMZ<{x<$XD^w8uw$ zDqlmPyk#*kI>cFb_aoBtf~?03yJw3Y%aA-Z^F>hYKy|In(wrG2uYdI|h2a}XK|cpq znL0c`z|`ZCm$gfv6?dW_f)KD#2*^whR9}4j{P7+KMiZmbYvfiUJ7q*{i3@;IyYyU} zHX~5VSoS7=h474~6sUo(wLP0taztK>zZm2#_Oqqr>`sI&Hqd?e^NBLlTL`pSfnuHj zT|Y>~NZBLAKQpNWv`hFZG_g@AGIZ7r0f&=WfMk6mVIDB{FNsK^^m0Snepz_QXf(51 zI~f1ut8XBD@K~=mHpA!P%B?%hKFqgd?;Ngckaf@-gdcvn|Nc4(f%zr)!LjsI6X;;Zud-Q=u~s)~&ZuF1`y$98= z`i>`aWAK$u>Z+_5!=qLSW$G>}_DxnOK;G-7Pvf@KY0=l7=@bcM4T{aalVKXY>PFpThwL(^J9Z z$}Fah(h-hnFH=+#^@7E@<=U42K6H$!yfRANEqz3ryq8%#Dl9Uf);sYcRd0C56;2aTlxWXe?th{b%7X&(MRwj`d`#E0_btNu01o~5##MK zBET)mb$?C}7WtrDn!aK|fbqj_K}T@F}|PwC579o}LkY4ABb>{Y$Fe)@2P zI+EX=^L8}~u#KdDX}07_%j0}IFp(ZQJ;)8wz_%WxZ`(~Hb-Pmxt~SvgP|t3TnVhopXF7EX#B|8L&m*cfR<#Dqs2F_MD_M_ zjUIrm28N6&#;dOdhUs?dFHAh<{$`*LrBPu)EYK(M9CP-6a3RsVkY+KB7^td|Uz5=9 z0mc$8%rJ>iNH#Yqqe1+JEWRUq?17HiAs36Ikn1`4uDYC0m?&;zc>=;Cn_`*UuWhh3 zT@%>1ks%=S{JYBePvTx_uqbBbtV4USQuagy!T z$u(JZHVCU#HF|3MP+?y0p(VsX;(u+NSq@f;L#XL8|B9GA&-rCSfc^qQk(#^P{Y^D_8Aa`>`LcgcysjyV4=RDx!OJg|QpcG6 z)}?O9x|PxBA*`&uw=Ho>!L zekg~32yYYl;OK_h#5B6F!?a_09@I!TnzpDI| zTNBfI7IZWlAMnRwai%HcN3;ia)_(QP@OZudI@>eJWhFAHQuEes_ARuTq2}w?V;N1% zAa(SS4P%_&t&ZdIXw|!Z=)J*2mNCXV`T*Z$h_>yh?a+i9y?**})^l4bXi_!bOefNUQ=`Y-r&LWABP;vW=P`}IwD z6ADmN`8+^$pI5xaZmN#VyMW}1)R(L_rNkx#gLp^Nnscn>&_SR!XkOH)u+W`JY zb|z^n-oZ~RoaX5PM2LMsPMn#7QNrC!5iX-=!WOj8=XKuS`Up6y89=_HPcyNHs9M{f zLr^F?S1(@J;clf*qOZMQenTJL2|h|IdaQ{-7p~_o6^^AQ1GT zNPLY>uIQv&rMzK8W3mP`4&C3v=u#Tq~H79@0Od z#~v@N@&`QKAZgZhHy}UYjr!z`*vz^CUE4WtW;Lf?AS4l|76%Odn#vtLUKb?3b=ukE zQ%|ZD>N1&}Ub>v$`uw37)>*LMT2%Gex32&=5}dKtoC4f>%_$U~WWImtpFlc}7q0GOy}{7NS_B$@FEkt< zP;7TjplCAy`&G~9E+a9~gu7?MyR6xC>|_=B_^!W&<45(J<;+%E<1ohg;yA4Qz_x|! zM|IP0nPFHux5x6CqJ)8knWHI3a04veCJ6N}iuFjcr-y?v_bjfpCghgVAtFHms5e$ZCo!K!)?)`T}ae z3Aci`79B@dE_ceEJfMf47e#Z(lADWo;3rPNU)CKNKgW2`tQvWk4|)M-3TQW3@whlz6Hw=4xG+Gs% zvHs{C?Qu)9bR@s^p*P2=!W~f;cxTAuCBeqjVC(kb@PB$VSrzapPhXd2PU81=wf7xO zA&^&Z`J$38Ow6gZX`&F|`1l)eG^ci{QgsaVa5NIyCHXt5#qb$p0}v5Yne=+4wd`_b zoRZB;`z|=3e9w3Nw|D;R%{l>0nw2jHI|dGa|H2`>`oaEw$Zoa&=umRDK}Z@_tu*2X zSt7Mw5_6Z95jRau+4^i+Wp@hCaB{+X9lnvjwQXCF|3#dHQ#|malAM%pw9LzCV&PQ6 z`x?O$U9X^;8V1qxT1nRsqCjQ+djU|LuY}L}lHjYpEE_!K&J?M2z<2?FyZA@O!f-(t z*t+n>9n^($77a!*i3?yVZY@mfe296jTPO{Ff(P_b@`;zl0M_O6V%RoXz8ENuQfX27 z@1^Sx9OTFhDG)d3r(c!3IRSVURakyzpT<18nrXVv&SAq!zbAoJ1B?VY&?PqP z^lcqSyU?%a+lO4vUrr{poXb#S(%!q@nn=1SpT6v(xGZ6U1>WCftLGRex z3!rOlHnrMQhFuH^(&s{7hvN_!?(ttaw%hENgIff)J}NfeZ@ z6@phDZfmW#DAWHRr>o`zK8!sz0B$2IOYx z#A79621aNeTyB4snEfVfP+4;34&p+gh?>8&^x!IIZkk%IxP2<)yevI%A4PTa{u%F` zC&K7Sz3cJZ`5)5({lj;x6vbsUX{1LVW7<1R+mGyi`&rowi7Ci$;`}dyJF0ptM@o+@ zG<~wmqdCfg6E<|vwcEQ^X7LMKisN9P()Zn(1za7>&+bU~@VfFin3uJa9TMQBi5H2R<8z=Jh4opt<(c1EH;<=ob&o~2frJk(ncTD}xPCRbI62ji-=gXxF82AirV8{*?$~cxP5a`Pyp#tH;5^`=0rZ$oSMNi>DAQ8qd7hgZ;Zy~*C_;`80;|s(-UEHYC^QQ%i5FDd<_X?Zz za`MK!EQYW*VEh^be;olv9ZtOv0D_c-2%f6-^=Q*aRH>@uB^A1>Q$QdLvV^QOV#I<6 z?Hx~j&`}BA6~7}z!uzgu?_)N`=(_rfyI4aU;Gd!qmfqBhn!)L3BU0M^tMg~U^sffR*^I!&+ic1Q_>Ho#@9 z7oa!I&c$T%R;kNLDfH z)bkVjo0V#nTSnlKle%MRIh%q44an**R);cB8MCZh*jc(-!iI+@`Cs_89R&~y73qy9 zm5Z81ETizc)Q`Rrv-ccsAv7;-!8LSUWM}1Od<8PjWA5|$^24kpE>7RzXM$tU_ zjI8O)cz>oDxQ>+CRzm5w5wyr7sxnt2lz0)$`)}TuAt+j#%N+S|OLj2Q)^8}Tc3YmD z9(`kzM|rEM+VIG7+Qe(lDtsbdQ2gQxdvxR3@m<#u(<7#1r+=ne;$vmsL7gmfl18 zhQ05bT9nc|cnNF(^*Uy%YEeyq<~(CwEzx~BmA4Y_5Qnj|cnEgDnx8m5+y;qDVgife zwmL1{h{z=QTJ|bT!uoh)*zpM*w80;$=Th(37LY1oUPl9J0S+ByseiGq7m)WrP=Oa0 z0CpvWG2Qvkv+r|1eU8Afh`xSfZ(G4C_&IX|z`vBPwK-x0XLRx6vn>lN`-nyJrJcmyuZ2LbkGN`F+f-G&n{b{;d3qvi{ zL>Mj>TCREz_e)Yv0JCAaEu8+);n;v3s=ek8n_$2HC?8+}&dzE!#q$uJc2%mhz_vc{ zRJdm2AP~@ajy+H>ikZ6AHew4t{_xc&~FhQi? z9j^E6jXWrRp&D~Hm0|NvWc`ox2&H{_m95WG^a<7j^zMosX`d#N;6p{K-^_KRpVc*M z{q7yMP^zvB9Bl8AU0EQbt7H)x`8VbFiG4Dwo&slbX$8M>;`-Z{9Q4WmmU&9l< zO$IcRG}Qj5&Y+Spm(yn(8l{4gaRSC_=LYr!Ja~t>E2dX#l|%JU(4q0rCGo$!ex83WtKT0TS)<7&NDN zRsl7`?%`NW(I?yb&ZY=&b%%Gh{BpJtJ#+ZQpeCz0aW~Z9(-GXB6!Wa=Xt()8{6sJ? z|76-XD`cTF2w}fjI?x!#+h&LGveL=tA@wvOG*uRzOh+Cy6r*IqhL%NOO#OANaD2g&055t#S+(4i zpb}sMZyr}RtZ%1voP0ahu)#xzsZ#n-N(7boks1_Lp}~iu!Nuk$ahzPO(avT|$S;>` zKkvtS_c+M9BR)MC7O@UJ+KFVeSc+r*(R`Hs*LEjM9v=9{c=Jm#K^u3GFd;=5WHr9( z3vF6>0bgFgF~qwTUjk1S4mexaKqH=4(ee3dQj0A^kIbwpo9xYTVAU@9S*Y5jMV<8!1d3lE1=ryx|cPsRniFh zB@-V`w%CGsEXh?;QfZH|D>1#d6{WEw@-oh3<;%ua@tCeN=6R?AUoA771xk}aeFFzwj$!k;HBZ*mu zf~V{dps8g$YZe({w7AI^g^&w<@+Qj>pH54O_#C$-X?EK);9ca&w^}jA2ILe#!w+Db zx~yoQe&|vOpJYFuQrokKefAzVCwsL;bR)6o!uyBfzDEX2?uxhk7!I?CLY|`Ff|?(c@;t=Cy`u z12_>2W)kQ8&_zy;o+qYk#_Wxs&elrf0&&aLkwhlZ`GXS01sB`CR+w-)7}YikqNyYs zi>g>}Fmm`92l{0wPU~0&9d(qJA(q@wXme^;ZlG<3wd&;Gl=LA_J@`N3CR|=;yYNFq zqv-OuGNz09XZbbt-K;OtQu0DDAHbh(tVcMXi^XRHUpC4&fNOUG>Oe!A;0if=RO&`F zd3+{l>z(`N7wrmX;Xq72q2RuhzN1S8Io@%?-4xs+WmSvVcJ4mqxfS9mIgxhms7wuw zNL$xa9}lgEsk`H-%~{(nT--3bE?iRFF^FpCRSS)cCt`iQp{cNi!JnU|w<=u}%vY-I zvMs6^c*W!YF5^IKrdfOCZ=4CIH23Y6mnf0cq6d1Yk^6**QArq`l}9veP|#Wk@BHC( zR1(1msr~m%d_q(72uJR8aN$D_#?PFMJ?ZQ1g=6@)TMM9JJpT%D`TM;I8I=BQ?j*|y z^rgo?a3u+_{o~8_qTdsQr$pHuIKBrkr4{sH35oM)@D&U*$(!Tfb`8^38T6m0Y7kZz z-e5;XQ0htUi^R8NXrmLqO8m~lc(q@4YVxVUXn^ymOV?U~h52c37AyU4#TZFfzS{hu zDgk#-jq63=&BDwUV(Wb#iF}LD^kesu;~rYgx`qdFMLNggg7?YiYJ+5GI5bSUJ-3KL z^evAEqI^qpJGUnMhm-5=&veG-_t}<=${E9aFax&|;*Q;#tZKYiHomFaXyz#ZC4-Fn z%93bh%{NjdR{|@+3o;|QLGfR6@{tFojyy#3sxs(MMYIsf2={k!yty{Wi^r_9SZwxc za=zzB(zmUjFN5F~MwTKl99d{J3fpoXKXKpZonC77)QQ4aVsQ#Z`@CihiuL3>nTOXn zC$2tC##FbD7oa0VbeNp`>JPqTcRn93LjA;q&BHld)1JVxJf4$ioPa8ZD!GE)|U%2<9I7^RqW;X?R3TZ}IVdIUPqJOih zslR}l){hQb6W;))8!uD5Gv($ETYAxuomC7WC4}dRbA)|}(bz(%=oHl7cJYM1(xK?! z5Xs~EdQt~g5&3Ov0*CldPV=5U12X&br5L{Vs(7{VUV=U)M_vJo3R~7Z4KU>ZZD*@T z|66SW1e=4OQ7aZj%f<>y_orR*s%Lfo?`7g_ghI!WDAdzk2*Ut&b^P@_lo(rkA<3x!WN zajG_TKn7%m&5i5ipEe4)8>1u(hWJ^QN=-E0(d8;y3BqHaYU1;xVg*?m{_^cMYqg~D zs4Zu#OC$&?nr_3}bJcgKq{en8Hp0{rkSbvt>q|mgl zz(tL;CcI*2dtEYk)lLv^aUQ>JY6$t|d>0H32^;wj98l#2TDk-ynM>0Xp3kRy7{j#K zf9A_aveI-$-wnvTF7^riarW;Z|KHEXIH36G*?e&8ty>IY#>bmIHa>gm|Hk+9r|>vg z-9``=y#vriz1Nn;ktsJjR5}~1@>XE!k?nPD&xLJQQ@~x)BABSCoKkaQJ?vUJV>|0O zF!H3o|R{dt-#=(G;k$Qm|tv%<|vqB2zMMx zJ6X{(2S^0|+z6Jm=x6b`WPT7K9$s*#&QF}~@6*&cDD6F|2#TkZ!j2l|*toU#fblDW z;@`1e(mZR(u4c0?M?rI$2~hiX8z2L!lPd~7hYT#=vER(sLwbrOTElCBmAzC9@1l(0 zG(sVmT~u@l`6zbAx8#6+>hpoZ1-`2qc<l%dr{s%O`VTQ9FFvLfcT zv?~Y_!jSY`60m%NG+0xDspjTvYKi z^4jjhfdShBo+2~2`+As$wej8I`NKlOx`}zDwq@o>+8~X;MGLc?y$3G7*)z@A@(Tp1t8Kn~Y2QisvaF4Hjy;|IzfbY+ zvy3#r7l-x@FDa853HGM&IJp5AGm8=lligJBqkDhNdLTzO6io7)BR*3DN4}$;xw1LI zAAmjpeS0O1cpW5`U;u?|dfEQfDocAMblD1+D3ef{xu*?8X9#sJfKe_@fmI(lrO@Zi z_vcgsJnrVnVV`|RRICr)n{FQIbR5lNzn%M>1>z7b1ozxl!fqxldl_aXzZY8C5ES^I z@z4K79@zG!@Glq`Z2Ezy{{x*bzcDAMLWy`z^x=~HjE`MY9vmkB>W42EGM?C6X);_m z8pX{m->lJ?;<1E)ej(!7H#()YZCw;?mf<=;GBym?+jW@_V?pJ&V8I!Vj|sLyi>l}E zoxeC5c0lFx%!idbW;EJvgvUY^DCj0S-diMvn4PXjTMpjqDC_py1?nySv$goYlfZ-n z(`ODQKmBk8qVJw`E$egtA!XoTtu-a&-Yay9%KJzwTF4s{V8fipu*muvc^q>rHv7JK zw>cBFZ{KlFyYQcZuJAZB8;cx}t7S6}(kY>dTU8oKD(&x?E1B9vWIN+6oJ0UtCka&U zbVEoZ^q(Qn7qLR%6l*|tdJhNS*ePqpUpa`rVufgSnmIqLE$ye8lNkfV0-mUt{3?_m zMba$gsP0OH|MzSE`^&Z*tSf0ZXKuWEEN4vu)%i>#;gR(j-QMK!aPWmdPNn>xEdna! z@nhw6M8}5~JLBjE^bcm9Bt=Q3v*2y*He_#X7L{~kd*Om>3aN?cMlmf3`m6+EA6%Fp zz4k9CW&m}zw4D78v8%}8sAS{)8mSUviUm(G&8UZaovMKYLWxM37FCM#|FY8T^XI80 zcHG9wzXPT?fC&cojZ`DT`&?YWdDlq zGAi|ss)!iDkA$44Rzu~uE+hU$aUr~Z3q}BhiRnv)eIqiiyK^+cG)YZjd)5t*7zcoY zOXJfP)CupRI{h*$!3jll~wZ z?X}I3ARqtFH{ib~om|m~d@1y>aPGd86k@hJK$ zWst{mfO$T?_MP7@v-5GLsRFl`(&0idg9>oO_(#dlPZt7-oK zCH0YKK$a)SDelmb&!upOaf59!G}yHBrAdzpUut>zShrRj1>zzw;Lox_R_gP=$7G+3 zq3}J}K6z+4&fD26l?Ge1w>c);9)4cCc2=n2Tc@{sr`mk=R z=}Clp#dAYhPK3W&9I|rH$y-O1cXsp8>LqwjDih1+67r4H=OM6=6!Q9EzOH$xdcpXu zKpqB)nXsh%GC|95Our|N%+j3;eDKXp{l_8nvZHXJD`)UwRZCp%BjYO;vvf*{80rJH z>PgI|a?XtNhln_>4$&)sU1Y%a{)*Tqx-~-KCElwRZ$z58V;gGi#66*}b9CjFL9+J| zQe&-3zi>EudhfNr|lcg%Gy*dTc{E50HB=#SH z6*Iq&*6LUQ%&{Qi*++!!TR|$4a5~Mun_2m}Wh|I=+P3+_ctJR96tFY@O}f=ezHGW% z?SRe3ocm=4SEncUMBSZ$%JXy77%WyY^s~R-s<&B$c74p(UF&CYlm0YC&~o%72V@BE zb25N^sk0jv9SjF?--WIu?R6KO&3vMQ6CxA}SxMfrfb*~o;S;Z78Mn1~y~)A(mYDnF zqev4-Za(tEE&Crkez=_G=EVtRWAZE3rgMj7%E6&|Z}R0I@Rb?VamNO$cVvL>>=#_p zZ<3ZnP_*(N*~8AQtDiM9!Of^dRWQE%X+rVt zh{B~tiD|M2x6_N?Y-(dKTkb;HSq~i#KrzWD_~V4(;*f-EmH#@OZA93vh``1G)znBw zOogU~B+rxZ+0F45lFr_&O&L7Hl^b>4JjYJwyYO`kzJ{5PD-CN~v~IL9U-|y`4x+G> z-X;^a9@OT!Y^#;%Tqg@5Z|;4MZwb*`?TD~<@+{!gq9f{o?RJmjdfavvivd8}7w&S? zFvsatp~CBI+I#TkHOb|C#3QH-CZ$XA3MZhJT8v#A#4<3?W%5%=qR!62+;Ds&Y2?9r z;zFC}w>!3`$S+D{t4yWd`@{WAc`Q+pC+3?R{cdx~3m|_`cKFHQgXhc)KImaIA5s{!#8s{`svZO;HB(P$Z|j=WYWsGu}36yy3HrbazAifWeTSTLA(R# z=XYd-Eb`J=ciQA%a%{5_{;W4558rfOUCn-`C(QS+-pT~l#*dur*2e+!WcS4LR5lhw zf-k2q|M;I`@N?gRD#lLGb%)&2^9qiVnBxiUYpS_6oi~peEw^ASE~7MWf%fGiUVN8B zhzvKkY6Et4Y64cY%YsEdp=J8tT9O}yV`b&;v|sN;UsHppc-1=t2B!t$uAuiw2X#?5 z%f#(Ld8u^^!u9kw9r>C%yM(cxyQLthXO1ya?*CCzuXXlQoAe{UeQi_N!m_3f0Wivi^y<8ylUB{ zIkw7gtT8!-g_Wd|k%E0}HyY&Jd6?pg-Sh6oj0tXEkN=})_Odid9756?BLa9QhDWKZ zhuxc>7V|w(eA77s@Bb;;0LL~Gh$6YjI_uS@#8#>YPA>Hi719s~;{`hAn!^ff(4jW5ZW%S%7M!RE^k2N~UZ_jR;{l~i97hl_| zzp3Y>B5;zdXd5LN}ee9B1z;I7XD$|R4yD}XJGrjeCtpN)k}EYRR4V%IZf z5#j~G49dYGH)PN4TQOu#K$++?iunsHY1T#Tf?#y2Ba2}vyk2F+zTDXYfAj`a1CY4S=VYmyl$plAsk>8L;6k@D<2*|pw#NSc4AiCk`7$jnlYP|4-OAh3pjB)drd%j(!Lrr{3)Uybx| zjd(F5xsuZ**OfB6Bl#_mH~}sKZCoYsfaV&Mvc@3UiiDBbjK*d%;p2{rCbN=xU>R@$i0HE!{8{I= zFM?`gXr3hLan&tM8tt=h@Z>U=e|eCBUkL|E0`l8T9om%2iLUMgdGBLF`rd#b|2-Tq zIB#Xz*m0=?$;JI=`Sqzr#m1*q!ifh7g@n}K+Bk145L+y7JhRajgi4b5-Y4o1kCUI& zTVVqQAPlmtFRk8gI(&G@D<{0=-h zyJE3kxYj<&_^jkj<}&P?kMgP15v4_3aHI-_!$ZNzjL{^9Bs^N%obSQ@0AC)>F>d z^2o}X0n&WkRlgNn8IW(@_)e?Cbl*xe(B1r6_>B4nl#@*p2{8XG#Q&xXfa)p$@I(c` zA>`e%aPJWFMf|=OByqvY0?%+jZcYmo@MmhlrF1Aps(*1?j2@0;MZ1I`-JV9SC@ienZl$E*M)VEDn)Pcs z;CnO3aGbzxF?(d?>o?a{E{R|R8SYsRjSU*G^0VR1)m(@sDD^?A2JsJFvGsm!!{sVe;dkgDpVbyg=o{xgN%1aX=3&(UpjkD4Jcl^^>mN!O z0Hwtu%PhJp%c-G7plD#svfMvl431>6zyau`qY?qR@@(!TTbf)&h2u&;H;o!^=vPba z|E6p?STq%AnM`5nLfB8OfGoH&La?O@15O?~M2*Xp8jzlu+9CK&v*j#QWm{GH1b6L` z$9w;Ms&7)iEAkh^8~bDRK8~Wr9lh*CS7Ts|t)S!|uu3h*Z(f6h=Bpw*y$t5yCrY@i zD}HqCTfPzgEtZXe%b)>>xW<*r(tM~>xN>YcGF-4cZ1R8tGb{LW5^JQ)l6r-#XGTGv zE($)lTS6X1Mnn;qaiCI_Qe)#AhFQ~S27$TQ3V%pbUe+_0Ls-szNxNHM9w6Yn8(=sd z{{eEnHV)yC%qM2J>Lct6&H8(91Jdr#2&wCQgk{7PjhQER>edl<(kV~?FJQvS4!mX_ zgKP{9Snn}PXQG+K&!e(#^AVP`F^{pQ1FrE@uxzy7a0cq@`Bp83L(Ni-X6jMCC9G!Z z%x-v}$z&ut<6Zy4ABM=dI@9UpmmN+ylfha6D)V+?Z`O&)_*KPTma7@L8sL0{g@MAF zf!%L4%copL5BT!L+fNy&(0$PmQEo6zHahWI#@(AycSJlUtDB?@a6Do%C%}nROazWO z!!LzG`*s=4gZNPr#1t)?`ukt5ZaTk)^U0JbAJ&A|$b-*aQKK+qTDl|k?kTutP4^i? z|EtKp$G?+sF7klss61ilyZPe{hz8i^UvgOB>z#j&mBBL)?FvkiU=FCUjYa&2x_|K} z1mCM6m4KW#mN^^vUckPNDFVNlH5w) z7X0PI04z%qy0e$iC&vVx_oa(bspXr}3}Kpm`=Ejq=+b`V@ckZjEG7`XVwniuYw+kC9Z z8Tg(hm(CD`z&pE)j0&xLcSbUOR5f(@>_b&DkF+UI>tT_@0~wEXai$mf6>tNZj%^C~ovshm#wJirZo{0Tv_X zKNh12GM%P{bkBF8q?dw)!Z($6l)+CDCXz25>S~?IyIZ!5LKckbI>ze-GukMzc*|&L z4+WVoyo=U%3b4v`Mbey%Dlih5i?xk66a?iac&rtk>fTeGA&S0YneWe3zTf2jR(`*% zOInOZFkppWm$xSZD9QCl1qhQ0bzDi|3#CL}xlCJtzf)zt-KqL)H1y80^A3%`&a()r zf28xL{?&syfwsoF$O~Y_o_%E;aPJtFMNiQ8AxSWO+@Xcjln)8#`ft8K1$%?ya#Skk zt7+hki19Z0LQ-IQdTtXF{3 zLr?uFKL|^WQKMDJ7b5bTX7KLgs@T=*rq?OsWYN%AAN&anoL*@oPGd#&lXh;%;nB z{iCuQj(Y2P@S2E!G&_ERE@Z|8oGpZ#O9Pl~?3DIF&tDU3xyt_K#606hRCj{~w!)fz zx-$MDY5M-7D&c5cnY{O>#z3}zY%qz%i1~ikebtGdj;ruZy3$u2(uR6bdB`o2PWu;O z_@=()JL(6OnMvO21|tYO7uLY%1O={caf5pYx z`=RuE*w1yXov@dFPF^=$F=%jO2mr1!_f;%SHoU+=!5c%!)?wPzG{wmnO+{XgOH3M# zMUM!7$6`lhk1^P&BP2foUP1|urI*OVXi~X13%{&Oj1cYvZ&Hv^HpZs@f?=OR)-EF# zYWKc}tM&2rl=CSK4`Oh?z%CEmq^hYv183A4)@}(m_bC zg!xNDLnh`9RpJm-PEh#&EA@~i#af}pZ`~F(faMxOocP;nhe82pGSOR;TJ_O3wF5M2 z*Q`RMcLpE-tC^4KkC!48R@ll^Y{?wg*E5*l_%|)iNgN9?PY())o_$AbVX49CP_X`2 zuSPfCi}TSF!3Rdl?aXh7K@r-vlB%B*UT4FxA9O#cgAg5l0u%~Zg0cfT=3ibgQS7Rq4Vx z!6v^PNmBw4gc)qQ5tID8Pc$1nM64({9#&iYz)EO8661Xy#Occ}xn>s!RcD*hl0^{z zH>qa!Q&G(dT_2=ec7M$dS_{zK1Y;x(MSJa6v}=7SsQbG5B`rR=Zu# zj_VT&2{7Gy)?C{QnEX2oY??Xi&F{jFz1t>;TDH z$3ZFw!NtWhwMIwD{qWUya=wk=@-;^3^pBcGukNbAnVc8;@KSA=Z5G$O9L|C}nNJC4 znVzF*mwjA=v7xgMO}UqKT`4AvJhtU#28^P=hXiR^j;B3or@lxT1&VdHPLto|7 zlv+$3#Q*0biw%=(=<^LgJAx1mZEjDqa4x~<=J1d*WYTopu#yj`KcXell93njf^dHN z2+oGaxgWO-iM@tvJP#h4hm?0*`7oDW19YXG;BfZS;66pezuQUA6I@@|8^43IWl2jH zoPe6G3jpd#aTexotKc9HblhtW4ZoA0CG2=67N^01jMVs2Zbzk=%Nsum@PGg~1(Uih z(c9jQ;Q@_DiIDhJrtP%q!&!^6?gqPWU8$6eyYBp-yVUK))qOl-d?hs1QwM6eP-$VB zD%m_*AWc}K6ca`GO*UDI-n%fD+_q|EX1bIz72vHnEL?p{;~NlD40oXnVv2u-wv#*& zv*wVxtHZBGM?yxn;e4LB@5HI}TI9Dj5R zq5E{PFegS9=yrhn<*QHecD4mvs9Mpr#0fb4=)jY7d8@EkBADPgO*E;l1}i*=MiB1* z42SQ5G15lQJIj3RtjvjL%`C>Os(UrVbaU3q1bl+0DC?_@1_S`pZ0cWo8Cdabd>+#c7ozm@CegfD;YkULyS__$ne}H`0ueK_ z=g3PFjrhK=F%jri7R6T1iBA&Le%ziV9nUHW)seO#5UmFWtlQ@I09YeATJ?l}BA0pm zVeWt~UmZ7fiL7WLhGIJ^3~DWTnQ||QW>xktY9KO$yztJz6_Jy}q{2}!Tb#>W`rAke z^#8H-l~GZCU)wT-q!JICOGt+_l1kTm z1`K}x=Ur=-Yd*-__c>>u9oOFb+AZD!&y%1`D04uEB3hu1eYzj3F(vRkF+>^P{zwSR zO|P#u^Ei(qE4^|5a4_drq~C{d41CR)Ck)zI25yu9(SW;EFf&>Zw18?Bth?tTEWwi= zQt#b_K7@Tt9=xa^;wPj3LEA#mm`Fwx!*XZQfR6JN;nnN?!P}8imMJDhY7J5dZczo`uYSor3W zLp*3J^+1nOa&}40nrQ^ZX_|kE)4=pzS&%tjWZ$ghDeypHCvbj%w7V10DEW3b!qJ{8 zFnMsnvklW{IyS35t>?1~#k0#=zb#6E>`2D^Gn>q=UzN7GvPGmQVP0~RFFjJPmeE1ytzr6rJitGnOboyC~5?C(d9NQC!Y+U z2TEDcf~RvmD0A%yuySVR9~_ZfjJo6nJ#A1&0~R}Qmo{hlhUT1QGhh0jn%QQ34t7$? z{w4%&Nx58y$RDKfNeTzjuf=Ji4NZq_E(yNAWR>|Hnyf!Bn3x1X{0X)gPnRs*En z4;8Uc{%lG;IMuBH7tYK+H6m7kn?;{Ebm9AJqQJR?0zMAmoR7A1@@je^aEB&|N9wNG z@@F3t>`NbrD-(g1q`R;jHZI~oG`SXKT8p-I1Yz5z+A&mqw*pU zF$Gm3@|@9jn>r>+7DLhMyF;k{m}(oy5F35#_?<8>Q4Pi^m7R(A9F& zHySx^@pbQ;9B~}yd1tu`QQratOZvBxMX7J2q-J%c{dIigm_Ps+Wy)7sz%}wRwR~N- zjbJY#t_)z}BKXFfk~k<$5o-SJZ**0-7Bc5)mA&$M@PSL`2+8u_*+!)!E;Hw8M`YCz zp;zS)gM9l8ijBt@Ez>iao{)3Fnm4uRupBU4+`mIP|``o4FH2!j8--;K_tpP zB6yhVQ?;Qk;*KF=aG#ZK*LWJ&QBPVP>aV6Gf+!{*J=ds6b0SE`UjpGC+KCv@y}(9D zk+`20ZOFgv`h^qo>RrjUUEq#G!FilKNj1ou&Kl$aQ~^w3pnBTSGR4~a3G0VtnWp1t zg0aE$4g&jU)CLDAM>FWO7OLFr_f%=kCnjdF=?-iKx!|X0TkNXPmmi(1w8*%84Q{Do$lay8 zyW4;4h8fcn3(;`D`nFbx<1>$XDpTG~%BAU2lsQ>Y@E$lLG-x_O>k~V7*PP`^mL=Sy zN5vM+futkbwpzzJ_}Y7T0B2G?ZI> za&nxQNm=aX>{w-$mDv~hnT$9cw3U8>W@jgYUk=pKa-&}8v?4C4F@q8<_~x>VE|Fh>8n~NTybbpp-TDy&VH|&9&tiOK<&0hLoEvc>cs_?S$E>-B&bYxbGfn%( z(0I7hDevusqNEC<&tY0|w?7q`JJ@gB*y&}Hha#9L>VMD>g}ClI%QB2k1BrZ;@mw+!DJ_rog-4kLBaxnE z+vx^ooyDL;-&UDl9R#L?`(^2G99U|DdE7u1nHp42Ah!5GM{G;ZDYF+X?WSt% zGJD_1Zgg7ZIo-5QzlmVBvw70zKI$bP5^g=cmK9tHU@3ZW*yQR8P!^I11l!t<{QiQ1Sp*eDDS46!Ab$O(!W-)iok@!%&#y8~_mUs>o%Zr+axv%*5ox2_# zJkBvamKx_wq)30`Of1F(`DYa+ba=0 zHnakdzS4_Zlw?vOgjkxx^_9a`l>d+TVs4*8z6f$$E2D1O>t1aeru}n%vLF>?!4=ZH$a4!TzA1 zSTc+_A82jDDQBFt9**Mi*L&3$$fq>|EGyid?S7v1=>E1Jd1T0Q$yf`u^UQK`1(i&B zab-=CDD~8}!>Z^ZZgW3~-syga;MW@DuO}>2NMyzR1Bfx8>IIG`DN!4`8IqZ$rdt|K)acoN0gaGLZFctq2}yK(1yI*1Ec-i$kAK~z@Yz-2RlAQN^6lNi03{uVAW7QG$}^;Up=$V1%Kcv5@94H? zd$?%l9p=VXA7vH27SeV1RhBq0%yohT8I^AZhWGKs%kO>#Y52zjmFeX%Q*2p{67M$8 z#`v?-2C@4<>!0c;Yrx?PCfyl1w7vEeLyalSc_p!hS{LEqA%=M}ngd0GbZg+D(ZS6a z0y|1i=Wvo}cvqx_7zv0iUe|T?PKRyQDN)WI7kVO5M$jB7o}WXt7>i=?w@cXwca7G!iy4d$jOOoctEs|C7b#(yA{MqpMHrgI^~D# z1Cn~@^9)>Y#ye>EaxvCWZ8|a!?!VBhtUwjnLh`*`7SDPSTB$NM#q(cb2~rn`QlL?{I!kAda-hN#o-@P4`#PSrLTCnh4quVbowNUGkOWO&gv=UWT$bN`@vZ z;v?PHX-cN*O`G+|A%W>fRL&=nUee7nD0!cNXh`9HE9I}SWV=Q44qfVLh=Y# zl)4ohXRWXrx4Ea`9Vo!0WBg`yfz}&Kc#U><%h!Rt)8uEmQ3m_P6r1cjYmKu0;K;k9 zlOt)BE<0bOskUx1XBzHmxy@mY6T41};eYa*l>8}CZxGwtDvKw-47fuf)Z}uXJ$7oc z9=4k>wdrXJyP1<9oJIFd8-72QCqb%9F5f%a4F0Brv@k!GdU_XnyHuaQR?(*^1(zW~ zM)ZyUeWLyIv#uDmvu}bL_YFL0P)R?(5gw!L(c}hfY4qekQ5yLiOb&6SRPn|5 z^Nv+NHCu>botDa#OR3|W(4Z6yoJN)O-)FrX!9^z~*R@h}+QWor8z4%=84)xr0m z1OsDb4n|wWnJMoGK6->g+sQP!uYT*HV2Y=L=Px_U*LiP__#o0Ml_9PQ<)AWN-ut1C zsSzjs=-OinRwV{b$3zlEmZ1*Pv5f?sjUU zuk3q}d63R}Bb0&n&#BuW2LOp(m(@s6xM*fqLE5%44u3WSMSkTqR<&a6m2eAEgs^5^2;aQPt~m+(X0_2 zIe`IS{2B-6jJ(t@HgFPjLSG*4ISVF52VsXh{jz(>LKiX!RJbS7Uebu}FbrX;$dG@?7r;Z98Sg?xw8FKE_K9y{^hEaD#2N#nkp#G|8jL`7DwP6{P#RykY% zl{2M!phZbtSz?6y^oFw?n2tOiQ(qG0&0Jhqt==MQG8H`sySGNGd_NJP0&VqGF+|c; zL96(E1YEC^(;*O9WR}LvqnOQ^J&)|Qj@MEgJHg_%sfcx#EqL3%^X$coI9fh_vQnE#;!(lp z5}3=R&Sv)^Kc{jL^X+m$uQW!2E<;()X0}dT<_iXQBFEzke`!bv6zxAE&oj5n-+BT)1fvCS62awi@>MJ$c1&19BF|a6XK@`OW+M1fd&Mv)S@L>D#du!#2LG z3TxWn?%tWwpp6u;N#T-0(y?o;}~&iW*ga0YWft zZy;}pQ;xcU?3rHATx;T98QU8LvPK-=lUKCU{Bum2Xgkkuif@MsCds`|nf?kgIo%!j zD>WnX_}~o9e~>U+V`yl4H4CH6=aJ#&6siWbS5>+Y{8NS3n(R@NqnW7V!fZhSTXbpv3hqN=inE8z zQC(0Ek5f&SP)dE}3R?vmMwdG(?7BR;ptQ7z%j67+lwaxmxV)H#Vd8w1TM;Qvc!sC0 zbLxjC>z&1@*B074HUnqFcX2Bvi_xBJk`Yf&zgu=F|2~A~_90C$Ni;C1A$5~^g}rPx zdA2xcrr+gwiWMGIypW@p)vXU2QZB9ZHKorBQgvy8GOFlC<&SpWe+mViL91T(s>Lk% z4z*V9t#_1QP4j0X&B65(E;LLo%&U{?pLL;>lP2$q4~p>@AjVV081;Cp%JT8ih-|Gp z^EKgiqJ(`p3;ygif-bhpfS$rLkhrTyYmDhGR;fIcbx|?QT&E^b>rH~a?wEP}T^Zs$;RA6_~wj+OB zIeGH_UC!m^Jd5?S$^Ocv)1+r?oa9#Rbeu-2m3hD)NkNLv=WRD4yZLJ(DSpQ#8D3Vi zvbiqpj$0hDNoFDJ=fS&muakJ5UV`RJW7tR?=8!zxq2@{qvU^m^FK7}fNG&lU-^i3Z zxzk8N{6^OXpEx&P)uv@Nw}|6NS6apFMM4DD_r>FTE~$BXZ+cow@bUSxPQprBB`P1_ zi)HZ&A>$qjEhJp~-Nr@^(R>1|GE>|uERNV~#ieF-g}nwAE`!f{iI{o1C^b$3Uczq; z$b4*xp=1KC4oHCO1)0&L(xEFRT$b1JY(V^i_P4WT%%gqbxRg7(BD6BwnNP zS~NumeV;ohQV+#E5A2?H3JtpZj6^>-k6#9Gk0 zTR&)vIcK)3-4<7LJBXqmx5f>tpH>sZ8YYetBJs5$(I}C29lt}AfzbsY$;#ZkXB9<* z1s(0{v9EO&V?8|EzTOt!fQN_6E$0wN+x~t0-Re(UB@gl3h$AJNEzl0a#(y;9uEth| z8wj(Wgx7#$a<+(Lsf+U|$xEvcq*nSXtK^kJ!FURWvgHtcpj(Mf-yTl2?~5h3rc)OP zXC2IfvLvAl9B6R+m9ivk*aoZ^=6_nN@MxIk|6&O@j|cXOBX zk@#y5(TW$^Ad5D*Sum+I*bLOC^>r9O?Qq#xCN zxp1wm$)WMC6B}^ZJeyJ> zP!s1RLtm2wg^Q;?_jDNmUu_5FQO2AsyFb2=d+CS)Htl_NR}t+ROR;L1AlE1>3i3^IzQy24mvwfOeGt9l5WBo0^6iB{Gkp zTuLi;3a>|pJGYj2pmS>C=liLWm}^1L2qTY9)RLI#zGZ=k7xgZFz5&RmFa#$9t`=dH z`vCUY)J%uuw)omOfj><^^4ZeF&dJ}~!bi2)T;}dN$ZVF%x^413`V@*tM!@vLG%YXu z3$lc>ROaJNYSH|HsIY5Lvhp*G(YfkxMJJ;|Q`#dY%#by??Z*9(=4oRj2RIC$|G;wF z&}46!-(gj%c()04>`e`OzQpZ2%8GeOFY)nnvpWad!+1M}RLqn)YOfDWe_3*ZZ3ZZ9 z%pAWrS3r*v&LS70#sOjPO18ZApRm^jSm+@>tBj;l0BF=~)TU4KB9OcSeTGQEF)pI~ z0hB{h7LFT(`yYDj=CcPVr7H7*Qy2jlW_+=S}kevdBGS39ORWY!gXlt9YG zSGK5_`IU(JlUE$6W?K%~OB|cak`Pz;lq7bWoK`Uo9vciP5xS(dhuk#@|1MOM{Y#iIB~Sow)11`podi zWpU_yk0$1ewh0p;^iYeR6>j)p$xt?yBAT5flOMeLd8tM)#GPqe9O=NtXA_G-nXp`w z@H^g}{W|2@e5Mfuq&#b~^jVsWCf(N0-<1#8A3OGeA|X+YN!diZxrA`?3Wf+7Ga1@TkV5gk0sd*Zku2(s4e}^={^e1~AtGpAZcX%K_dq8w zHEkjK*y*?&^#VMW!zmtEd`m-tOCyo?>5c8G| zX~~yFsv;COju2zr`5_vi`5>tOALr$+FNH7g@(EF;BbJP8+{RuuT%5 z)A3BE;w9T$|WHrUeq^&JwI4bGW-w3`=2I_nt*Wii&8)(=}Ltdam64)Ch0?l!g<;S)&@W} zJm!9l%M+x3Vq`^c#D`+~9N1$$Kk;_X#80T9q4H)g!jNcs=+E-+nD_6ED4EmaMk@rq#={nA+9r6r4SjnkaK^y8C(4 zHcw&{EgwF1f$v;SK9M|ZVT_DqBnc@eqY2Ngmwa-+g+zBz5#-2LYE{C^YUReo?k5A` zbtQPyJzJ&n{g{k;BD;O|qCW{$Kpw}dll+P&g&htjY`}03)RaW346BbG35lU#JaO|s z|MmI-N-fy{4j=c-(7v9?pnqmg(M*im^+Sef0;1{dWnQ3-7I9Jt>W@Zl&=M=$TW0a< z4&sMB2>N1&sjtad7k1_%I_)9Kfzn_1GuNVcwk(UZ#YbARX@6|yhq1vVJ$wAwq$sBw z+F|Nso$v<>o7?O>epm}bU=}M^;?Vccv0bJv8;2J0CDofD2G?6UOwS40&jRmWs~dBD z`QCWBOHJ`xOGjI4kY^pMosQW++}eT5^}9z7`|EFe82AzR7vq>(q(&lX4Lg-GT zYv!)-gbUje`FpEh-s%B%ttC475?Oh%my;|mLkp5JOMU{Fu%G9Ln+1o6i^R^lz_uhV8TT zDa0e;*jOw+uo`b91#}DS3EVX&sb%XH8q8ugmhoIiMw8pQM34A_(fk zxrEs}ufEb$URxM&O4$2zJot@wUx0i-fRG?kxaDRes+CfA=chLwmyL9NL3OnjVgaMd zwe_&ki@X(ys9h)~*EEcKykdxxN!Xj1kDaiYn|R?3J!)ufbbrwoz#NJK{EIk2wf$ux z(DR%{*hXlT?v869SmA@ptE~dY^DcjS*XY5_ugRWD1OSN3SO2{LGl+`6?MSM9#boD@ z3gsQEFV&>%#JCm~`H7zLfNlcdIC@8 z|Je$5_*O`bRX%IO%fb@vuRojajx{@bbzQ4Dd>(o?Yl~Z3XfGvTL~?8)=T!WMMOOV7 zoPwe;AmvJEd-+>lRH1|qVb;^qhCL5P66DG57`N#RrZW#Rpb8Duo>TM#f+Kii_ygwV zJzg6vsz`z7EYNVR1IUBH^I2-W!o%AV zsd2`rNwOo%bV&`O!kZK)@y=oN2QLRRzUII9%@puwWqR0e!Xt?j%xbMBP z?%&y+VR+j;au94&-YQ(K10m12`HYuCy`5n7Yi9T7AvrLMyzP>l4oH4V6uecJ+GVop zJ8C-e`-iHvzWL1o&BUyhSUoH$`L)Jjbsev*$@Ui3dSy8XnV^KTyeK4e7d5zl`rIk| zl#!Aq&I>9mmsCyU^gAYE7vl|OpYE4PvaGHkigjZ#2hsx54SgN>64S1RHWK1hu7$|cb!JaDKY;*g{ z9xNKn{8KBH-F&{`&Le>O2-v0(N+n8%+FUj2fTf0Z#nr@GIbnS9S_7;8)4zxIgxn8+ zZjPK!$jK2#bd;>WoFC@eb=|Kz)n>!g8dUi%(#~M_!S>Ncf}m zeK!F@NM8EX74*&J?+o308MG$AI(9Yfdtz4(QW^T5qg zH1@4H3gP25(m(F(BlVd$B8ZhzUBgiBn|^nklf#L>^YdK7#HAv2$@>H!q>M=;)T9Z9!t09JniLh;_9k;GTd~{z~FPj=M zTdJSwCH>8x(s4dlgrIrx&$*v4LgP|<@=4Pw`QzK9Bz-TvC`43{3k>@2C zr^MNA&omyJN0%vxB%yywZ}Wk7n&&qj$6ei*Soppqk?iKLquxRj74a--tsNJQ;20#y zV&v8Lscmro6H?N7gem;?Ke`5lfjF=Wx|uCWw#_p>r$Lvm zfw49TYL8gD^X|l$Eq*`0Ns^w%JV>B*my1Ws+h0VQVRaU`rVodyHuEqcz^-V7&42O9 zfY($0{-o@}@7C$vtm`CC$e*x48$WG(TL6xehqb;fta%6G`ERxC`&Hg$`~Iks4gdu& zk-0s;lk%4l2`HM7sE3LIp86Q!&7)Mp1Tz`Y(ACqLwpiKj*cXebIVPl2+B>DddF0wZ zMG?$;&jI`7u_?rP_-5(bC$G9{lBVrse$(iDpK#{L>%6~v^T9dxvB4`;Fl)>v{E&oD z-nYMHetCXfODRc*CP~;*hf(oB9ME&;<{HUm`LOA7>)JS|Z%JNTWCo9gm<^CMOpR*8f?*v>MdQ9j+B85ir`5Ptfj$?Zd_hr*J|=o~$rhTbG? z23|7XYcRV|eP-5fXv6Bm*4WT~ARU0ps5AdCv4GAI86Xx#y`e`VDoAmJf&TU1@~YZy5LvZo<0i`{2JmOZcgm*GfQo|xC|>dUe#h@ z{M)-^=alJJm08nw+IP1_ek8eU#yDt*VlJFqL60xRGG!F$AowRJU+#_y36y%e#A<9d z#aMh=)X)f{J5uU)GHQNhj}WDj1k2(GeKZXQCn2ZBo$4&Z39v6e($p!PSs&(xySWnu z7@+U-nwx(rGxLQ`vA>n4My9t0x%*;@YD~?#l=9l7b>cH=qCHB15(kT9HBK>$Hyzdzr|ArU(s0|44UZPAb*^;mse5UMuws79uRTst5?C#8+vscB93aL1GLp=%$B>>@ z3NfgLlSG}QpBRc6!b=ygeA2N~*npQG`gvbw!3E9FB0kjm*&s95#wpF_ldiU^+n&IO z>6DcDQ#$XC`k5U_(57_P~r#CLUovo5seKB*xvdYcAp*YQ)IIdA1N1vaT`$RFj;Of%A_s=*8 zwak+TKVk@74`ZI)cS-fAX<|XeM=s|rcLw8C7xyqyZ@~Uz`>pSRys1dOw5kLY=4r%di^BG77HSFsh&R^+BPMPwEt-N|F9!v(Du;{ zd5bHfAIOLx6jZY;W3-SDLJt=H5E)&F!=3ja$pXPaeM+vx;?K+vn1+6-qG*ZGm;*j6 zothG6GoBkH?7w!)*-q0pw8yknD?f%+Zjd$&{L_+`qDoB@+9t-e$wDe{ZFNyIbl$10 z*X|wAs=e#1!U)roJHdkgWXV^65CjX#t!nbgW6=V>I)jyoZ@V5V6WU`QOq67Oe6eFg ztbK>e?I$End(+Wm9~m=p2)R8}y4+a)quL`o(Q!V!)$;$@_B#*}XX|3et@$&%?kJu% z^kcv=RdQ{U^-91`4p9V8&7c)Rg5c8O2IhRJ_q;Vlqc_NL4_on>-$D}-u19>d7usD8 z9`Ysj=l}4o-)N^2mAV9zLd<6s`d<|KZn7l|fKDWEr zM!sto$47l}g19QYcMZQ)T8Em3rL8)__)t7&OLA%Nb~N%U&S#Ss3_X8^|4Ds_z&&T{ z_eqzMgc0TY-W7@yIscw{u*8t#e6l;_L(jjv1sjIbQQ7>kS-L?LN_(e8=L?)TZ1&v? ze+}c@rEWHT)Y6k{E=R?NGqg6}HZua7)DYfJnb&;$_+}qj*wt&mvH|6CYf0Zy>sBEl6^oHsNxM1eWo^~4vpA$)G=Ne_t) z@7711iR1Memd)KD@djBFzy)VOqBY=O`jD`xJK(sh=+S^KbEnGEUvme)!UAfjQb$5V z2g_4+pX=VF#VdQ*n|uys9?T50ZZiRPDr&(`p8xMYjlp^H*4Y$S4K=Xa(M5;!XBxiQ zeobTHlMI41ziWuHf8hkzjOI8-2|>=RyJQJH|Klg43Z}@T8Cm4qayYK~;kCkvO0At$ zJ#St8Pqw50y`6-t2PzU(=q!w|5?fwW&I@);t~daqu59- z!;eO%FIjGElSEY5H|}plF-MO4SiN%2F%kk%@{W`s%z};SM5ZRn|JtxRv1WIEaR{Gx zbnXoX~GRwoR9Luh_QO5`1yKbDUMFD;olP0G$4nLu{BklFI2x z%Auh>bcjPq?9$T*++>rTcGKQ*68UN z&L({dsG*S~093=rMDW2xe>UVveIj_`MxJ##>O-7wJ4ZMdbhmo`A-L2lz)YAgc3D>H zX^`saKP(ll+!SEt&&F=35;f2*U6{}M`tO{;f%OSMh6zkYD0D>`iX0G>(TCT0^)?Q% zaHoTh^lQOb8C15_ku*w)zttV!4N@H7K_98bJN%N=d4SSTbpeyu zJ1~x|YUxoVm!tW#Ff8@ZIU4^Dov5amy9AQ98!5iz@s>99b&D~3_a)^U@>AIjw~^-+ zR$Vb=r}zZG&X{B&XZb5!4R4IFfZkPa(zIJ=gE*1PHbAr83fR{3h27oTx4cgc8U&UM zR=oRcGm{5DP}c}T#7c04Invz zkD0+l1=&ENo8&@TseQnoEf;RRQDbrzHZ1Fp>my#PenS%-zdASK9QA;0oduKRk|FQU zkGvKnr;lauA}GLmvtEA;%VfTV;0op@-qX%1wT~PW|Fat~rh6dRdnaA)qd^M!6+txS z(Edt?^MwKio%pk)u#x?Fj2TdyNb&QNI{-L%lMA%vVW;4m2ZLDuZphp;NQ7W_yu2tr$Z0BY{YP4gxp;fM)){QT#t^z z^w?ljE1iK!gwYJiL>%TPOy0u7*L0p%8_R?04spcA>AOjhD5)2;lhl*%IIbU6T`@ZX zZ8-MV*5=~vDEydmR2z>wXsA5%6EwO4j4dZ?ZZab#z2=)j07*%0K$(7GeZ_wWqP zpdcKHv(l9iG-RijI!-ZuUC|O9mR*%U5D%iYYIlr5kxejjEl;0jyz`K0t#7cdn0aKK zh`mZX7pWa&{VAxPqT5LQkH*GBZ5CI%DHuc^Ly4eF`P&f2xeJwDRX}u4!DaKfW>bmk zMKd!;i!Tw*WIZjc)q5l^&ph>WA<_j6zq)vAx2o?Qo!mF-9Y2aC#gVHT(}?Vk!VKha z7$hn!-K#G`QC1TUaOzHoZ3*w?HOp80r@;h}c!4{(fF_gaCvXq#;h{Kkc)IEQL!sx# ztLye?XZN){KovUnLlf0K1A=y1pBQ2IoSDD+FU1A*kDsqZO`rE72a)tCpW_bZ8U~!% z^l{Jd741w8$)^Ic#jvtAMHwns-y#bg{PH4})-yI1P%f|3mYrY)Nh8{44EoU4X3=<9cvj*^uJ$m+`1;geU2hf_(jm6*B)M z6Z9sqA{3bNf6^Tctaf;%Sp}vm6mL`~HP+Nx_3{{?p3@*cfArBFqIWQ?LUm}Fl+$$8 zU`oJorEqEA%6kxFBp+K+wz8)A{ro1hI2%n|?9qe9^22z7Ernya0eqOx=kh`AX5wL5 zzC2;N$Z^Kct3ULFJg8o;Wq>a)m*KurOPw_3_#<0Ji!ZuRKDS{;4J>Lf_|*P#@ag5j zNWcXMSH>SOQD-v;p+5N}vAXGI^CRQa#(_XMk$w_dE$=y*eS^!~5UBSdCfJQp1|5H| zg9e6~{}1DH2@;q*5IzB@H6+w;YJW4ojd}MO>g|zb5FZWxa9#J^w^_#E@Jj!5g+vlA z%CH^^aMDX%8KMLFNTm(@euCM_wMi#wV&aumw|DVfvl-dd8Q$$v&F_f%ABw-$nlOy+ zj#V+raz3nu8+uH&maP0Ft}o6j6H|>v?%v!V{_BZcLwcor&U7FYRLj$#JN%&77!AU2 z6>!~kSg>U_XtoZu@4a-0&aVl zT6qyvm?TL7J{{pR)NTM%vwD1XC9?zf%Zt%iU~83{x^2*CB6^KPt2bfHgX;E5;^EA+ zynl$Q8yZ_cnY^7 zG?Xq1HrZX{tC|2C#t5H{rHn7BBwG%Lmpff@<+g6!LZ8}uMtAVbm_46)5TYdVpO>_T z$0OWMt{jz2_X?+5WOFbeloX#=iRsk_uy*`3_xiuS`6pW`)<~c__)M8rltUtpdvoR; z@NnRGRMfi!_$J#fH>x4L|JQSSndCrX~R&~glTt7+Y)sFLfy<4qDdV0NGrB$j;WC()cGJ$fBs&+c14h2vO9oyCe))mz!5i$4 zds9WpAu>pNUVqbk6JL?J2?(=rdYmMwY=YoAo^Hc?)1xgt9fPdtz_r|A@}!N;ZOj6 zv90y2Z7)atM{_P)Lu~H{Amxg$80L|As%$B$j495=fmGMheq4$A7uzG{7DUxD^dP(=*G2nt9bhz7RvpK)V-!L0JdB!~cAx!-wRCeMb;YHh<-1@iS7j(Zo zagW;ljn4Bv`r+dc@96%UDtxblpwlz)%G<$Y;5!Z6vsPLNJrbaVsk28JAQjJ-JV`H@ z3VwGqJ(n>xB8#5zC)Y)czvFk2>l%0~_#fkkmiPAN51$%eQDtbfkjjd7nQ7M#*KX}r zuuhdEYCD zg^Av%_4S~;$5z5G!ZxYnmyIjgPd|3tY@$l(y4niuHd zUlxKexhh=92=_#!{dbJ-i{@JHw>qnm##|6w%2pwI?Lw2Ep91QsgYCi4znY0V;Tpqy z-5D=5dT+K)Nj=M}5Y8fAF!9KsYy3>&8o*0EKK_8@iT(Gn^-t&$>tNRW&W@zy}6ekUYG9YUJ z-Ln1coOaXls%~5ts8?xVN5xlWY#_*y?~rnEkP8o~mHXcaPXOs(vB*0dP?uX05)@ZM z-w-3WL!mEv?D_6yJV*zj47`1uam-RKm$0g*QfSQjStq)J^!z{ZTc@l$n(T#l`rbc7 zw3F9q=HQ}GU}xsTe~x<wvy2tv=3W{K2#^b8j&?aFA)^GB5-05Gi3jMh07WW;0M<6(4qXLhmdGp{p0 zUom4iN+!BLkFmS*)nE)B3_Oy}{11xL4!UR}NpXM^F@dy9%i;BI2`ds;+$3vYg@`{J zGImTuo+%88Z-j^_4))TVWQNy@|}mRhHYIe&_kE;BD@dd@JPxTZS^W#1EYeY z6QkfHw`c_T=_U40Z{fO%zrNIImG!c#tOw#GjwA8r`;XUc%Km0eDJ<+yHzk6qp8Z0;oyi^=qxo%wLR#vB`SxMvNiw z)AveW3%-9VQ#4NJox_bmu78_HM~tAt=(4!d&#j$>ZK_+fIPSe`=>O65b_hqP9jSVt z4fnqxvzPH*A02oehksrH14Q#FaIH;HnX5*aV}|;zYppW|GcoZ~EEqTY_1}5yiH0l)oLUXP2 zsly$;%_g_(&-g4EXT!%w+?5LVBR<~vZ4tpn!ccGu0b@W+2(AYt-;H*}rVhp&X~=Qr z{L8ymF1L_W=_)3G4Ksj)z-s9>WH`%gknt&Qli$AoF!4->yl(61Y5GO7uq3OO@eUnL zq7Z*JJ>loCA?&}6*h*2RViTZ(_+ybGFI2(&FUP!2vP<0*(coFnfV_xl6BH%cd>8tyX^*7=o3g~Oz#eEG>NvZelHu*yZnPjNJYPaV6%1LivE0N#OAt7m&3nB?6O2{*L3hyZ{2& z;P{anvI4+`(8Iao5i+pe8xmi3gBD2_Vi07on-S%9zAqabORLpF<83I_N&e=ug?xyb zcfC^oFx^ehw9|pZ-$6Uv`I14(6Qdojh$wOhRVS^*){;Wb9V47M>iYWLVBhqtsP`gQ zord?J3{PSAZ+QkLnM)32WdCr=yAW0c%Z zN(rB5SihGZe8nGm2G6}SWNLcehFM~_|B66gj!+85Y1^OsSU9`&S|tGgSA=@VkCC)| zCV}Cb{MjOa7^PGBABz8(A3-J3?eq|^U8LfA{;pYyVKqN~)&qRrAvugfSH-_)4VN}p z5nOU#v8SB@0_qFzvo|R7SiFJO_%aZ&F~OKc1O3C&l8x}3_lwF@g?z>2`$3X_{E?K0 z09x{P1LO9vBBgr9$Mv^7K@Ew-f$)E#1CUw(XQVtFD_{2{(@vfVK?8ge!g>r~xDd za-r^{#Rc5zr}y4)@m^d)C5l^bgj2fM0Y%gvCGiLs4YJI|h1Yqh`FV)Y~=VERu|+)*FE^Doj3dGTPy2iR|RBhaa% z=DxNWBs6tRM9Bulak;*Gem{Ej<{dS2b)^Z}oUqo(SlvE^D;G`xV&TUX-?Prjuyp(9 z%ed$K>rH7r#ocY{!SJdC2gsoDzyA!VZQ;)AmrMZ?AUExlGpn?hiFQNv;f1li&8`oc z+jmaVZyX+rVFbvMuJ7q=hubNZ9HA<)2PIQu6 zm+j4lT$ZCLG%9BP!+F5%u7`(5!70`;AP!ywxBFrwQ%6~NhID1?Wk|-w@h}3OYJ;Pn zg~^c|yHnn^Pb~enBE~Kp_O)cr-G9K*SG2;HD;LJPn*055AxHT2E{?2DBK5%Cv96cm zPe{xD3ms8nCxFK{gspmjtq6i!?hCkECw-7wnfsY}+hT|LCxI7WzLceWd!8ki`4P)9%+kyT`DG`Cvd>-YA#5faGf!vhdNe=X zj$nO_Qb8eiM9xooU!2xnbl3$h)THOvjHp``9I86ybJWRaK#G=h1I@ciGP>MO&$Vr} zdT0gQuOUE?P_1#xPdjvHdk|TPIDRf9jTN zL%ykk*+9fyz(=4ed61SgK<&|_C}!ycfPyODY#nfUT-3rw_TkRMoLsWT4*~DIs-_C7 ztx;4KiSGXSm3E50&Q%%0#WurE(vfe^*xRgoxT$u%B?PnXZ%@mjz~2d*9Q1nz`^x%kL)U#NzK6l1Mm5-j2iiTQwx9o2y_%$)VQq=+}D!U(v=weCn z^qF_qhs-p~9=xi0l~$jZAauDJ;^P&K4ls2C^FH9H*yP`UuaJA?uoV06Ev{|KR%s?!moyADc|7Z8H z@7N$TWXVqp{-hO{VTAFXrnf$pq^+?&4B2jJ_pGBEkf9FbGsc@>qG;KmVx-pC#L0p6H;&wdxggVbJ|S9_QvBHp zMKUy(i(EwiTvWW@QY-flbMB0tRh>eku?gdQ=<5E?>6GGlcKU z|6}XB9N&hwL4)onw<-w(Ml@c{s=6 z`5blM^?RP@KYw_=&gc96T;qMculIF*?>v&eo%5*LCZB}i#yiZT@tr!giuDneNgW%I zOzc_+zMj4UnP_E|6v{^QYZmG~5wq_ne$)zJ1a9!D^H#- z+0k!jJp{cTFBM*-W^pi0RC2t}810{56qxbBi*)0^`)0kp1Om%^x;lGTbJTLILD3u@{=>?W+M-69P=c_MxL8I#*U92xZj7kHhITXc@yq-X?QRlVKM zAMg~q18TIFkfgma9-Uy>Fe*<%u;v3>50QCOTDrd@Jk zywMOf#LIcs-t&;CFY&aAZ?2JH)_{EXQ__?je=Z~q@4ueQdRqp(P}9$`QTKeM;do=! zKt6l2KiEQJnwZ|V#6eTie6QTPh$&4yQY3FXT_qGI^6J;Sp(FGYt8FUYriJ)Vj?*6N z_ose#y8JD_Xl3IkO~;OZ`-?57|J=Ui44I6eZO5$`0>2R=cVI9Tu21REJc(4T)M2m zW;VU6?^FN79__Lz52Ot=LeAIl)_HQZ&nbYfqmOi$35i5WRTfdJMb3tWa20h@T}Q>I zQ-SGr40do!uEVV>V3=|}NRDZ6#=L#C6;|lJFLP z-Z$9-S7|k8@S}}UP-j0k@2x7j7hdHu-ur2__zh8sBl)j$-9}|(6Q^!Wi)^3znh&S2RG}so}WPA zN9o7BN&1jnj(K6Qsj9)K}>84Z`7J6>bdDUHL)yOPwa_U{37UL zYvY)O^lPqP*0*!Cn<{xS$I)t7!mmmGRM`AzN5tk-aZhXz!-R7WJ z*kw1ya%#q=jl}UxjW^nPI9}?wM3%TcYOcY7nvh76RH_zwB%Tw%@@{eR#yZ?A$JsFJ z(yQ-G*!%Q<@*J5O2P>U=VmkME)~~ny)T-<}t&5S8CoapxNm-!C91dg2BCUe5TvoiKYE1T%gY&<*``Y3nOIQd#=mtS3s0sw|=Cxx1>gu zb}Hi5?rUH+wbI=2qNFJXF$co;58YJs4doWyT(hqmE>XDju`?*|Sd?C6lsux8lTCX*pPIwj@`>z ztF4n23WixkwtoS(uVKDMYEYd}c8~$7{1SUm{p4~W{+5hdHUy7AL*6zV?@J#JI@P5;#HZamXEdPdt z2Ge(N7#;-PRX@J`3}zmEFn(!%t9ze4CgN;5q`v{mVg4t19D(F9Q`@TX(6`Q)bPI$u z$vrl@p(hV|0;o%3*GA|(h4i#g7Wefb4J|ImdBM`UQ!m4q&Q2a`cVbp9>xKGdbkW{A zSDv3phLC#BvvTN8+0s*EpOmR(EXphXk8j-uMgOk zK@{%afXbRb{GB6MZ%g4%QWC9k&$o{H%+FO0b#=t6t2!8M)u-N82Y$5oMdE7nhQ>u>qoK^ZXvMs|P9`h&WPsg3uzb!XQUX)mR_Ft3zlwoGL zDHfk;kze0)hO$~Z_xj{y3xQ)Hpr$VSi}PwTOk8;RWV{7!3U;wVgCHT9)u%t^E}a)% z$(WN(<|NuK{%9fRtg+|jM*gnVN0WxR+(7L74O0zF9NoLWFdQ{qjjvJvRM+@>0>4w_ zAailvES=wIE66R(32eB%4HwyayC00$xp@#Nc(89`#g9_J)L}lH&wh>=EYF=m*n7=2 zYY@M9pc4qcPm!q1Mjl(L;*OLY= zYH0xySmN@Ug#BEJ0Ze0Cd{5Dzt;gjUtvc9VSZm}^fvt)$mgEi=SZ4YIsad6yJpia) zdaVB*xSu|$3N-stgqYVydE%&8yYpe5(Cn_F>3xW2RaPoao)j)Cm;SJrQN zyr5Tv{RZWKMl|>5L)7#(=7xBm?)r<>O3T!5Z=&^c5&buwha*plZ^iw(e*|A0JiRhWcde&W=m##>|ykzcoInh>?9uH0il#wx75|zq0$$ zZTI8GtQL!tt6|nhRXJQ59GkuGStuJ|3Ci&0r7g)HLEYcnK{;~Ka`#n;A&+R{V{MB$ zM-*qG6xXi*cQMrug*~dwivRk;iJ854BKV`~4v5|!cyAC~gP0%lmx12x>k3%d{S7(ox`pQ!x|WZ@k8;aLD|-?6{TM5tYqYsFzD`=;v+n;a!1<@|R) zhxnzo4a?_%RRl_1HUICO%zAZ#et;5Sj7tC91mmj4~4#xcyqN zHpn8hXW^BS`i}6`;fj@bu{n z#iI$}iQ${gor#O_t>ZHO5Wj#(H-q~-L>C|9((qv7Q^rqhwiwpr1WxR*e_f*3wO?7j z;8X6*oNHp3b#`FKf62p`4vQg6? zKv}Zo0YJL`cf+H@fA-CINC!&+RQqjSE&5Xc2x!yGmwMNy63mH140^fR%B7AZt^Yzp zx5Yq^Pc6|jm-Ce-{v89p^1kh>HyV>~O;MmGRF)8L z!VcOrZ zL0jzfw@=&in*z{n(ReonaL^^4m&+IE9{6bhW23gU;2F@ulo=wdOrZZC027h~Y;R#T zmi{8%_CQ&61CmH~Ma!`G#yIt8S^KOc9rn>KStm@f_M>&Nd)FY$%B)vB8SYo<*Q@AO zGc^$07|m-a^cAK2Kr;#R2#J1^Iz8gEl6Y0;L0H8{CubHvhx3-OyWD?cmPU|x1og1SLcmKwZJCQuBbICR-d?;o{W7dsW(nyrWhNmTZ}J9l z!s$S>B?A@x8CepgmS@M!D8a5o<*%~N`y{~dS>E(a7qK8Ufr&xgasO0o9X@C*_YI-< zhMr25+M0>Ue*aA=Cy2#?Ezq=qM2_4U>-gZ-tPMry?u?z@Wl(Yw{HYlTiSFM7r+O7{ zB8NZKf04r2+UuzG^pEn2;Hb6W5ry&sU52vexp`nvGAlHZf?VQ|`LNo$?^x3^Bk*;! zux5fqJAF0OKeP9&;ES29jaP8jqpnDNV_(n!na1BB7kiQJRb82ESb*pJjz6X$U^qD2 zY-A*&?JyLnI{n2-(qjIiu&Da%%Ht#pz$D8^m`%Kfo28eKqnJKz3zh zU1-eJ&$}s$E$Hy?hhNq9VTJq#+B-C`@PUyHNvkvP2?;+cDaSir+ZKGfS-Q7fGa&so zRva=PuNzJFKB4A3?cA?pz;9(7`Gdncj-W#5uwl6Ps*-Uq4!#t9t7WgN0 z@1|;$pSHS?Hb!RuSG^Rw=)|VW)?>O7lR$)KkvLzr8Vuu7a#cE`;GJ>;Z9*Mn>g$Ka z*UAw==K?*=4AlDBc;^R2Lh8O!eD;8}K6A5<3UcV(v-B83>wr{v$CqLKZ9)#X4gk9(8?>w%_a!-j`xvS&*2+J+8n97Y(lF>oo_srK4f z@*e0APJsExHU=Nc)(d%T@&IN~BX4o*XwUj2t7rQDme=*)Rcl>rkBp6W9jPIar>u8q8NDgfNN!Mf{pMYVJ*(GHII)POl6wdv< zPK`e?>C?oUJr$uRp+%Nzf(X4w|J+q;VxdR2$HRC~Io8Gfg)_{anGNsf%`szN z2I+=c3;L^2=#{n&@x|EH0Z(@G3tpm8;Y{-&fSm^jS7qcA+c@@-dL*-ob7(i4aU` zHImt7ck3nyV^juHtJRsF(b2*6U(rn#YgB`eDdCQ6K>flbav60&K+Iz|JT7E}VJ6|K z*biMx3_a0_3rf)t7lLpf za!3Q>(yf&;1pwx+x3C`@!0VfR3=0vGWa>zkG(6OuxQbfAw$OAm3R<;$cZefbst-07 zKP@i`c-xv;Q7(t8;%amV+i;wwh1gPIgNo~3Lgx1qugL4sHsnHqX zY^v7d2?wfNKIWSy5E`WXJMtYabX$5>uM zVPH2g1b+CoqhYY)Mgs%kPVwlp*Pm+N6rVXYMxXNGbCi-10B3UADuy8=D*Cby=%sO8 z)}LgLjaS%rTZspUWlrrhcA1+)v`3$(@$HOqI>j3fxNQ194s+$ploCUS(k_ z=$Bf_{^8^n!+i|$QOZ3#3!0aSS>qu(Oj0<^*2vidi-8q3yI)WTFr?K(-FoWl_zyC@=t!F)?F&alx;UA5caF0fe@*V-}oB^B!2`WbVN`L(vlI1!6O3vG>u z!+!59ppJEX$HnQO%fhWFeM#)2TT&b=n78W2I63d?%SOQr-W~sf6x9a7Qx7>z=YF34 zfhcC{SHKNbg+RskP z`v8hhkgr^)t06}? zjUV!~zpC*tE`T_;L@LhwK^#T+NEdALnG76K4fM4hrSoJLwk9hKJ$VwFykucGP6K7~ ze1>aQ`a!W2O<^E_l1>PLtmf=r#?G6D#kcj(XZ+xQOsYBenT5z|J?w54t)eUR+MYk= zYa#EMbzCI4Y@v@jeh}Qw^ZnGF*mdgHM=iBlGzHpDwxz<(f<#UvOI&?%{63Q>+9u7I@WH@rz&HI{7bM$(vKQ5sfX7MZ_<{vb9oVCzHPvARXLGGF0hqbK zj0TA5+&|Mr*Y?7{E2BW`{p<=wVb_~XQmOqf-!{4syJQC4UZ=c4_c3EN2h-Wq zRfi~f(_a2PA zVH#jc0~2;q>@hawdB?AB2lo91ZAv2bx#W&*af42=T zxfmQAMw+PPTlerx+6SjpG0;Y~v@{?CJKOO51if@)jp6b1^!|m-D<(?$A8~0WQxhi3t}e9Gxs-P1t?_-q-x^&armO@v?S;> z{!}>A`<9mX4C1X{{wXwE?uY?mU}w zbG6YfA^qnh4ayy_-Ts4}0eFuDaY_9{!F^u zjUhI&N>TGckaLLP52C%$seRLnhTY`X3v@1_m;{oc-KWznG`M85TFs?mik%5q6#ejtYqa1KN@j=+i+kvDapK- z;k_aR3}4bA3^-@gO`c2#r52e2F6R=vI;FQRe?R?_GQ)dv8RN zj9QD@&w=tE_Aka%GNr=eN`T|zN2f;fQdmXteqmF=K33Jvcs5lj)9* z_$!EW)k#tpwdmcBdA=J!?MOHFGAYZ~WNm8fAMLL!-@uSRi--+(!d|S{ZA+a#4MosU zhq7Nf{<(W`x_z5=*DWPBbuyvdzWa!$RiWo)ye3UmRCtSSa%5y&@hiZLZE9yPcaY-b zK$kxo(*Kx`t^F?u>s!YP_@`6ZtDrqcsgN8b-7lC+TWT=u%z$sQdY(gAM|M`bb{*2j zS5qZYUV%Rs+o@`?TNCT8+Hn(hfycU|{br_vi++xd@p08>?bU4WgvZr5U-M$!v!Nf_ z?4l#U7_DRvlng1i{19#q*m6S}yD!#_*Ay#mvM-u_zG862p8N@(EmR_cCr$@mOsl=9*44C`2HirVR$nGSno zQcu*{VH8?a5@DJYtQkH~5H$$8|DsOG)UJVs*O}B{P(LdWsgr!{^-wtzpQumtAl{Uf zGcrZqFHMo%Rz*XZTxhqdMbuEd-^BAk-%4yN{YW11kT68lwExAErq!;esDl(1d&JX!+ai8Zr zdE@Ta)A*HPGD{C4aiUVV`*y+Q z*e>tVYp(6D1JBpuuOyMLyH7Ru`DFpW>ln%-L%_X#kSWC(6$c+h5##%n^h1-H+Lz%+ zLDJ+anUig3mV~wzc|V+$=BxEXol0pn;AKR5@u;C0H`SIKdBKKT4-Ml+HZvlLp0H^B z6}>Nm*6p+U@;VSpvgD*$bGX_t1x_|R-Z8~psLO^S>CtA1E$`$ zPNCQPx5a{-1WY#WD=8T@-6_9nQ@eCUT%=gns&~;-H;gGyLS2*=|4rm|dG^zN@+FFF z$XC@%SlN3XoWh}|xOS(8`tkzuW5j;Lr^r|}v!=WdE+RL85->tOT;fsf3hZD}=;E@%yFTg<=GDf<(Wg?o&}L=O6+&|#+dxo$WAL{o|0eFK0W5^@{I=EP(G#I8^We4 z8SXlomrEtB7muGi@(|Cv(1&7N`l7F^oLW2!ea+4|vp%)6l1|wdI9Z(IeEcb5vuf{H z;=&DdGlaO4_w>l=@A*Yz&oEfQ-GILfeY{r!ncQc_IUtiU_N%7)Nuia-+CM&&Z;3nq zj;m9DB`|>6j#HAw_MwD_0aUoLi?X%5rmE-&0 z@egL=+Mja zsovRLu_C=|8lcyH-FpYoYM{W^QMw>9PRkV~^O*fvaERKLP$cRxyZz9Ra$ND3goOKl z<61>~ zm`8=u=SgFjnevx%MkL)t6&AiJxhhSfi`cf~2U;y@{b1P1a&6zyt1Y3}K;<3V z?iDd^EPH{c#R_6~t`^RBINQ@&9X9ys5Dq%6K|S`%FmJhlAU|JplVcS6SO)2xvXys? zHW079F?zh5S)95x{I-EFQy>b3Zdg=FivKbBn95G95Hy59kRq)B?FSX#+`5Oy1&{7# zsVxou4@AhqYdYH%V>t+k{7H(5o)D?{Ygs`#VLs{6)|@v7egb=R@|unTWk__gKjx7- zU4_+dc+dy|;G_9&zBBlkVePl0QmSxDW0guZkkOf|CmM6EtGoCSE)a!V=Dvri1&Bt% zfy-+PbYQw1R>LF=^YRAo<+(?!jexuG*7Z&?@L;dDoAECMU51w~d=EuP*dj@5j1(Vr zMTm-o(#PMgll;n=HsQ%h{F#R2@k|ZqgBd2#9v$X@h6MNy;*NEiN@n)Yr$YuV^xTiZ zlRg^VVUKg@`oOYaUQPcWJ3vT8Od~QsD{{(1Rv4gb>9a)fZp>%UlH$<5l+OHKd7uzX z>9d?%uil)GpK)+%?G}li3~^d=dFzC7&2stPv98m%$r8?&I(sp!3qmotngkmZTbaMn z^Yfck*h#4{z&%4zbpb*VIC2&FrDkc}q&9({@ZG-3ZjwBQTy(UY(?P$gY)?(zTYF9; zSDWk}_C$Bzf(+|50nRy=P3 zt;fra!}9BM!LlY81-OGFX5{CACUud5LAV)m^M9Z^ojPIclhi7wIXu8PbtcW%keu@9 z>7meb56+>dpRx4m(eN1&m3ON~)+)zuea;i7ZL&X2*=%Uj5K_gs!ec2z`#|MdCf&~P z&~&JeLuZ79GuKF~)o=J1X28m&xTnOs&MfheUKMRvdhHOx_fA;&zRfyB@iWjM-PjZ4 z5265c*0|445W6_3X@It$XHA|fRwTqP>vQj5jR~vMUIlu70M7ZbB1>SKJgu|4-?VT5 zkfR?>=H~PH2t4e;NA8rxO$fLm@7x-t<$|4|_-A(fN$X!Sx7&F{q?6`nmmNEU@l;HU zHY+luqfdzoc_%mX@!fW`<%!lbQlqH=&FOO}_YBamc-LI)n@!dJ z{n$wa`v@r**%~LHLXXNblC8ELJH}?y*~di|mE0oDRJnbv0LxvJrU}SbT*QDWAk23C zG4;U~27|5A(%-`YY%1psV!sgR<+Xt5j5Xyk6fLOr4DjN{BuxMXSrJ5gsVG{e{Sz?e zvh>M9b{TT}^a~l~hu%Db+Mgi(;uaW=jF6k`2XfW{s(-;lItD;0rHqhY#B0<2B#7Lx zz-4_GVMfm`Lqlhx_PcO_#{=&9(U~yd#ph4Fn6NnF@z z_T|H6vp*xg>EavFvC+HPr&R&^DdlMV8Rrq4IH1a-xE4j+7|$%C;7TDH4eEmRo_4Ju z`XtWf9r0R?f_^JUwnRbbu9j0`V60e9+2*Y zaBNm0r{snr~sf5dyiY~SAN>cBEXcBUG` zV!CRkgPT{%LGzU!pX`yQq$fz0vVNr;27mgBzOZcb<;;)OS8`8 zXG4Z~quEri!VF7gD0|1~1oWjmo*ud$6P1cTnmw4n;PxG#EAnuWMowHHW=(9VnRt+G zJ%&lwFL6l<^DCe_UeJ07!+vLj?T?j#wn-(bT+02<;ne)Mry5Zs%zVp5qXrS~ET8IEtvUx4PqT33}=DBLon%{n7^ z_%$G+nY(u9X7_^@L<9f4CBG+lM$})QUzUi3pLB^#1~%dBcaAz_iPFc7ax6W$f4Xu6 zvf60z;#zs@2iX}h6g^hRd!y(ay|g#ab5)+RE<=n_(dU@bLq0RIyk*ZZNA4ts)F)6i zL0__DTThKikGD`nzv{7zIp#^5c!18h5VlI&zFB#oOd0W+-^ei};{5I?pNNB4cuvo@ z)0l}F)xmct6V>soYzc4#g2_O*%Ol%SWBun=J;%JKURu1}5yfop!$?gf$PqLsu4zHk#yAV}c)>DY`kZ2FOC zdDB4x{0XDLr?of8D3zzRcSAJF8mMM)7GZQG2YZEuWb>^Gul8bSZ$3f>^Xlk{lyL5b zV!mA5L;>#Ks%b*St;rFd8i!LgFI4HtM>lQxUp=z$4AC9b;+m&3DO*`Qk3is&EWdSk z{zIeDRM{T#+nEX@_*o4xr(3Wzl<9i^B3$)BM*NXtEzohj&tWn=FE#(yu#1JNZ&JV{2%=3}Aq&c|@GfiZA2VWwosF}eH>G#@Ab>otZ(drjO zmUiy#=W0eR_k1W#lbAigR{_(5m+r(x4!kSQkYXg3EqSS~jb7T@?rBP%(locwX_nrK zHf?JtJ?nlT0eL8pv3%U2<+>5Bl)y}a2#Iy0cz;G~N1M5Pdx`v2=43v?gX>hqxy$Qk z%Xr~Os?^V%C}sYZq*7Z3ftylw{VsMUq!KhvW9;nfXJ;3I&``VTg=!w|Gw_VlCTEIL zEs9kz$i*DZTjZ19wE*)S*8%$RJ>Yw953=(Vt#mwn^xUcyjIh3Rl$FOhG%1n!+xvNr z9-H&DO-E1M@)21Q$`L^EA$*D}>FtP0{uBP?oJpMS>lxkIb3PXg2g^t2@30E2bonqN z%3W{h-3ucOd}+5jcG3RoUK%Ib8rSW4(>$jXirw56qA%ggC8LDHk2i0}dMHMMsYg+u z6ywAiC;rWESps#h`(;qXQGobcG~Dw2@_QiNQim-*)BUH70?*%~Zjc&&%ov>nqWyi# z&L!>eLT{BJ`f`uFG}@{XkoB%y2JPpqD=psCTu$&R=!YAe_)OmA2;JF zMz=q5EB-6AT2W~GtVsI|%+z!hg$zJOVKYHSEf>ttO-Um05T2p!G}YtC;`EE2k@NEM zl8N<>iicNL`5pOKcR2WNy38H~2U%Vc%M=Vlw9eblk$P}l+)t;wo%>N!J>?9I#Ns#~ z@hTv!F%l0tAgvauoZdy|CAey2pG7-g_uaO5Y~8ggDx+NUUGF0=U*dMAb1ngfS`S|JpMeZax`!l{o)zV@qQ&P()4ppQ)=Z; zgl_V$czB*mBo|(JgH#WtS?7r4hvMatTDANST!X^;=VyNl3*?5IL(;FMU#yOt$8HI7 zE1s79UZ3T&sT7q~CS?(+!RRc#VB~dVJK5+(vrzS|e`wioVYGEy(j zi^xKbP5VY^E(lGA5l)0P`S!0kSW!CKf+@1Ey9xc;$vKm>i3KROQ^{a>tmA1J7#_22 zSYn@ll`p`4fRPxO{@YXNtneN(VGzvrl?nVcx8gFuJerRe#v9o#) zGG`e#0#x#&Nv|P>!F%CBGQurzrAW{br4?ZQezzf=kJ!reh%&GA80YW4{9I|pW%u-Q zHwiI#x-N%q&V_KId$l;Vn)zt~zfV9OZHu#3PNivjjlB(q^I8WX%$5grHC8se{vHw@ z$UEDyZ?MNnmZGB~>!mH56~fRB6SBS%qMA*5sS5W25nh)ms~ooQV&rQLd#T-6D|9jU zrz&*wgcD#}F_&hA{_d23VKu_~n^Yu(M5dr!DtLLc!YCMM{%)8;(!~)$gt0)|xTQo< z_Jv9K2<@5C__9{SA;Vce)Cr9Gp`4G$0^WRLKXs!$^qQp6iJa4mG9p3Hq^$y5C|PaM zGX{3h>}yCb$ZpbGp1xp`(UVMk&oC%f#wX&1%4*#db!5#lkXL+-HG?5??_?Tr_4j_)ED!Xw|pJhs;36gNs{#N`E?VS_LcJjuIAD6R>wf~ zm4n+>Buu%x7w#c-N*3z9F|0jHe4>}wbGb+{sFVY+{w|$v9gFS*mS%quj@8N0Vu+U`58C}>y1z`8;46ZZ@AUHC=JI<)!9;Rpbm~fUk1qmfuU>KtM7GVqrKUv*1Xt2-=@JR81=3o~lvPdHD8;aM|4zv3Gs* zM>uRoj~P!_1Tj+bluvso7rfT{L`*SEVf}dJJnVn(p$tTVviEEt%Mb$3IX|3sKEZ@* zyj&8_RtqLcj_fCkHd+DX%;uFWE#52bru`z2e(^Z^Wosk!&{6SCK9DA33zrk#^tS6g zs?TSd-4D3R+Mn$;#T>2ls=THO^}#6rgBMlnk?5+CSy-L^Alug_M0rxYXsky(ufYXS zYtKIZxnR|WS5=U|7`!~ZW@TQ;bl6=H21a5FAZmo-e~09+*5HWd>$L+H=@{`2KhmC} z`w$4Rf&Oo!`O>>Zp_Uqi8jYm-y~OlV6_bVpE$t=P&ZN*Dd~=ek6&)Ufbo|lJEzXD) zaN%wREBI0>!$vJkqIv-!;mkL7V_y$paA`$!_@dc~&6b;_eiT<;6 zk^bO6<6!Y)!XE)aP(-WPiMc89qhnTIGkU!;l3V(+d^-$AoygmY-mWMVkOTw!v+~i9 zODI>e$uWE5h zV|w0_MDei0@}P~wB)db~lwXP)uXnYbCCfuja;}LwbB$4BKXie4OZvo|Png4_8Dsw4 zgt&pmT*N_sC~W_vs}JvI0>ZfeSP#DgJV8eeO5J!<6seSH_BQ0*#uiM5oVw!0gE9;Ad;gIwlBXIk>0m51Fv)bZgzU!1 zcRp_?r%Nw>CcF;4oP=wQHJVY-u2Q_4l(NV{gT0X0Z4|VPQ>J7>qBSv8&WBT#(GB@e zp`(yxdA;0)?c28Vzt9Ubgz%jRx%M2soPN=m ze=n<-_L*Li$nsyLmC;qu*1D`R35HO!6!6bQvN!%XH{wjrN*gCUr4z1F#G|i1xdM^u z@aVAyWL5giT-28i@1gx42ZJv1jb$A-91*>%bv`AYViJ47F#~<3*1x)O9v0N4?VITz zLRMMtbr#@-AB%K9>EnRdzDd$Dnjr*Py!P6vGrX%GNbQ8pQ$K_HxH_jePtI=PwE-(B z*Cb;}isEU(`Mep%V-xiX^T(wy8rcXg>tM-)wZuN!B??9pNJeD#n)znYadULzufdH( zPQj7&fnHkZ8j9E4UPF(lWYS$E>CY7s63tu(*+jAW=`9il9w5V+>N2cLp9hnr9lhfh zYxQdn8k#9Y`Y^VM{ER}-J2dc-?weeWxj`Pb>6LoBFWHa+S4{|3B#ZLKujDN=6D)&L zSGTRoc!9&^1R^@go!wj7-kA$DHO$iT*xJd;K303*YOK~1TYY+a@H}GsrJcTDPDifw z#4jz$;=V#<4>|Ps7uerhSdT6W`gg1oHoAK6?|d%;8XU96KnBkPNbnXDMp@VMfEm_5 zifc{@vcpkvtF+4u?@04RyM2C+7x&tFuaAUJyP5drSuCQM=>GviAQy@)%KOmll43`( z2!=5hfsr-bBQNdAf@d*}##)F<<5*2@I#F?Po3$n`9!X&yD_;Jv!S&ZWm0rd-$Qbl* zm?opZcSnkZ`@sYz;v$gkmUTz`T;5juGyjQ?veJqmN+l?tWBYHAAdbJf+SI)qjOlFx z>E+=4>SJZUE+uc5oQ2BWSdK9No}-(oAx5Dg$?oYx0X2yJ8u){v{;8sG+)ZCxE--@QIXE?Y{7M$ZQE&*C)QJdxfGTNOy=U_#1^^OAxPo36gO1pQc( z!qWcWCtz6Z`Cr3o;B;4j3ws-hMiBT-|5MT+iF8<@uRy;n)`sR;QeKbgPz^0L}UWrMx~V%$)Q*13h0A4W|1d zUnmc?_`)G)g#G3=WYhT7kqqPAavk(cpXK;?W%U_s`25_{>E;bG8d#qd(VuJ82KE^tc-e=lOop;kqL047)(*2L5uGoc^Xi*-b}+*EyTNAWYQw07|sob{gZy z>vUhfTwB2h;*FPV>2rqaJ^6t@^p0$nYzCGe?BzU|4yB9m0E!}X!nO@mg2DAj;*|UM zp`|BVb}4``JSd!rGY#l(`?@|0WYC??>v2O$T#9A7 zZMDuTnN%zk;;I_0opfq#HB?PJk!l*e`HQtSdQwq6TFk-EKwlyjCRu{z;*!*CJv{Bw z72&?0z2LlFFA$roPCBnszapC{j|PÐT=za;AQ^X{o=X~1HyA@3L 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 =Np#Sh!kFG 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 Y)v^`Vy{`9j5BTrKHHE7H@a+Eo0I#2R6aWAK literal 0 HcmV?d00001 diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/img/device_icons/android.png b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/img/device_icons/android.png new file mode 100755 index 0000000000000000000000000000000000000000..7fee78a646d5c43d1254dbd4c34232fd760deb1d GIT binary patch literal 2948 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 literal 0 HcmV?d00001 diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/img/graph.png b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/img/graph.png new file mode 100755 index 0000000000000000000000000000000000000000..dd819ef4fcd087ae7e802a23fec22bb60d05e42c GIT binary patch literal 5431 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 literal 0 HcmV?d00001 diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/js/device-detail.js b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/js/device-detail.js old mode 100644 new mode 100755 index 5f9c788de..a90864968 --- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/js/device-detail.js +++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.windows.device-view/public/js/device-detail.js @@ -1,64 +1,136 @@ /* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * * WSO2 Inc. licenses this file to you under the Apache License, * Version 2.0 (the "License"); you may not use this file except * in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ +var InitiateViewOption = null; + (function () { var deviceId = $(".device-id"); var deviceIdentifier = deviceId.data("deviceid"); var deviceType = deviceId.data("type"); var payload = [deviceIdentifier]; var operationTable; + var serviceUrl; + if (deviceType == "ios") { serviceUrl = "/ios/operation/deviceinfo"; } else if (deviceType == "android") { //var serviceUrl = "/mdm-android-agent/operation/device-info"; serviceUrl = "/api/device-mgt/android/v1.0/admin/devices/info"; } + if (serviceUrl) { - invokerUtil.post(serviceUrl, payload, - function (message) { - console.log(message); - }, function (message) { - console.log(message); + invokerUtil.post( + serviceUrl, + payload, + // success-callback + function () { + $(".panel-body").show(); + }, + // error-callback + function () { + var defaultInnerHTML = + "