UNPKG

supercluster-googlemaps-adapter

Version:
2 lines 102 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.SuperClusterAdapterLoader=t():e.SuperClusterAdapterLoader=t()}(window,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=3)}([function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{a(n.next(e))}catch(e){i(e)}}function u(e){try{a(n.throw(e))}catch(e){i(e)}}function a(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,u)}a((n=n.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var r,n,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,n=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}},i=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SuperClusterAdapter=void 0;var u=r(4),a=r(2),l=r(1),p=s(r(5)),c=function(){function e(e){var t,r;this.pIdleListener=null,this.pointFeatures=[],this.pNonPointFeatures=[],this.pUseServerSideClusterer=!1,this.pMap=e.map,this.pRadius=e.radius,this.pMaxZoom=e.maxZoom,this.pMinZoom=e.minZoom,this.pStyles=e.styles,this.pImagePath=e.imagePath,this.pImageExtension=e.imageExtension,this.pZoomOnClick=e.zoomOnClick,this.pDataLayerDefault=null!==(r=null===(t=e.map)||void 0===t?void 0:t.data)&&void 0!==r?r:new google.maps.Data,this.pMarkers=[],this.pIndex=new p.default({minZoom:this.pMinZoom,maxZoom:this.pMaxZoom,radius:this.pRadius}),this.pCustomMarkerIcon=e.customMarkerIcon,this.pCustomClusterIcon=e.customClusterIcon,this.pUpdateMarkerOptions=e.updateMarkerOptions,this.pMarkerClick=e.markerClick,this.pFeatureClick=e.featureClick,this.pClusterClick=e.clusterClick,this.pFeatureStyle=e.featureStyle,this.pServerSideFeatureToSuperCluster=e.serverSideFeatureToSuperCluster,this.pOverlapMarkerSpiderfier=e.overlapMarkerSpiderfier,this.pUseServerSideClusterer=e.useServerSideClusterer,this.pGetClustersServerSide=e.getClustersServerSide,this.init()}return Object.defineProperty(e.prototype,"map",{get:function(){return this.pMap},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"radius",{get:function(){return this.pRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"maxZoom",{get:function(){return this.pMaxZoom},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"minZoom",{get:function(){return this.pMinZoom},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"styles",{get:function(){return this.pStyles},set:function(e){this.pStyles=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"imagePath",{get:function(){return this.pImagePath},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"imageExtension",{get:function(){return this.pImageExtension},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"isZoomOnClick",{get:function(){return this.pZoomOnClick},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"numFeatures",{get:function(){return this.features.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"hasFeatures",{get:function(){return this.numFeatures>0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"features",{get:function(){return this.pointFeatures},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"useServerSideClusterer",{get:function(){return this.pUseServerSideClusterer},enumerable:!1,configurable:!0}),e.prototype.setVisible=function(e){this.setVisibleMarkersAndClusters(e),this.setVisibleDataLayerFeatures(e)},e.prototype.setVisibleMarkersAndClusters=function(e){e?(this.addEventListeners(),this.showMarkers()):(this.removeEventListeners(),this.hideMarkers())},e.prototype.setVisibleDataLayerFeatures=function(e){e?this.pDataLayerDefault.setMap(this.pMap):this.pDataLayerDefault.setMap(null)},e.prototype.getFeaturesBounds=function(){var e,t,r,n,o=new google.maps.LatLngBounds;try{for(var s=i(this.pNonPointFeatures),u=s.next();!u.done;u=s.next()){var l=u.value;o.union(a.ClustererHelper.featureBounds(l))}}catch(t){e={error:t}}finally{try{u&&!u.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}try{for(var p=i(this.features),c=p.next();!c.done;c=p.next()){var h=c.value;o.extend({lat:h.geometry.coordinates[1],lng:h.geometry.coordinates[0]})}}catch(e){r={error:e}}finally{try{c&&!c.done&&(n=p.return)&&n.call(p)}finally{if(r)throw r.error}}return o},e.prototype.destroy=function(){this.removeEventListeners(),this.removeFeaturesFromDataLayers(),this.removeMarkers(),this.pStyles=[],this.pNonPointFeatures=[],this.pointFeatures=[]},e.prototype.load=function(e){var t,r,n;(this.pointFeatures.length||this.pNonPointFeatures.length)&&console.error("There are loaded data in supercluster adapter already");var o={type:"FeatureCollection",features:[]};if(e&&"FeatureCollection"===e.type&&e.features&&e.features.length)try{for(var s=i(e.features),u=s.next();!u.done;u=s.next()){var a=u.value;"Feature"===a.type&&a.geometry&&("Point"===a.geometry.type?(a.id&&!(null===(n=a.properties)||void 0===n?void 0:n.id)&&(a.properties?a.properties.id=a.id:a.properties={id:a.id}),this.pointFeatures.push(a)):o.features.push(a))}}catch(e){t={error:e}}finally{try{u&&!u.done&&(r=s.return)&&r.call(s)}finally{if(t)throw t.error}}this.pIndex.load(this.pointFeatures),this.pNonPointFeatures=this.pDataLayerDefault.addGeoJson(o),this.getClusters(),this.addEventListeners()},e.prototype.drawServerSideCalculatedClusters=function(e){var t,r,n=[];if(e&&e.length)try{for(var o=i(e),s=o.next();!s.done;s=o.next()){var u=s.value,a=this.pServerSideFeatureToSuperCluster(u);n.push(a)}}catch(e){t={error:e}}finally{try{s&&!s.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}this.drawClusters(n)},Object.defineProperty(e,"Builder",{get:function(){return u.Builder},enumerable:!1,configurable:!0}),e.prototype.getClusters=function(){var e,t;return n(this,void 0,void 0,(function(){var r,n,i,s;return o(this,(function(o){switch(o.label){case 0:if(!this.map)return[2];if(r=null!==(e=this.map.getBounds())&&void 0!==e?e:new google.maps.LatLngBounds,n=null!==(t=this.map.getZoom())&&void 0!==t?t:0,r.isEmpty()||!n)return[3,6];if(i=[r.getSouthWest().lng(),r.getSouthWest().lat(),r.getNorthEast().lng(),r.getNorthEast().lat()],!this.useServerSideClusterer)return[3,5];s=void 0,o.label=1;case 1:return o.trys.push([1,3,,4]),[4,this.pGetClustersServerSide(i,n)];case 2:return s=o.sent(),[3,4];case 3:return o.sent(),s=[],[3,4];case 4:return this.drawServerSideCalculatedClusters(s),[3,6];case 5:s=this.pIndex.getClusters(i,n),this.drawClusters(s),o.label=6;case 6:return[2]}}))}))},e.prototype.init=function(){this.setupStyles(),this.pDataLayerDefault.addListener("click",this.pFeatureClick),this.pFeatureStyle&&this.pDataLayerDefault.setStyle(this.pFeatureStyle),this.useServerSideClusterer&&(this.getClusters(),this.addEventListeners())},e.prototype.setupStyles=function(){var e=this;this.pStyles.length||l.SIZES.forEach((function(t,r){e.pStyles.push({height:t,url:""+e.pImagePath+(r+1)+"."+e.pImageExtension,width:t})}))},e.prototype.addEventListeners=function(){var e=this;this.map&&(this.pIdleListener||(this.pIdleListener=google.maps.event.addListener(this.map,"idle",(function(){e.getClusters()}))))},e.prototype.removeEventListeners=function(){this.pIdleListener&&this.pIdleListener.remove()},e.prototype.drawClusters=function(e){var t,r,n=this,o=this.getClustersMap(this.pMarkers),s=this.getMarkersMap(this.pMarkers);this.pMarkers.length=0;try{for(var u=i(e),a=u.next();!a.done;a=u.next()){var l=a.value,p=this.findExistingMarkerInstance(l,o,s);if(p){var c=this.pUpdateMarkerOptions(l,p);null!==c&&p.setOptions(c)}else p=this.superclusterFeatureToGmapsMarker(l);this.pMarkers.push(p)}}catch(e){t={error:e}}finally{try{a&&!a.done&&(r=u.return)&&r.call(u)}finally{if(t)throw t.error}}window.setTimeout((function(){var e,t,r,u;try{for(var a=i(o.values()),l=a.next();!l.done;l=a.next()){l.value.setMap(null)}}catch(t){e={error:t}}finally{try{l&&!l.done&&(t=a.return)&&t.call(a)}finally{if(e)throw e.error}}try{for(var p=i(s.values()),c=p.next();!c.done;c=p.next()){var h=c.value;h.setMap(null),n.pOverlapMarkerSpiderfier&&n.pOverlapMarkerSpiderfier.forgetMarker(h)}}catch(e){r={error:e}}finally{try{c&&!c.done&&(u=p.return)&&u.call(p)}finally{if(r)throw r.error}}}),150)},e.prototype.getClustersMap=function(e){var t,r,n=new Map;try{for(var o=i(e),s=o.next();!s.done;s=o.next()){var u=s.value;!0===u.get("cluster")&&n.set(u.get("cluster_id"),u)}}catch(e){t={error:e}}finally{try{s&&!s.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}return n},e.prototype.getMarkersMap=function(e){var t,r,n=new Map;try{for(var o=i(e),s=o.next();!s.done;s=o.next()){var u=s.value;!0!==u.get("cluster")&&u.get("id")&&n.set(u.get("id"),u)}}catch(e){t={error:e}}finally{try{s&&!s.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}return n},e.prototype.findExistingMarkerInstance=function(e,t,r){var n,o,i;return!0===e.properties.cluster?t.has(e.properties.cluster_id)&&(i=t.get(e.properties.cluster_id),t.delete(e.properties.cluster_id)):e.properties.id&&r.has(e.properties.id)&&(i=r.get(e.properties.id),r.delete(e.properties.id),(null===(n=null==i?void 0:i.getPosition())||void 0===n?void 0:n.lat())===e.geometry.coordinates[1]&&(null===(o=null==i?void 0:i.getPosition())||void 0===o?void 0:o.lng())===e.geometry.coordinates[0]||null==i||i.setPosition({lat:e.geometry.coordinates[1],lng:e.geometry.coordinates[0]})),i},e.prototype.clearNonPointFeatures=function(){var e,t,r;try{for(var n=i(this.pNonPointFeatures),o=n.next();!o.done;o=n.next()){var s=o.value;(null===(r=this.pDataLayerDefault)||void 0===r?void 0:r.contains(s))&&this.pDataLayerDefault.remove(s)}}catch(t){e={error:t}}finally{try{o&&!o.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}},e.prototype.superclusterFeatureToGmapsMarker=function(e){var t=this.getMarkerOptions(e),r=new google.maps.Marker(t);return this.assignAdditionalProperties(r,e),this.assignEventsToMarker(r),r},e.prototype.getMarkerOptions=function(e){return!0===e.properties.cluster?this.getMarkerOptionsForCluster(e):this.getMarkerOptionsForPoint(e)},e.prototype.getMarkerOptionsForCluster=function(e){return{position:new google.maps.LatLng(e.geometry.coordinates[1],e.geometry.coordinates[0]),map:this.map,clickable:this.pZoomOnClick,icon:this.getClusterIcon(e),label:this.getClusterLabel(e),title:e.properties.point_count_abbreviated+" positions in the cluster",visible:!0}},e.prototype.getClusterIcon=function(e){var t,r,n,o=this.getClusterIconIndex(e),i=this.pCustomClusterIcon(e,o);if(null===i){var s=this.styles[o],u=null!==(t=null==s?void 0:s.width)&&void 0!==t?t:l.SIZES[0],a=null!==(r=null==s?void 0:s.height)&&void 0!==r?r:l.SIZES[0],p=(null===(n=null==s?void 0:s.anchor)||void 0===n?void 0:n.length)?s.anchor[0]:u/2,c=(null==s?void 0:s.anchor)&&(null==s?void 0:s.anchor.length)>1?s.anchor[1]:a/2;return{scaledSize:new google.maps.Size(u,a),anchor:new google.maps.Point(p,c),url:s.url}}return i},e.prototype.getClusterIconIndex=function(e){for(var t=0,r=e.properties.point_count;0!==r;)r=Math.floor(r/10),t++;return Math.min(t,this.pStyles.length-1)},e.prototype.getClusterLabel=function(e){var t,r,n,o,i=this.getClusterIconIndex(e),s=this.styles[i];return{color:null!==(t=null==s?void 0:s.textColor)&&void 0!==t?t:"black",fontFamily:null!==(r=null==s?void 0:s.fontFamily)&&void 0!==r?r:"Roboto",fontSize:(null!==(n=null==s?void 0:s.textSize)&&void 0!==n?n:14)+"px",fontWeight:null!==(o=null==s?void 0:s.fontWeight)&&void 0!==o?o:"normal",text:""+e.properties.point_count_abbreviated}},e.prototype.getMarkerOptionsForPoint=function(e){var t,r,n=this.pCustomMarkerIcon(e);return r="string"==typeof n?{scaledSize:new google.maps.Size(32,32),url:n}:n,{position:new google.maps.LatLng(e.geometry.coordinates[1],e.geometry.coordinates[0]),map:this.map,clickable:!0,icon:r,title:null!==(t=e.properties.name)&&void 0!==t?t:"",visible:!0}},e.prototype.assignAdditionalProperties=function(e,t){var r,n,o,i,s;!0===t.properties.cluster?(e.set("cluster",!0),e.set("cluster_id",null!==(r=t.properties.cluster_id)&&void 0!==r?r:a.ClustererHelper.getNewId()),e.set("clusterHashCode",null!==(n=t.properties.clusterHashCode)&&void 0!==n?n:"")):(e.set("id",null!==(s=null!==(i=null===(o=t.properties)||void 0===o?void 0:o.id)&&void 0!==i?i:t.id)&&void 0!==s?s:a.ClustererHelper.getNewId()),this.pOverlapMarkerSpiderfier&&this.pOverlapMarkerSpiderfier.trackMarker(e))},e.prototype.assignEventsToMarker=function(e){var t=this;if(e.getClickable()){var r=this.getClickEventName(e);google.maps.event.addListener(e,r,(function(r){if(!0===e.get("cluster")){r.stop();var n=r.latLng;if(!t.useServerSideClusterer&&t.features.length){var o=e.get("cluster_id"),i=t.pIndex.getClusterExpansionZoom(o);t.map.setOptions({center:n,zoom:i})}else if(t.useServerSideClusterer&&t.pClusterClick)t.pClusterClick(e,r,t.map,t);else{var s=a.ClustererHelper.getClusterBounds(t.map,e,t.radius);s.isEmpty()||t.map.fitBounds(s,5)}}else t.pMarkerClick(e,r)}))}},e.prototype.getClickEventName=function(e){var t="click";return!0!==e.get("cluster")&&this.pOverlapMarkerSpiderfier&&(t="spider_click"),t},e.prototype.removeFeaturesFromDataLayers=function(){this.clearNonPointFeatures()},e.prototype.hideMarkers=function(){var e,t;if(this.pMarkers&&this.pMarkers.length)try{for(var r=i(this.pMarkers),n=r.next();!n.done;n=r.next()){n.value.setMap(null)}}catch(t){e={error:t}}finally{try{n&&!n.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}},e.prototype.showMarkers=function(e){var t,r;void 0===e&&(e=void 0);var n=null!=e?e:this.pMarkers;if(n&&n.length)try{for(var o=i(n),s=o.next();!s.done;s=o.next()){s.value.setMap(this.map)}}catch(e){t={error:e}}finally{try{s&&!s.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}},e.prototype.removeMarkers=function(){this.hideMarkers(),this.pMarkers=[]},e}();t.SuperClusterAdapter=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SIZES=t.ICON_URL_DEFAULT=t.MARKER_CLUSTER_IMAGE_EXTENSION=t.MARKER_CLUSTER_IMAGE_PATH_DEFAULT=t.MIN_CLUSTER_SIZE_DEFAULT=t.RADIUS_DEFAULT=t.MAX_ZOOM_DEFAULT=t.MIN_ZOOM_DEFAULT=t.CLASS_NAME_DEFAULT=void 0,t.CLASS_NAME_DEFAULT="cluster",t.MIN_ZOOM_DEFAULT=0,t.MAX_ZOOM_DEFAULT=19,t.RADIUS_DEFAULT=80,t.MIN_CLUSTER_SIZE_DEFAULT=2,t.MARKER_CLUSTER_IMAGE_PATH_DEFAULT="https://maps-tools-242a6.firebaseapp.com/clusterer/images/m",t.MARKER_CLUSTER_IMAGE_EXTENSION=document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image","1.1")?"svg":"png",t.ICON_URL_DEFAULT="http://maps.google.com/mapfiles/kml/paddle/blu-blank.png",t.SIZES=[53,56,66,78,90]},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ClustererHelper=void 0;var n=new Map,o=new Map,i=new WeakMap,s=function(){function e(){}return e.featureCenter=function(t){if(!n.has(t.getId())){var r=t.getGeometry();"Point"===r.getType()?n.set(t.getId(),r.get()):n.set(t.getId(),e.featureBounds(t).getCenter())}var o=n.get(t.getId());return o||e.featureBounds(t).getCenter()},e.featureBounds=function(e){if(!o.has(e.getId())){var t=e.getGeometry(),r=new google.maps.LatLngBounds;t.forEachLatLng((function(e){r.extend(e)})),o.set(e.getId(),r)}var n=o.get(e.getId());return n||new google.maps.LatLngBounds},e.isFeatureInBounds=function(t,r){if(r){var n=t.getGeometry();return"Point"===n.getType()?r.contains(n.get()):r.contains(e.featureCenter(t))}return!1},e.getClusterer=function(e){if(i.has(e))return i.get(e)},e.setClusterer=function(e,t){if(i.has(e)){var r=i.get(e);r&&r.destroy(),i.delete(e)}i.set(e,t)},e.getClusterBounds=function(t,r,n){var o=new google.maps.LatLngBounds;if(t&&r&&n){var i=r.getPosition();if(i){var s=e.fromLatLngToPixel(i,t);if(s){var u=new google.maps.Point(s.x-n,s.y-n),a=new google.maps.Point(s.x+n,s.y+n),l=e.fromPixelToLatLng(u,t),p=e.fromPixelToLatLng(a,t);l&&o.extend(l),p&&o.extend(p)}}}return o},e.getNewId=function(){return++e.newId},e.fromLatLngToPixel=function(e,t){var r,n,o,i,s,u,a=Math.pow(2,t.getZoom()),l=t.getProjection(),p=t.getBounds(),c=null==l?void 0:l.fromLatLngToPoint(new google.maps.LatLng(null!==(r=null==p?void 0:p.getNorthEast().lat())&&void 0!==r?r:0,null!==(n=null==p?void 0:p.getSouthWest().lng())&&void 0!==n?n:0)),h=null==l?void 0:l.fromLatLngToPoint(e);return new google.maps.Point(Math.floor(((null!==(o=null==h?void 0:h.x)&&void 0!==o?o:0)-(null!==(i=null==c?void 0:c.x)&&void 0!==i?i:0))*a),Math.floor(((null!==(s=null==h?void 0:h.y)&&void 0!==s?s:0)-(null!==(u=null==c?void 0:c.y)&&void 0!==u?u:0))*a))},e.fromPixelToLatLng=function(e,t){var r,n,o,i,s=Math.pow(2,t.getZoom()),u=t.getProjection(),a=t.getBounds(),l=null==u?void 0:u.fromLatLngToPoint(new google.maps.LatLng(null!==(r=null==a?void 0:a.getNorthEast().lat())&&void 0!==r?r:0,null!==(n=null==a?void 0:a.getSouthWest().lng())&&void 0!==n?n:0)),p=new google.maps.Point(e.x/s+(null!==(o=null==l?void 0:l.x)&&void 0!==o?o:0),e.y/s+(null!==(i=null==l?void 0:l.y)&&void 0!==i?i:0));return null==u?void 0:u.fromPointToLatLng(p)},e.newId=1,e}();t.ClustererHelper=s},function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&n(t,e,r);return o(t,e),t},s=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{a(n.next(e))}catch(e){i(e)}}function u(e){try{a(n.throw(e))}catch(e){i(e)}}function a(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,u)}a((n=n.apply(e,t||[])).next())}))},u=this&&this.__generator||function(e,t){var r,n,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,n=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}};Object.defineProperty(t,"__esModule",{value:!0}),t.SuperClusterAdapterLoader=void 0;var a=function(){function e(){}return e.getClusterer=function(){return s(this,void 0,void 0,(function(){return u(this,(function(e){switch(e.label){case 0:return google&&google.maps?[4,Promise.resolve().then((function(){return i(r(0))}))]:[3,2];case 1:return[2,e.sent().SuperClusterAdapter];case 2:return console.error("Google Maps JavaScript API v3 is not loaded. Cannot initialize SuperClusterAdapter."),[2,void 0]}}))}))},e}();t.SuperClusterAdapterLoader=a},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{a(n.next(e))}catch(e){i(e)}}function u(e){try{a(n.throw(e))}catch(e){i(e)}}function a(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,u)}a((n=n.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var r,n,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,n=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}};Object.defineProperty(t,"__esModule",{value:!0}),t.Builder=void 0;var i=r(0),s=r(1),u=r(2),a=function(){function e(e){var t=this;this.pRadius=s.RADIUS_DEFAULT,this.pMaxZoom=s.MAX_ZOOM_DEFAULT,this.pMinZoom=s.MIN_ZOOM_DEFAULT,this.pStyles=[],this.pImagePath=s.MARKER_CLUSTER_IMAGE_PATH_DEFAULT,this.pImageExtension=s.MARKER_CLUSTER_IMAGE_EXTENSION,this.pZoomOnClick=!0,this.pOverlapMarkerSpiderfier=null,this.pUseServerSideClusterer=!1,this.pMap=e,this.pCustomMarkerIcon=function(e){return e.properties.iconUrl?e.properties.iconUrl:s.ICON_URL_DEFAULT},this.pCustomClusterIcon=function(e,t){return null},this.pUpdateMarkerOptions=function(e,t){return null},this.pMarkerClick=function(e,t){},this.pFeatureClick=function(e){},this.pClusterClick=void 0,this.pFeatureStyle=function(e){return Object.create(null)},this.pServerSideFeatureToSuperCluster=function(e){return{type:"Feature",geometry:{type:"Point",coordinates:[0,0]},properties:{}}},this.pGetClustersServerSide=function(e,r,i){return n(t,void 0,void 0,(function(){return o(this,(function(e){return[2,[]]}))}))}}return e.prototype.withRadius=function(e){return this.pRadius=e,this},e.prototype.withMaxZoom=function(e){return this.pMaxZoom=e,this},e.prototype.withMinZoom=function(e){return this.pMinZoom=e,this},e.prototype.withStyles=function(e){return this.pStyles=e,this},e.prototype.withImagePath=function(e){return this.pImagePath=e,this},e.prototype.withImageExtension=function(e){return this.pImageExtension=e,this},e.prototype.withZoomOnClick=function(e){return this.pZoomOnClick=e,this},e.prototype.withCustomMarkerIcon=function(e){return this.pCustomMarkerIcon=e,this},e.prototype.withCustomClusterIcon=function(e){return this.pCustomClusterIcon=e,this},e.prototype.withUpdateMarkerOptions=function(e){return this.pUpdateMarkerOptions=e,this},e.prototype.withMarkerClick=function(e){return this.pMarkerClick=e,this},e.prototype.withFeatureClick=function(e){return this.pFeatureClick=e,this},e.prototype.withClusterClick=function(e){return this.pClusterClick=e,this},e.prototype.withFeatureStyle=function(e){return this.pFeatureStyle=e,this},e.prototype.withServerSideFeatureToSuperCluster=function(e){return this.pServerSideFeatureToSuperCluster=e,this},e.prototype.withOverlapMarkerSpiderfier=function(e){return this.pOverlapMarkerSpiderfier=e,this},e.prototype.withGetClustersServerSide=function(e){return this.pUseServerSideClusterer=!0,this.pGetClustersServerSide=e,this},e.prototype.build=function(){var e=new i.SuperClusterAdapter(this);return u.ClustererHelper.setClusterer(this.pMap,e),e},Object.defineProperty(e.prototype,"map",{get:function(){return this.pMap},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"radius",{get:function(){var e;return null!==(e=this.pRadius)&&void 0!==e?e:s.RADIUS_DEFAULT},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"maxZoom",{get:function(){var e;return null!==(e=this.pMaxZoom)&&void 0!==e?e:s.MAX_ZOOM_DEFAULT},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"minZoom",{get:function(){var e;return null!==(e=this.pMinZoom)&&void 0!==e?e:s.MIN_ZOOM_DEFAULT},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"styles",{get:function(){var e;return null!==(e=this.pStyles)&&void 0!==e?e:[]},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"imagePath",{get:function(){var e;return null!==(e=this.pImagePath)&&void 0!==e?e:s.MARKER_CLUSTER_IMAGE_PATH_DEFAULT},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"imageExtension",{get:function(){var e;return null!==(e=this.pImageExtension)&&void 0!==e?e:s.MARKER_CLUSTER_IMAGE_EXTENSION},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"zoomOnClick",{get:function(){var e;return null===(e=this.pZoomOnClick)||void 0===e||e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"customMarkerIcon",{get:function(){return this.pCustomMarkerIcon},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"customClusterIcon",{get:function(){return this.pCustomClusterIcon},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"updateMarkerOptions",{get:function(){return this.pUpdateMarkerOptions},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"markerClick",{get:function(){return this.pMarkerClick},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"featureClick",{get:function(){return this.pFeatureClick},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"clusterClick",{get:function(){return this.pClusterClick},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"featureStyle",{get:function(){return this.pFeatureStyle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"serverSideFeatureToSuperCluster",{get:function(){return this.pServerSideFeatureToSuperCluster},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"overlapMarkerSpiderfier",{get:function(){return this.pOverlapMarkerSpiderfier},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"useServerSideClusterer",{get:function(){return this.pUseServerSideClusterer},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"getClustersServerSide",{get:function(){return this.pGetClustersServerSide},enumerable:!1,configurable:!0}),e}();t.Builder=a},function(e,t,r){"use strict";function n(e,t,r,i,s,u){if(s-i<=r)return;const a=i+s>>1;!function e(t,r,n,i,s,u){for(;s>i;){if(s-i>600){const o=s-i+1,a=n-i+1,l=Math.log(o),p=.5*Math.exp(2*l/3),c=.5*Math.sqrt(l*p*(o-p)/o)*(a-o/2<0?-1:1),h=Math.max(i,Math.floor(n-a*p/o+c)),f=Math.min(s,Math.floor(n+(o-a)*p/o+c));e(t,r,n,h,f,u)}const a=r[2*n+u];let l=i,p=s;for(o(t,r,i,n),r[2*s+u]>a&&o(t,r,i,s);l<p;){for(o(t,r,l,p),l++,p--;r[2*l+u]<a;)l++;for(;r[2*p+u]>a;)p--}r[2*i+u]===a?o(t,r,i,p):(p++,o(t,r,p,s)),p<=n&&(i=p+1),n<=p&&(s=p-1)}}(e,t,a,i,s,u%2),n(e,t,r,i,a-1,u+1),n(e,t,r,a+1,s,u+1)}function o(e,t,r,n){i(e,r,n),i(t,2*r,2*n),i(t,2*r+1,2*n+1)}function i(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function s(e,t,r,n){const o=e-r,i=t-n;return o*o+i*i}r.r(t),r.d(t,"default",(function(){return c}));const u=e=>e[0],a=e=>e[1];class l{constructor(e,t=u,r=a,o=64,i=Float64Array){this.nodeSize=o,this.points=e;const s=e.length<65536?Uint16Array:Uint32Array,l=this.ids=new s(e.length),p=this.coords=new i(2*e.length);for(let n=0;n<e.length;n++)l[n]=n,p[2*n]=t(e[n]),p[2*n+1]=r(e[n]);n(l,p,o,0,l.length-1,0)}range(e,t,r,n){return function(e,t,r,n,o,i,s){const u=[0,e.length-1,0],a=[];let l,p;for(;u.length;){const c=u.pop(),h=u.pop(),f=u.pop();if(h-f<=s){for(let s=f;s<=h;s++)l=t[2*s],p=t[2*s+1],l>=r&&l<=o&&p>=n&&p<=i&&a.push(e[s]);continue}const d=Math.floor((f+h)/2);l=t[2*d],p=t[2*d+1],l>=r&&l<=o&&p>=n&&p<=i&&a.push(e[d]);const g=(c+1)%2;(0===c?r<=l:n<=p)&&(u.push(f),u.push(d-1),u.push(g)),(0===c?o>=l:i>=p)&&(u.push(d+1),u.push(h),u.push(g))}return a}(this.ids,this.coords,e,t,r,n,this.nodeSize)}within(e,t,r){return function(e,t,r,n,o,i){const u=[0,e.length-1,0],a=[],l=o*o;for(;u.length;){const p=u.pop(),c=u.pop(),h=u.pop();if(c-h<=i){for(let o=h;o<=c;o++)s(t[2*o],t[2*o+1],r,n)<=l&&a.push(e[o]);continue}const f=Math.floor((h+c)/2),d=t[2*f],g=t[2*f+1];s(d,g,r,n)<=l&&a.push(e[f]);const y=(p+1)%2;(0===p?r-o<=d:n-o<=g)&&(u.push(h),u.push(f-1),u.push(y)),(0===p?r+o>=d:n+o>=g)&&(u.push(f+1),u.push(c),u.push(y))}return a}(this.ids,this.coords,e,t,r,this.nodeSize)}}const p={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:e=>e};class c{constructor(e){this.options=b(Object.create(p),e),this.trees=new Array(this.options.maxZoom+1)}load(e){const{log:t,minZoom:r,maxZoom:n,nodeSize:o}=this.options;t&&console.time("total time");const i=`prepare ${e.length} points`;t&&console.time(i),this.points=e;let s=[];for(let t=0;t<e.length;t++)e[t].geometry&&s.push(f(e[t],t));this.trees[n+1]=new l(s,M,S,o,Float32Array),t&&console.timeEnd(i);for(let e=n;e>=r;e--){const r=+Date.now();s=this._cluster(s,e),this.trees[e]=new l(s,M,S,o,Float32Array),t&&console.log("z%d: %d clusters in %dms",e,s.length,+Date.now()-r)}return t&&console.timeEnd("total time"),this}getClusters(e,t){let r=((e[0]+180)%360+360)%360-180;const n=Math.max(-90,Math.min(90,e[1]));let o=180===e[2]?180:((e[2]+180)%360+360)%360-180;const i=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)r=-180,o=180;else if(r>o){const e=this.getClusters([r,n,180,i],t),s=this.getClusters([-180,n,o,i],t);return e.concat(s)}const s=this.trees[this._limitZoom(t)],u=s.range(y(r),m(i),y(o),m(n)),a=[];for(const e of u){const t=s.points[e];a.push(t.numPoints?d(t):this.points[t.index])}return a}getChildren(e){const t=this._getOriginId(e),r=this._getOriginZoom(e),n="No cluster with the specified id.",o=this.trees[r];if(!o)throw new Error(n);const i=o.points[t];if(!i)throw new Error(n);const s=this.options.radius/(this.options.extent*Math.pow(2,r-1)),u=o.within(i.x,i.y,s),a=[];for(const t of u){const r=o.points[t];r.parentId===e&&a.push(r.numPoints?d(r):this.points[r.index])}if(0===a.length)throw new Error(n);return a}getLeaves(e,t,r){t=t||10,r=r||0;const n=[];return this._appendLeaves(n,e,t,r,0),n}getTile(e,t,r){const n=this.trees[this._limitZoom(e)],o=Math.pow(2,e),{extent:i,radius:s}=this.options,u=s/i,a=(r-u)/o,l=(r+1+u)/o,p={features:[]};return this._addTileFeatures(n.range((t-u)/o,a,(t+1+u)/o,l),n.points,t,r,o,p),0===t&&this._addTileFeatures(n.range(1-u/o,a,1,l),n.points,o,r,o,p),t===o-1&&this._addTileFeatures(n.range(0,a,u/o,l),n.points,-1,r,o,p),p.features.length?p:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){const r=this.getChildren(e);if(t++,1!==r.length)break;e=r[0].properties.cluster_id}return t}_appendLeaves(e,t,r,n,o){const i=this.getChildren(t);for(const t of i){const i=t.properties;if(i&&i.cluster?o+i.point_count<=n?o+=i.point_count:o=this._appendLeaves(e,i.cluster_id,r,n,o):o<n?o++:e.push(t),e.length===r)break}return o}_addTileFeatures(e,t,r,n,o,i){for(const s of e){const e=t[s],u=e.numPoints,a={type:1,geometry:[[Math.round(this.options.extent*(e.x*o-r)),Math.round(this.options.extent*(e.y*o-n))]],tags:u?g(e):this.points[e.index].properties};let l;u?l=e.id:this.options.generateId?l=e.index:this.points[e.index].id&&(l=this.points[e.index].id),void 0!==l&&(a.id=l),i.features.push(a)}}_limitZoom(e){return Math.max(this.options.minZoom,Math.min(+e,this.options.maxZoom+1))}_cluster(e,t){const r=[],{radius:n,extent:o,reduce:i,minPoints:s}=this.options,u=n/(o*Math.pow(2,t));for(let n=0;n<e.length;n++){const o=e[n];if(o.zoom<=t)continue;o.zoom=t;const a=this.trees[t+1],l=a.within(o.x,o.y,u),p=o.numPoints||1;let c=p;for(const e of l){const r=a.points[e];r.zoom>t&&(c+=r.numPoints||1)}if(c>=s){let e=o.x*p,s=o.y*p,u=i&&p>1?this._map(o,!0):null;const f=(n<<5)+(t+1)+this.points.length;for(const r of l){const n=a.points[r];if(n.zoom<=t)continue;n.zoom=t;const l=n.numPoints||1;e+=n.x*l,s+=n.y*l,n.parentId=f,i&&(u||(u=this._map(o,!0)),i(u,this._map(n)))}o.parentId=f,r.push(h(e/c,s/c,f,c,u))}else if(r.push(o),c>1)for(const e of l){const n=a.points[e];n.zoom<=t||(n.zoom=t,r.push(n))}}return r}_getOriginId(e){return e-this.points.length>>5}_getOriginZoom(e){return(e-this.points.length)%32}_map(e,t){if(e.numPoints)return t?b({},e.properties):e.properties;const r=this.points[e.index].properties,n=this.options.map(r);return t&&n===r?b({},n):n}}function h(e,t,r,n,o){return{x:e,y:t,zoom:1/0,id:r,parentId:-1,numPoints:n,properties:o}}function f(e,t){const[r,n]=e.geometry.coordinates;return{x:y(r),y:m(n),zoom:1/0,index:t,parentId:-1}}function d(e){return{type:"Feature",id:e.id,properties:g(e),geometry:{type:"Point",coordinates:[(t=e.x,360*(t-.5)),v(e.y)]}};var t}function g(e){const t=e.numPoints,r=t>=1e4?Math.round(t/1e3)+"k":t>=1e3?Math.round(t/100)/10+"k":t;return b(b({},e.properties),{cluster:!0,cluster_id:e.id,point_count:t,point_count_abbreviated:r})}function y(e){return e/360+.5}function m(e){const t=Math.sin(e*Math.PI/180),r=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return r<0?0:r>1?1:r}function v(e){const t=(180-360*e)*Math.PI/180;return 360*Math.atan(Math.exp(t))/Math.PI-90}function b(e,t){for(const r in t)e[r]=t[r];return e}function M(e){return e.x}function S(e){return e.y}}]).SuperClusterAdapterLoader})); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9TdXBlckNsdXN0ZXJBZGFwdGVyTG9hZGVyL2luZGV4LmpzIl0sIm5hbWVzIjpbInJvb3QiLCJmYWN0b3J5IiwiZXhwb3J0cyIsIm1vZHVsZSIsImRlZmluZSIsImFtZCIsIndpbmRvdyIsIm1vZHVsZXMiLCJpbnN0YWxsZWRNb2R1bGVzIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiaSIsImwiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJfX2F3YWl0ZXIiLCJ0aGlzIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJfX2dlbmVyYXRvciIsImJvZHkiLCJmIiwieSIsImciLCJfIiwibGFiZWwiLCJzZW50IiwidHJ5cyIsIm9wcyIsInZlcmIiLCJ0aHJvdyIsInJldHVybiIsIml0ZXJhdG9yIiwidiIsIm9wIiwiVHlwZUVycm9yIiwicG9wIiwibGVuZ3RoIiwicHVzaCIsIl9fdmFsdWVzIiwiX19pbXBvcnREZWZhdWx0IiwibW9kIiwiZGVmYXVsdCIsIlN1cGVyQ2x1c3RlckFkYXB0ZXIiLCJidWlsZGVyXzEiLCJoZWxwZXJfMSIsImNvbnN0YW50c18xIiwic3VwZXJjbHVzdGVyXzEiLCJidWlsZCIsIl9hIiwiX2IiLCJwSWRsZUxpc3RlbmVyIiwicG9pbnRGZWF0dXJlcyIsInBOb25Qb2ludEZlYXR1cmVzIiwicFVzZVNlcnZlclNpZGVDbHVzdGVyZXIiLCJwTWFwIiwibWFwIiwicFJhZGl1cyIsInJhZGl1cyIsInBNYXhab29tIiwibWF4Wm9vbSIsInBNaW5ab29tIiwibWluWm9vbSIsInBTdHlsZXMiLCJzdHlsZXMiLCJwSW1hZ2VQYXRoIiwiaW1hZ2VQYXRoIiwicEltYWdlRXh0ZW5zaW9uIiwiaW1hZ2VFeHRlbnNpb24iLCJwWm9vbU9uQ2xpY2siLCJ6b29tT25DbGljayIsInBEYXRhTGF5ZXJEZWZhdWx0IiwiZGF0YSIsImdvb2dsZSIsIm1hcHMiLCJEYXRhIiwicE1hcmtlcnMiLCJwSW5kZXgiLCJwQ3VzdG9tTWFya2VySWNvbiIsImN1c3RvbU1hcmtlckljb24iLCJwQ3VzdG9tQ2x1c3Rlckljb24iLCJjdXN0b21DbHVzdGVySWNvbiIsInBVcGRhdGVNYXJrZXJPcHRpb25zIiwidXBkYXRlTWFya2VyT3B0aW9ucyIsInBNYXJrZXJDbGljayIsIm1hcmtlckNsaWNrIiwicEZlYXR1cmVDbGljayIsImZlYXR1cmVDbGljayIsInBDbHVzdGVyQ2xpY2siLCJjbHVzdGVyQ2xpY2siLCJwRmVhdHVyZVN0eWxlIiwiZmVhdHVyZVN0eWxlIiwicFNlcnZlclNpZGVGZWF0dXJlVG9TdXBlckNsdXN0ZXIiLCJzZXJ2ZXJTaWRlRmVhdHVyZVRvU3VwZXJDbHVzdGVyIiwicE92ZXJsYXBNYXJrZXJTcGlkZXJmaWVyIiwib3ZlcmxhcE1hcmtlclNwaWRlcmZpZXIiLCJ1c2VTZXJ2ZXJTaWRlQ2x1c3RlcmVyIiwicEdldENsdXN0ZXJzU2VydmVyU2lkZSIsImdldENsdXN0ZXJzU2VydmVyU2lkZSIsImluaXQiLCJjb25maWd1cmFibGUiLCJzZXQiLCJmZWF0dXJlcyIsIm51bUZlYXR1cmVzIiwic2V0VmlzaWJsZSIsInNldFZpc2libGVNYXJrZXJzQW5kQ2x1c3RlcnMiLCJzZXRWaXNpYmxlRGF0YUxheWVyRmVhdHVyZXMiLCJhZGRFdmVudExpc3RlbmVycyIsInNob3dNYXJrZXJzIiwicmVtb3ZlRXZlbnRMaXN0ZW5lcnMiLCJoaWRlTWFya2VycyIsInNldE1hcCIsImdldEZlYXR1cmVzQm91bmRzIiwiZV8xIiwiZV8yIiwiZmVhdHVyZXNCb3VuZHMiLCJMYXRMbmdCb3VuZHMiLCJfYyIsIl9kIiwibm9uUG9pbnRGZWF0dXJlIiwidW5pb24iLCJDbHVzdGVyZXJIZWxwZXIiLCJmZWF0dXJlQm91bmRzIiwiZV8xXzEiLCJlcnJvciIsIl9lIiwiX2YiLCJwb2ludEZlYXR1cmUiLCJleHRlbmQiLCJsYXQiLCJnZW9tZXRyeSIsImNvb3JkaW5hdGVzIiwibG5nIiwiZV8yXzEiLCJkZXN0cm95IiwicmVtb3ZlRmVhdHVyZXNGcm9tRGF0YUxheWVycyIsInJlbW92ZU1hcmtlcnMiLCJsb2FkIiwiZ2VvSnNvbiIsImVfMyIsImNvbnNvbGUiLCJvdGhlckZlYXR1cmVzQ29sbGVjdGlvbiIsInR5cGUiLCJmZWF0dXJlIiwiaWQiLCJwcm9wZXJ0aWVzIiwiZV8zXzEiLCJhZGRHZW9Kc29uIiwiZ2V0Q2x1c3RlcnMiLCJkcmF3U2VydmVyU2lkZUNhbGN1bGF0ZWRDbHVzdGVycyIsImVfNCIsInNjZmVhdHVyZXMiLCJmZWF0dXJlc18xIiwiZmVhdHVyZXNfMV8xIiwic2NmZWF0dXJlIiwiZV80XzEiLCJkcmF3Q2x1c3RlcnMiLCJCdWlsZGVyIiwibWFwQm91bmRzIiwiem9vbSIsImJib3giLCJjbHVzdGVycyIsImdldEJvdW5kcyIsImdldFpvb20iLCJpc0VtcHR5IiwiZ2V0U291dGhXZXN0IiwiZ2V0Tm9ydGhFYXN0Iiwic2V0dXBTdHlsZXMiLCJhZGRMaXN0ZW5lciIsInNldFN0eWxlIiwiX3RoaXMiLCJTSVpFUyIsImZvckVhY2giLCJzaXplIiwiaGVpZ2h0IiwidXJsIiwid2lkdGgiLCJldmVudCIsInJlbW92ZSIsImVfNSIsIm1hcENsdXN0ZXJzIiwiZ2V0Q2x1c3RlcnNNYXAiLCJtYXBNYXJrZXJzIiwiZ2V0TWFya2Vyc01hcCIsImNsdXN0ZXJzXzEiLCJjbHVzdGVyc18xXzEiLCJtYXJrZXIiLCJmaW5kRXhpc3RpbmdNYXJrZXJJbnN0YW5jZSIsIm9wdGlvbnMiLCJzZXRPcHRpb25zIiwic3VwZXJjbHVzdGVyRmVhdHVyZVRvR21hcHNNYXJrZXIiLCJlXzVfMSIsInNldFRpbWVvdXQiLCJlXzYiLCJlXzciLCJ2YWx1ZXMiLCJlXzZfMSIsIm9NYXJrZXIiLCJmb3JnZXRNYXJrZXIiLCJlXzdfMSIsImNvbGxlY3Rpb24iLCJlXzgiLCJyZXMiLCJNYXAiLCJjb2xsZWN0aW9uXzEiLCJjb2xsZWN0aW9uXzFfMSIsImVfOF8xIiwiZV85IiwiY29sbGVjdGlvbl8yIiwiY29sbGVjdGlvbl8yXzEiLCJlXzlfMSIsImV4aXN0aW5nQ2x1c3RlcnMiLCJleGlzdGluZ01hcmtlcnMiLCJjbHVzdGVyIiwiaGFzIiwiY2x1c3Rlcl9pZCIsImdldFBvc2l0aW9uIiwic2V0UG9zaXRpb24iLCJjbGVhck5vblBvaW50RmVhdHVyZXMiLCJlXzEwIiwiY29udGFpbnMiLCJlXzEwXzEiLCJnZXRNYXJrZXJPcHRpb25zIiwiTWFya2VyIiwiYXNzaWduQWRkaXRpb25hbFByb3BlcnRpZXMiLCJhc3NpZ25FdmVudHNUb01hcmtlciIsImdldE1hcmtlck9wdGlvbnNGb3JDbHVzdGVyIiwiZ2V0TWFya2VyT3B0aW9uc0ZvclBvaW50IiwicG9zaXRpb24iLCJMYXRMbmciLCJjbGlja2FibGUiLCJpY29uIiwiZ2V0Q2x1c3Rlckljb24iLCJnZXRDbHVzdGVyTGFiZWwiLCJ0aXRsZSIsInBvaW50X2NvdW50X2FiYnJldmlhdGVkIiwidmlzaWJsZSIsImluZGV4IiwiZ2V0Q2x1c3Rlckljb25JbmRleCIsImN1c3RvbUljb24iLCJzdHlsZSIsImFuY2hvclgiLCJhbmNob3IiLCJhbmNob3JZIiwic2NhbGVkU2l6ZSIsIlNpemUiLCJQb2ludCIsImR2IiwicG9pbnRfY291bnQiLCJNYXRoIiwiZmxvb3IiLCJtaW4iLCJjb2xvciIsInRleHRDb2xvciIsImZvbnRGYW1pbHkiLCJmb250U2l6ZSIsInRleHRTaXplIiwiZm9udFdlaWdodCIsInRleHQiLCJtSWNvbiIsImN1c3RvbU1hcmtlck9iamVjdCIsImdldE5ld0lkIiwiY2x1c3Rlckhhc2hDb2RlIiwidHJhY2tNYXJrZXIiLCJnZXRDbGlja2FibGUiLCJldmVudE5hbWUiLCJnZXRDbGlja0V2ZW50TmFtZSIsInN0b3AiLCJldlBvcyIsImxhdExuZyIsImNsdXN0ZXJJZCIsImdldENsdXN0ZXJFeHBhbnNpb25ab29tIiwiY2VudGVyIiwiYm91bmRzIiwiZ2V0Q2x1c3RlckJvdW5kcyIsImZpdEJvdW5kcyIsImVfMTEiLCJlXzExXzEiLCJtYXJrZXJzIiwiZV8xMiIsInVuZGVmaW5lZCIsIm1hcmtlckNvbGxlY3Rpb24iLCJtYXJrZXJDb2xsZWN0aW9uXzEiLCJtYXJrZXJDb2xsZWN0aW9uXzFfMSIsImVfMTJfMSIsIklDT05fVVJMX0RFRkFVTFQiLCJNQVJLRVJfQ0xVU1RFUl9JTUFHRV9FWFRFTlNJT04iLCJNQVJLRVJfQ0xVU1RFUl9JTUFHRV9QQVRIX0RFRkFVTFQiLCJNSU5fQ0xVU1RFUl9TSVpFX0RFRkFVTFQiLCJSQURJVVNfREVGQVVMVCIsIk1BWF9aT09NX0RFRkFVTFQiLCJNSU5fWk9PTV9ERUZBVUxUIiwiQ0xBU1NfTkFNRV9ERUZBVUxUIiwiZG9jdW1lbnQiLCJpbXBsZW1lbnRhdGlvbiIsImhhc0ZlYXR1cmUiLCJoYXNoRmVhdHVyZUNlbnRlcnMiLCJoYXNoRmVhdHVyZXNCb3VuZHMiLCJpbnN0YW5jZXMiLCJXZWFrTWFwIiwiZmVhdHVyZUNlbnRlciIsImdldElkIiwiZ2VvbSIsImdldEdlb21ldHJ5IiwiZ2V0VHlwZSIsImdldENlbnRlciIsImdlb21Cb3VuZHNfMSIsImZvckVhY2hMYXRMbmciLCJpc0ZlYXR1cmVJbkJvdW5kcyIsImdldENsdXN0ZXJlciIsInNldENsdXN0ZXJlciIsImNsdXN0ZXJlciIsInByZXZJbnN0YW5jZSIsInBvaW50IiwiZnJvbUxhdExuZ1RvUGl4ZWwiLCJzd1BvaW50IiwieCIsIm5lUG9pbnQiLCJzdyIsImZyb21QaXhlbFRvTGF0TG5nIiwibmUiLCJuZXdJZCIsInNjYWxlIiwicG93IiwicHJvamVjdGlvbiIsImdldFByb2plY3Rpb24iLCJudyIsImZyb21MYXRMbmdUb1BvaW50IiwicGl4ZWwiLCJmcm9tUG9pbnRUb0xhdExuZyIsIl9fY3JlYXRlQmluZGluZyIsImsiLCJrMiIsIl9fc2V0TW9kdWxlRGVmYXVsdCIsIl9faW1wb3J0U3RhciIsIlN1cGVyQ2x1c3RlckFkYXB0ZXJMb2FkZXIiLCJjbHVzdGVyZXJfMSIsImljb25VcmwiLCJjbHVzdGVyRmVhdHVyZSIsImNsdXN0ZXJJbmRleCIsImNsdXN0ZXJUb1pvb20iLCJ3aXRoUmFkaXVzIiwid2l0aE1heFpvb20iLCJ3aXRoTWluWm9vbSIsIndpdGhTdHlsZXMiLCJ3aXRoSW1hZ2VQYXRoIiwid2l0aEltYWdlRXh0ZW5zaW9uIiwid2l0aFpvb21PbkNsaWNrIiwid2l0aEN1c3RvbU1hcmtlckljb24iLCJ3aXRoQ3VzdG9tQ2x1c3Rlckljb24iLCJ3aXRoVXBkYXRlTWFya2VyT3B0aW9ucyIsIndpdGhNYXJrZXJDbGljayIsIndpdGhGZWF0dXJlQ2xpY2siLCJ3aXRoQ2x1c3RlckNsaWNrIiwid2l0aEZlYXR1cmVTdHlsZSIsIndpdGhTZXJ2ZXJTaWRlRmVhdHVyZVRvU3VwZXJDbHVzdGVyIiwidHJhbnNmb3JtIiwid2l0aE92ZXJsYXBNYXJrZXJTcGlkZXJmaWVyIiwib21zIiwid2l0aEdldENsdXN0ZXJzU2VydmVyU2lkZSIsIl9fd2VicGFja19leHBvcnRzX18iLCJzb3J0S0QiLCJpZHMiLCJjb29yZHMiLCJub2RlU2l6ZSIsImxlZnQiLCJyaWdodCIsImRlcHRoIiwic29ydF9zZWxlY3QiLCJpbmMiLCJ6IiwibG9nIiwiZXhwIiwic2QiLCJzcXJ0IiwibmV3TGVmdCIsIm1heCIsIm5ld1JpZ2h0IiwiaiIsInN3YXBJdGVtIiwic3dhcCIsImFyciIsInRtcCIsInNxRGlzdCIsImF4IiwiYXkiLCJieCIsImJ5IiwiZHgiLCJkeSIsInN1cGVyY2x1c3Rlcl9TdXBlcmNsdXN0ZXIiLCJkZWZhdWx0R2V0WCIsImRlZmF1bHRHZXRZIiwic3JjX0tEQnVzaCIsIltvYmplY3QgT2JqZWN0XSIsInBvaW50cyIsImdldFgiLCJnZXRZIiwiQXJyYXlUeXBlIiwiRmxvYXQ2NEFycmF5IiwiSW5kZXhBcnJheVR5cGUiLCJVaW50MTZBcnJheSIsIlVpbnQzMkFycmF5IiwibWluWCIsIm1pblkiLCJtYXhYIiwibWF4WSIsInN0YWNrIiwiYXhpcyIsIm5leHRBeGlzIiwicmFuZ2UiLCJxeCIsInF5IiwicjIiLCJ3aXRoaW4iLCJkZWZhdWx0T3B0aW9ucyIsIm1pblBvaW50cyIsImV4dGVudCIsImdlbmVyYXRlSWQiLCJyZWR1Y2UiLCJwcm9wcyIsInRyZWVzIiwiQXJyYXkiLCJ0aW1lIiwidGltZXJJZCIsImNyZWF0ZVBvaW50Q2x1c3RlciIsInN1cGVyY2x1c3Rlcl9nZXRYIiwic3VwZXJjbHVzdGVyX2dldFkiLCJGbG9hdDMyQXJyYXkiLCJ0aW1lRW5kIiwibm93IiwiRGF0ZSIsIl9jbHVzdGVyIiwibWluTG5nIiwibWluTGF0IiwibWF4TG5nIiwibWF4TGF0IiwiZWFzdGVybkhlbSIsIndlc3Rlcm5IZW0iLCJjb25jYXQiLCJ0cmVlIiwiX2xpbWl0Wm9vbSIsImxuZ1giLCJsYXRZIiwibnVtUG9pbnRzIiwiZ2V0Q2x1c3RlckpTT04iLCJvcmlnaW5JZCIsIl9nZXRPcmlnaW5JZCIsIm9yaWdpblpvb20iLCJfZ2V0T3JpZ2luWm9vbSIsImVycm9yTXNnIiwiRXJyb3IiLCJvcmlnaW4iLCJjaGlsZHJlbiIsInBhcmVudElkIiwibGltaXQiLCJvZmZzZXQiLCJsZWF2ZXMiLCJfYXBwZW5kTGVhdmVzIiwiejIiLCJ0b3AiLCJib3R0b20iLCJ0aWxlIiwiX2FkZFRpbGVGZWF0dXJlcyIsImV4cGFuc2lvblpvb20iLCJnZXRDaGlsZHJlbiIsInNraXBwZWQiLCJjaGlsZCIsImlzQ2x1c3RlciIsInJvdW5kIiwidGFncyIsImdldENsdXN0ZXJQcm9wZXJ0aWVzIiwibmVpZ2hib3JJZHMiLCJudW1Qb2ludHNPcmlnaW4iLCJuZWlnaGJvcklkIiwiYiIsInd4Iiwid3kiLCJjbHVzdGVyUHJvcGVydGllcyIsIl9tYXAiLCJudW1Qb2ludHMyIiwiY3JlYXRlQ2x1c3RlciIsImNsb25lIiwib3JpZ2luYWwiLCJJbmZpbml0eSIsInlMYXQiLCJjb3VudCIsImFiYnJldiIsInNpbiIsIlBJIiwieTIiLCJhdGFuIiwiZGVzdCIsInNyYyJdLCJtYXBwaW5ncyI6IkNBQUEsU0FBMkNBLEVBQU1DLEdBQzFCLGlCQUFaQyxTQUEwQyxpQkFBWEMsT0FDeENBLE9BQU9ELFFBQVVELElBQ1EsbUJBQVhHLFFBQXlCQSxPQUFPQyxJQUM5Q0QsT0FBTyxHQUFJSCxHQUNlLGlCQUFaQyxRQUNkQSxRQUFtQywwQkFBSUQsSUFFdkNELEVBQWdDLDBCQUFJQyxJQVJ0QyxDQVNHSyxRQUFRLFdBQ1gsT0FBZ0IsU0FBVUMsR0FFaEIsSUFBSUMsRUFBbUIsR0FHdkIsU0FBU0MsRUFBb0JDLEdBRzVCLEdBQUdGLEVBQWlCRSxHQUNuQixPQUFPRixFQUFpQkUsR0FBVVIsUUFHbkMsSUFBSUMsRUFBU0ssRUFBaUJFLEdBQVksQ0FDekNDLEVBQUdELEVBQ0hFLEdBQUcsRUFDSFYsUUFBUyxJQVVWLE9BTkFLLEVBQVFHLEdBQVVHLEtBQUtWLEVBQU9ELFFBQVNDLEVBQVFBLEVBQU9ELFFBQVNPLEdBRy9ETixFQUFPUyxHQUFJLEVBR0pULEVBQU9ELFFBMERmLE9BckRBTyxFQUFvQkssRUFBSVAsRUFHeEJFLEVBQW9CTSxFQUFJUCxFQUd4QkMsRUFBb0JPLEVBQUksU0FBU2QsRUFBU2UsRUFBTUMsR0FDM0NULEVBQW9CVSxFQUFFakIsRUFBU2UsSUFDbENHLE9BQU9DLGVBQWVuQixFQUFTZSxFQUFNLENBQUVLLFlBQVksRUFBTUMsSUFBS0wsS0FLaEVULEVBQW9CZSxFQUFJLFNBQVN0QixHQUNYLG9CQUFYdUIsUUFBMEJBLE9BQU9DLGFBQzFDTixPQUFPQyxlQUFlbkIsRUFBU3VCLE9BQU9DLFlBQWEsQ0FB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