{"id":20407,"date":"2026-05-07T00:23:58","date_gmt":"2026-05-07T00:23:58","guid":{"rendered":"https:\/\/blueguard.ca\/?page_id=20407"},"modified":"2026-07-23T06:49:12","modified_gmt":"2026-07-23T10:49:12","slug":"commercial-dryer-vent-cleaning-in-oshawa","status":"publish","type":"page","link":"https:\/\/blueguard.ca\/fr\/service-areas\/commercial-dryer-vent-cleaning-in-oshawa\/","title":{"rendered":"Commercial dryer vent cleaning in oshawa"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"20407\" class=\"elementor elementor-20407\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-553c7065 elementor-section-height-min-height elementor-section-boxed elementor-section-height-default elementor-section-items-middle\" data-id=\"553c7065\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;slideshow&quot;,&quot;background_slideshow_gallery&quot;:[{&quot;id&quot;:15884,&quot;url&quot;:&quot;https:\\\/\\\/blueguard.ca\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/WhatsApp-Image-2025-11-18-at-20.43.00_fb750ba2.jpg&quot;},{&quot;id&quot;:13317,&quot;url&quot;:&quot;https:\\\/\\\/blueguard.ca\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/WhatsApp-Image-2025-10-01-at-23.35.46_f7a0c424-copy.webp&quot;},{&quot;id&quot;:13378,&quot;url&quot;:&quot;https:\\\/\\\/blueguard.ca\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/WhatsApp-Image-2025-10-02-at-02.59.04_96a93c58-copy.webp&quot;},{&quot;id&quot;:15868,&quot;url&quot;:&quot;https:\\\/\\\/blueguard.ca\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/WhatsApp-Image-2025-11-10-at-19.27.49_e5f964d6.jpg&quot;}],&quot;background_slideshow_slide_duration&quot;:4000,&quot;background_slideshow_loop&quot;:&quot;yes&quot;,&quot;background_slideshow_slide_transition&quot;:&quot;fade&quot;,&quot;background_slideshow_transition_duration&quot;:500}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-bea24e3\" data-id=\"bea24e3\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-45b5ce1e elementor-widget elementor-widget-html\" data-id=\"45b5ce1e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n.com-h*{box-sizing:border-box;margin:0;padding:0}\r\n.com-h{--blue:#0aa8df;--green:#a8cf45;font-family:'Nunito',sans-serif;position:relative;overflow:hidden;}\r\n.com-h-grid-bg{position:absolute;inset:0;background-size:60px 60px;pointer-events:none;z-index:0;}\r\n.com-h-glow{position:absolute;width:600px;height:600px;border-radius:50%;filter:blur(60px);top:-200px;right:-100px;z-index:0;pointer-events:none;}\r\n.com-h-glow2{position:absolute;width:400px;height:400px;border-radius:50%;filter:blur(80px);bottom:-100px;left:-80px;z-index:0;pointer-events:none;}\r\n.com-h-inner{position:relative;z-index:2;max-width:1280px;margin:0 auto;padding:80px 0 70px;}\r\n.com-h-eyebrow{display:inline-flex;align-items:center;gap:10px;background:rgba(10,168,223,.1);border:1px solid rgba(10,168,223,.25);border-radius:4px;padding:6px 14px;margin-bottom:24px;}\r\n.com-h-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--blue);animation:comh-pulse 2s ease-in-out infinite;}\r\n@keyframes comh-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.8)}}\r\n.com-h-eyebrow-text{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--blue);}\r\n.com-h h1{font-family:'Barlow Condensed',sans-serif;font-size:clamp(34px,5.5vw,58px);font-weight:800;line-height:1.05;color:#fff;margin-bottom:20px;}\r\n.com-h-accent{background:linear-gradient(90deg,var(--blue),var(--green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}\r\n.com-h-divider{width:48px;height:3px;background:linear-gradient(90deg,var(--blue),var(--green));border-radius:2px;margin-bottom:24px;}\r\n.com-h p{font-size:clamp(15px,1.5vw,16.5px);line-height:1.82;color:rgba(255,255,255,.75);margin-bottom:16px;max-width:760px;}\r\n.com-h p:last-of-type{margin-bottom:0}\r\n.com-h strong{color:#fff;font-weight:800;}\r\n.com-h-hl{color:var(--green);font-weight:800;}\r\n.com-h-hlb{color:var(--blue);font-weight:800;}\r\n.com-h-types{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px;}\r\n.com-h-type{display:flex;align-items:center;gap:7px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:100px;padding:7px 14px;font-size:12px;font-weight:700;color:rgba(255,255,255,.8);letter-spacing:.3px;}\r\n.com-h-type-dot{width:5px;height:5px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--green));}\r\n@media only screen and (max-width:1024px){.com-h{padding:0 60px;}}\r\n@media only screen and (max-width:768px){.com-h{padding:0 5px;}.com-h-inner{padding:50px 0 40px;}}\r\n@media screen and (max-width:480px){.com-h-eyebrow-text{font-size:9px;}}\r\n<\/style>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\/>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Barlow+Condensed:wght@700;800&family=Nunito:wght@400;600;700;800&display=swap\" rel=\"stylesheet\"\/>\r\n<div class=\"com-h\">\r\n  <div class=\"com-h-grid-bg\"><\/div>\r\n  <div class=\"com-h-glow\"><\/div>\r\n  <div class=\"com-h-glow2\"><\/div>\r\n  <div class=\"com-h-inner\">\r\n    <div class=\"com-h-eyebrow\">\r\n      <span class=\"com-h-eyebrow-dot\"><\/span>\r\n      <span class=\"com-h-eyebrow-text\">Commercial \u00b7 Oshawa \u00b7 Durham Region<\/span>\r\n    <\/div>\r\n    <h1>You Need BlueGuard's Commercial Dryer Vent Cleaning in <span class=\"com-h-accent\">Oshawa<\/span>. Because a Blocked Vent Is a Liability Your Business Cannot Afford<\/h1>\r\n    <div class=\"com-h-divider\"><\/div>\r\n    <p>Every Commercial Dryer in Your Oshawa Facility Produces Lint That Travels Beyond the Trap and Deep Into Your Vent Line Ignored Long Enough, That Buildup Becomes a Fire Code Issue, an Insurance Complication, and a Business Interruption That Our Commercial Dryer Vent Cleaning in Oshawa Prevents Completely<\/p>\r\n    <div class=\"com-h-types\">\r\n      <div class=\"com-h-type\"><span class=\"com-h-type-dot\"><\/span>Apartment Buildings<\/div>\r\n      <div class=\"com-h-type\"><span class=\"com-h-type-dot\"><\/span>Townhouse Communities<\/div>\r\n      <div class=\"com-h-type\"><span class=\"com-h-type-dot\"><\/span>Condominiums<\/div>\r\n      <div class=\"com-h-type\"><span class=\"com-h-type-dot\"><\/span>Shared Laundry Facilities<\/div>\r\n      <div class=\"com-h-type\"><span class=\"com-h-type-dot\"><\/span>More<\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-1644a87\" data-id=\"1644a87\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t<div class=\"elementor-element elementor-element-69831c44 e-flex e-con-boxed e-con e-parent\" data-id=\"69831c44\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-7dd7e55b e-con-full e-flex e-con e-child\" data-id=\"7dd7e55b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a77386c elementor-widget elementor-widget-heading\" data-id=\"a77386c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Get Your Free Commercial Quote<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-66d64633 e-con-full e-flex e-con e-child\" data-id=\"66d64633\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e6ea487 elementor-widget elementor-widget-shortcode\" data-id=\"e6ea487\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><script>\nvar gform;gform||(document.addEventListener(\"gform_main_scripts_loaded\",function(){gform.scriptsLoaded=!0}),document.addEventListener(\"gform\/theme\/scripts_loaded\",function(){gform.themeScriptsLoaded=!0}),window.addEventListener(\"DOMContentLoaded\",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=>\"function\"==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&&!gform.isFormEditor()||(gform.isFormEditor()&&console.warn(\"The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1.\"),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener(\"gform_main_scripts_loaded\",()=>{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener(\"gform\/theme\/scripts_loaded\",()=>{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener(\"DOMContentLoaded\",()=>{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook(\"action\",o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook(\"filter\",o,r,e,t)},doAction:function(o){gform.doHook(\"action\",o,arguments)},applyFilters:function(o){return gform.doHook(\"filter\",o,arguments)},removeAction:function(o,r){gform.removeHook(\"action\",o,r)},removeFilter:function(o,r,e){gform.removeHook(\"filter\",o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&&(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&&(n=r+\"_\"+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&&((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){\"function\"!=typeof(t=o.callable)&&(t=window[t]),\"action\"==r?t.apply(null,e):e[0]=t.apply(null,e)})),\"filter\"==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&&(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&&n!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][r]=e)}});\n<\/script>\n\n                <div class='gf_browser_gecko gform_wrapper gform-theme gform-theme--foundation gform-theme--framework gform-theme--orbital' data-form-theme='orbital' data-form-index='0' id='gform_wrapper_7' style='display:none'><style>#gform_wrapper_7[data-form-index=\"0\"].gform-theme,[data-parent-form=\"7_0\"]{--gf-color-primary: #204ce5;--gf-color-primary-rgb: 32, 76, 229;--gf-color-primary-contrast: #fff;--gf-color-primary-contrast-rgb: 255, 255, 255;--gf-color-primary-darker: #001AB3;--gf-color-primary-lighter: #527EFF;--gf-color-secondary: #fff;--gf-color-secondary-rgb: 255, 255, 255;--gf-color-secondary-contrast: #112337;--gf-color-secondary-contrast-rgb: 17, 35, 55;--gf-color-secondary-darker: #F5F5F5;--gf-color-secondary-lighter: #FFFFFF;--gf-color-out-ctrl-light: rgba(17, 35, 55, 0.1);--gf-color-out-ctrl-light-rgb: 17, 35, 55;--gf-color-out-ctrl-light-darker: rgba(104, 110, 119, 0.35);--gf-color-out-ctrl-light-lighter: #F5F5F5;--gf-color-out-ctrl-dark: #585e6a;--gf-color-out-ctrl-dark-rgb: 88, 94, 106;--gf-color-out-ctrl-dark-darker: #112337;--gf-color-out-ctrl-dark-lighter: rgba(17, 35, 55, 0.65);--gf-color-in-ctrl: #fff;--gf-color-in-ctrl-rgb: 255, 255, 255;--gf-color-in-ctrl-contrast: #112337;--gf-color-in-ctrl-contrast-rgb: 17, 35, 55;--gf-color-in-ctrl-darker: #F5F5F5;--gf-color-in-ctrl-lighter: #FFFFFF;--gf-color-in-ctrl-primary: #204ce5;--gf-color-in-ctrl-primary-rgb: 32, 76, 229;--gf-color-in-ctrl-primary-contrast: #fff;--gf-color-in-ctrl-primary-contrast-rgb: 255, 255, 255;--gf-color-in-ctrl-primary-darker: #001AB3;--gf-color-in-ctrl-primary-lighter: #527EFF;--gf-color-in-ctrl-light: rgba(17, 35, 55, 0.1);--gf-color-in-ctrl-light-rgb: 17, 35, 55;--gf-color-in-ctrl-light-darker: rgba(104, 110, 119, 0.35);--gf-color-in-ctrl-light-lighter: #F5F5F5;--gf-color-in-ctrl-dark: #585e6a;--gf-color-in-ctrl-dark-rgb: 88, 94, 106;--gf-color-in-ctrl-dark-darker: #112337;--gf-color-in-ctrl-dark-lighter: rgba(17, 35, 55, 0.65);--gf-radius: 3px;--gf-font-size-secondary: 14px;--gf-font-size-tertiary: 13px;--gf-icon-ctrl-number: url(\"data:image\/svg+xml,%3Csvg width='8' height='14' viewBox='0 0 8 14' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4 0C4.26522 5.96046e-08 4.51957 0.105357 4.70711 0.292893L7.70711 3.29289C8.09763 3.68342 8.09763 4.31658 7.70711 4.70711C7.31658 5.09763 6.68342 5.09763 6.29289 4.70711L4 2.41421L1.70711 4.70711C1.31658 5.09763 0.683417 5.09763 0.292893 4.70711C-0.0976311 4.31658 -0.097631 3.68342 0.292893 3.29289L3.29289 0.292893C3.48043 0.105357 3.73478 0 4 0ZM0.292893 9.29289C0.683417 8.90237 1.31658 8.90237 1.70711 9.29289L4 11.5858L6.29289 9.29289C6.68342 8.90237 7.31658 8.90237 7.70711 9.29289C8.09763 9.68342 8.09763 10.3166 7.70711 10.7071L4.70711 13.7071C4.31658 14.0976 3.68342 14.0976 3.29289 13.7071L0.292893 10.7071C-0.0976311 10.3166 -0.0976311 9.68342 0.292893 9.29289Z' fill='rgba(17, 35, 55, 0.65)'\/%3E%3C\/svg%3E\");--gf-icon-ctrl-select: url(\"data:image\/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0.292893 0.292893C0.683417 -0.097631 1.31658 -0.097631 1.70711 0.292893L5 3.58579L8.29289 0.292893C8.68342 -0.0976311 9.31658 -0.0976311 9.70711 0.292893C10.0976 0.683417 10.0976 1.31658 9.70711 1.70711L5.70711 5.70711C5.31658 6.09763 4.68342 6.09763 4.29289 5.70711L0.292893 1.70711C-0.0976311 1.31658 -0.0976311 0.683418 0.292893 0.292893Z' fill='rgba(17, 35, 55, 0.65)'\/%3E%3C\/svg%3E\");--gf-icon-ctrl-search: url(\"data:image\/svg+xml,%3Csvg width='640' height='640' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cpath d='M256 128c-70.692 0-128 57.308-128 128 0 70.691 57.308 128 128 128 70.691 0 128-57.309 128-128 0-70.692-57.309-128-128-128zM64 256c0-106.039 85.961-192 192-192s192 85.961 192 192c0 41.466-13.146 79.863-35.498 111.248l154.125 154.125c12.496 12.496 12.496 32.758 0 45.254s-32.758 12.496-45.254 0L367.248 412.502C335.862 434.854 297.467 448 256 448c-106.039 0-192-85.962-192-192z' fill='rgba(17, 35, 55, 0.65)'\/%3E%3C\/svg%3E\");--gf-label-space-y-secondary: var(--gf-label-space-y-md-secondary);--gf-ctrl-border-color: #686e77;--gf-ctrl-size: var(--gf-ctrl-size-md);--gf-ctrl-label-color-primary: #112337;--gf-ctrl-label-color-secondary: #112337;--gf-ctrl-choice-size: var(--gf-ctrl-choice-size-md);--gf-ctrl-checkbox-check-size: var(--gf-ctrl-checkbox-check-size-md);--gf-ctrl-radio-check-size: var(--gf-ctrl-radio-check-size-md);--gf-ctrl-btn-font-size: var(--gf-ctrl-btn-font-size-md);--gf-ctrl-btn-padding-x: var(--gf-ctrl-btn-padding-x-md);--gf-ctrl-btn-size: var(--gf-ctrl-btn-size-md);--gf-ctrl-btn-border-color-secondary: #686e77;--gf-ctrl-file-btn-bg-color-hover: #EBEBEB;--gf-field-img-choice-size: var(--gf-field-img-choice-size-md);--gf-field-img-choice-card-space: var(--gf-field-img-choice-card-space-md);--gf-field-img-choice-check-ind-size: var(--gf-field-img-choice-check-ind-size-md);--gf-field-img-choice-check-ind-icon-size: var(--gf-field-img-choice-check-ind-icon-size-md);--gf-field-pg-steps-number-color: rgba(17, 35, 55, 0.8);}<\/style>\n                        <div class='gform_heading'>\n                            <p class='gform_description'><\/p>\n                        <\/div><form method='post' enctype='multipart\/form-data'  id='gform_7'  action='\/fr\/wp-json\/wp\/v2\/pages\/20407' data-formid='7' novalidate>\n                        <div class='gform-body gform_body'><div id='gform_fields_7' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id=\"field_7_17\" class=\"gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_7_17'>URL<\/label><div class='ginput_container'><input name='input_17' id='input_7_17' type='text' value='' autocomplete='new-password'\/><\/div><div class='gfield_description' id='gfield_description_7_17'>This field is for validation purposes and should be left unchanged.<\/div><\/div><div id=\"field_7_14\" class=\"gfield gfield--type-html gfield--input-type-html gfield--width-full gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><div style=\"background:rgba(122,201,67,0.12);border:1px solid rgba(122,201,67,0.35);border-radius:8px;padding:10px 16px;font-family:'Nunito',sans-serif;font-size:13.5px;font-weight:700;color:#7AC943;display:flex;align-items:center;justify-content:center;gap:8px;\">\n  \u26a1 Average response time: under 2 hours on business days\n<\/div><\/div><fieldset id=\"field_7_1\" class=\"gfield gfield--type-name gfield--input-type-name gfield--width-half gfield_contains_required field_sublabel_hidden_label gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><legend class='gfield_label gform-field-label gfield_label_before_complex' >Full name<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/legend><div class='ginput_complex ginput_container ginput_container--name no_prefix has_first_name no_middle_name no_last_name no_suffix gf_name_has_1 ginput_container_name gform-grid-row' id='input_7_1'>\n                            \n                            <span id='input_7_1_3_container' class='name_first gform-grid-col gform-grid-col--size-auto' >\n                                                    <input type='text' name='input_1.3' id='input_7_1_3' value=''   aria-required='true'   placeholder='Your full name'  \/>\n                                                    <label for='input_7_1_3' class='gform-field-label gform-field-label--type-sub hidden_sub_label screen-reader-text'>First<\/label>\n                                                <\/span>\n                            \n                            \n                            \n                        <\/div><\/fieldset><div id=\"field_7_3\" class=\"gfield gfield--type-text gfield--input-type-text gfield--width-half gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_7_3'>Company Name<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_text'><input name='input_3' id='input_7_3' type='text' value='' class='large'    placeholder='Your company' aria-required=\"true\" aria-invalid=\"false\"   \/><\/div><\/div><div id=\"field_7_4\" class=\"gfield gfield--type-phone gfield--input-type-phone gfield--width-half gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_7_4'>Phone<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_phone'><input name='input_4' id='input_7_4' type='tel' value='' class='large'  placeholder='+1456-456-4567' aria-required=\"true\" aria-invalid=\"false\"   \/><\/div><\/div><div id=\"field_7_5\" class=\"gfield gfield--type-email gfield--input-type-email gfield--width-half gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_7_5'>Email<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_email'>\n                            <input name='input_5' id='input_7_5' type='email' value='' class='large'   placeholder='your@gmail.com' aria-required=\"true\" aria-invalid=\"false\"  \/>\n                        <\/div><\/div><div id=\"field_7_7\" class=\"gfield gfield--type-select gfield--input-type-select gfield--width-half gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_7_7'>Service City<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_select'><select name='input_7' id='input_7_7' class='large gfield_select'    aria-required=\"true\" aria-invalid=\"false\" ><option value='' selected='selected' class='gf_placeholder'>Select city<\/option><option value='Ottawa' >Ottawa<\/option><option value='Kanata' >Kanata<\/option><option value='Nepean' >Nepean<\/option><option value='Barrhaven' >Barrhaven<\/option><option value='Orl\u00e9ans' >Orl\u00e9ans<\/option><option value='Gatineau' >Gatineau<\/option><option value='Oshawa' >Oshawa<\/option><option value='Montr\u00e9al' >Montr\u00e9al<\/option><option value='Other' >Other<\/option><\/select><\/div><\/div><div id=\"field_7_8\" class=\"gfield gfield--type-select gfield--input-type-select gfield--width-half gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_7_8'>Building Type<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_select'><select name='input_8' id='input_7_8' class='large gfield_select'    aria-required=\"true\" aria-invalid=\"false\" ><option value='' selected='selected' class='gf_placeholder'>Select type<\/option><option value='Office Building' >Office Building<\/option><option value='Restaurant \/ Food Service' >Restaurant \/ Food Service<\/option><option value='Retail Store' >Retail Store<\/option><option value='Medical \/ Healthcare Facility' >Medical \/ Healthcare Facility<\/option><option value='Hotel \/ Hospitality' >Hotel \/ Hospitality<\/option><option value='Warehouse \/ Industrial' >Warehouse \/ Industrial<\/option><option value='Multi-Unit Residential' >Multi-Unit Residential<\/option><option value='Other' >Other<\/option><\/select><\/div><\/div><div id=\"field_7_15\" class=\"gfield gfield--type-text gfield--input-type-text gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_7_15'>Please specify your city<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_text'><input name='input_15' id='input_7_15' type='text' value='' class='large'    placeholder='Enter your city' aria-required=\"true\" aria-invalid=\"false\"   \/><\/div><\/div><div id=\"field_7_16\" class=\"gfield gfield--type-text gfield--input-type-text gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_7_16'>Please specify your building type<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_text'><input name='input_16' id='input_7_16' type='text' value='' class='large'    placeholder='Enter your building type' aria-required=\"true\" aria-invalid=\"false\"   \/><\/div><\/div><div id=\"field_7_9\" class=\"gfield gfield--type-textarea gfield--input-type-textarea gfield--width-full field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_7_9'>Additional Notes (Optional)<\/label><div class='ginput_container ginput_container_textarea'><textarea name='input_9' id='input_7_9' class='textarea small'    placeholder='Building size, last cleaning date, any concerns...'  aria-invalid=\"false\"   rows='10' cols='50'><\/textarea><\/div><\/div><\/div><\/div>\n        <div class='gform-footer gform_footer top_label'> <input type='submit' id='gform_submit_button_7' class='gform_button button gform-button--width-full' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' value='Get Your Free Quote'  \/> \n            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_7' value='postback' \/>\n            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_7' id='gform_theme_7' value='orbital' \/>\n            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_7' id='gform_style_settings_7' value='[]' \/>\n            <input type='hidden' class='gform_hidden' name='is_submit_7' value='1' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submit' value='7' \/>\n            \n            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' \/>\n            <input type='hidden' class='gform_hidden' name='state_7' value='WyJ7XCI3XCI6W1wiYjllOWFhNzQ4NWI3NDZhNDc2NGVlNzVhNzc4OTE0NmJcIixcIjJhMDExYjVhNThmZjI4ZmE2ZGVhZmFlMGJiZWI0MWY0XCIsXCJkYTVmN2I5N2Q0ZjBkMmU1ODc1Yzg1ZmU4NzY3ZmRkNFwiLFwiMGNjZTRjMzcwMTc0Yjk4MGVhMmI5MTMyM2FjYTM2YjdcIixcIjVjN2M3YjM4OWFhODJkNDljZGFiM2Y2ODM4N2VkYTY0XCIsXCJlZTAxYWI4Y2ZhZTQ4MjQ1MDJmYWVlNDAwOTVmYTU4NlwiLFwiNTMxMzU4ODJkMDQ5MDFjY2QwOTlhNzcwNWI3MWZiMDlcIixcIjYwNWFlM2VjZmQ5ZjM0ZTBiOGQzNDcxOGI4YjlkNmYyXCIsXCIyYTE2ZjdkNjJmNTY1ZGI1Y2UxZWI5Y2E1MzU5MTg1YlwiXSxcIjhcIjpbXCJjMGNlOTRkY2VmZjliNDQ5OTEzMGFjODY3YWE3ZDRmNlwiLFwiYTg1OGQ0YzAyNmRhMGZjZGM5OTEzZmVkOWMwZWM3MGFcIixcIjY3MGMxOTMxODFkNDYxZDNmMjIwZGExZTkxNDliYWQ1XCIsXCJhY2QyYjQyMDZiYTkyNjI0OGY3ZmM0ZWYyZDg4OGQzY1wiLFwiZDEwODY0ODE1NTNmZjcwMWNjZDNmMWI1YTE3ZWMwYWRcIixcIjc0OGJhMDM5MGY4Y2FhMzM1MjU5ZmMyZDAyYjUwZjgwXCIsXCIzOGVjYjBkYzg5OTA4OWI1Nzc0ODczMTkxYjY0NTBlNFwiLFwiMmExNmY3ZDYyZjU2NWRiNWNlMWViOWNhNTM1OTE4NWJcIl19IiwiYTQ1YjJiMDQyYjA5ODM1NmVmODI0ZmQyMWNlNTdhYmEiXQ==' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_7' id='gform_target_page_number_7' value='0' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_7' id='gform_source_page_number_7' value='1' \/>\n            <input type='hidden' name='gform_field_values' value='' \/>\n            \n        <\/div>\n                        <\/form>\n                        <\/div><script>\ngform.initializeOnLoaded( function() {gformInitSpinner( 7, 'https:\/\/blueguard.ca\/wp-content\/plugins\/gravityforms\/images\/spinner.svg', false );jQuery('#gform_ajax_frame_7').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_7');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_7').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){form_content.find('form').css('opacity', 0);jQuery('#gform_wrapper_7').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_7').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_7').removeClass('gform_validation_error');}setTimeout( function() { \/* delay the scroll by 50 milliseconds to fix a bug in chrome *\/  }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_7').val();gformInitSpinner( 7, 'https:\/\/blueguard.ca\/wp-content\/plugins\/gravityforms\/images\/spinner.svg', false );jQuery(document).trigger('gform_page_loaded', [7, current_page]);window['gf_submitting_7'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_7').replaceWith(confirmation_content);jQuery(document).trigger('gform_confirmation_loaded', [7]);window['gf_submitting_7'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_7').text());}else{jQuery('#gform_7').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger(\"gform_pre_post_render\", [{ formId: \"7\", currentPage: \"current_page\", abort: function() { this.preventDefault(); } }]);        if (event && event.defaultPrevented) {                return;        }        const gformWrapperDiv = document.getElementById( \"gform_wrapper_7\" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( \"span\" );            visibilitySpan.id = \"gform_visibility_test_7\";            gformWrapperDiv.insertAdjacentElement( \"afterend\", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( \"gform_visibility_test_7\" );        let postRenderFired = false;        function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            gform.core.triggerPostRenderEvents( 7, current_page );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );} );\n<\/script>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1eda069a elementor-widget elementor-widget-html\" data-id=\"1eda069a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div style=\"text-align:center;font-family:'Nunito',sans-serif;font-size:13px;font-weight:600;color:rgba(255,255,255,0.45);padding:4px 0;\">\r\n  \ud83d\udd12 No spam. No pressure. 100% free estimate.\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-4b8d1cb1 e-con-full e-flex e-con e-parent\" data-id=\"4b8d1cb1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-36c28a27 elementor-widget elementor-widget-html\" data-id=\"36c28a27\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n.com-p2*{box-sizing:border-box;margin:0;padding:0}\r\n.com-p2{--blue:#0aa8df;--green:#a8cf45;--dark:#0d1117;--text:#2d3748;--muted:#718096;--light:#f0f4f8;font-family:'Nunito',sans-serif;background:var(--light);}\r\n.com-p2-inner{max-width:1280px;margin:0 auto;padding:70px 0;}\r\n.com-p2-top{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-bottom:40px;}\r\n.com-p2-label{display:inline-flex;align-items:center;gap:8px;background:rgba(10,168,223,.08);border:1px solid rgba(10,168,223,.2);border-radius:4px;padding:5px 12px;margin-bottom:16px;}\r\n.com-p2-label-text{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--blue);}\r\n.com-p2 h2{font-family:'Barlow Condensed',sans-serif;font-size:clamp(26px,4vw,42px);font-weight:800;line-height:1.1;color:var(--dark);margin-bottom:14px;}\r\n.com-p2-accent{background:linear-gradient(90deg,var(--blue),var(--green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}\r\n.com-p2-divider{width:50px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--blue),var(--green));margin-bottom:20px;}\r\n.com-p2 p{font-size:15px;line-height:1.8;color:var(--text);}\r\n.com-p2 strong{color:var(--dark);font-weight:800;}\r\n.com-p2-card{background:var(--dark);border-radius:16px;padding:36px 32px;position:relative;overflow:hidden;}\r\n.com-p2-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--blue),var(--green));}\r\n.com-p2-card-title{font-family:'Barlow Condensed',sans-serif;font-size:24px;font-weight:800;color:#fff;margin-bottom:6px;}\r\n.com-p2-card-sub{font-size:13px;color:rgba(255,255,255,.5);margin-bottom:24px;}\r\n.com-p2-btn-primary{display:flex;align-items:center;justify-content:center;gap:9px;background:linear-gradient(135deg,var(--blue),#0891c4);color:#fff !important;font-family:'Nunito',sans-serif;font-size:14px;font-weight:800;border-radius:8px;padding:13px 20px;text-decoration:none;box-shadow:0 4px 20px rgba(10,168,223,.3);transition:transform .2s,box-shadow .2s;margin-bottom:10px;}\r\n.com-p2-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(10,168,223,.4);}\r\n.com-p2-btn-phone{display:flex;align-items:center;justify-content:center;gap:8px;background:transparent;border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.8) !important;font-family:'Nunito',sans-serif;font-size:14px;font-weight:700;border-radius:8px;padding:12px 20px;text-decoration:none;transition:background .2s;}\r\n.com-p2-btn-phone:hover{background:rgba(255,255,255,.06);}\r\n.com-p2-btn-primary svg,.com-p2-btn-phone svg{width:16px;height:16px;}\r\n.com-p2-divider-or{display:flex;align-items:center;gap:12px;margin:14px 0;}\r\n.com-p2-divider-or-line{flex:1;height:1px;background:rgba(255,255,255,.1);}\r\n.com-p2-divider-or-text{font-size:11px;color:rgba(255,255,255,.3);font-weight:600;}\r\n.com-p2-flat{display:flex;align-items:center;gap:10px;background:rgba(10,168,223,.08);border:1px solid rgba(10,168,223,.15);border-radius:8px;padding:12px 16px;margin-top:16px;}\r\n.com-p2-flat-icon{width:24px;height:24px;border-radius:6px;flex-shrink:0;background:linear-gradient(135deg,var(--blue),var(--green));display:flex;align-items:center;justify-content:center;}\r\n.com-p2-flat-icon svg{width:13px;height:13px;}\r\n.com-p2-flat-text{font-size:12.5px;color:rgba(255,255,255,.65);font-weight:600;}\r\n.com-p2-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;}\r\n.com-p2-item{background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:12px;padding:18px 16px;display:flex;align-items:center;gap:12px;box-shadow:0 1px 6px rgba(0,0,0,.05);transition:transform .2s,box-shadow .2s;}\r\n.com-p2-item:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(10,168,223,.1);}\r\n.com-p2-icon{width:36px;height:36px;border-radius:10px;flex-shrink:0;background:linear-gradient(135deg,var(--blue),var(--green));display:flex;align-items:center;justify-content:center;}\r\n.com-p2-icon svg{width:18px;height:18px;}\r\n.com-p2-name{font-size:13.5px;font-weight:700;color:var(--text);line-height:1.3;}\r\n.com-p2-sub{font-size:11.5px;color:var(--muted);margin-top:2px;}\r\n@media only screen and (max-width:768px){.com-p2-top{grid-template-columns:1fr;gap:24px;}.com-p2-inner{padding:50px 15px;}}\r\n@media only screen and (max-width:1024px){.com-p2{padding:0 60px;}.com-p2-inner{padding:60px 0;}}\r\n@media screen and (max-width:480px){.com-p2{padding:0 15px;}}\r\n<\/style>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\/>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Barlow+Condensed:wght@700;800&family=Nunito:wght@400;600;700;800&display=swap\" rel=\"stylesheet\"\/>\r\n<div class=\"com-p2\">\r\n  <div class=\"com-p2-inner\">\r\n    <div class=\"com-p2-top\">\r\n      <div>\r\n        <div class=\"com-p2-label\"><span class=\"com-p2-label-text\">Commercial Pricing<\/span><\/div>\r\n        <h2>Custom Quote for <span class=\"com-p2-accent\">Every Building<\/span><\/h2>\r\n        <div class=\"com-p2-divider\"><\/div>\r\n        <p>Commercial dryer vent cleaning is priced by <strong>number of units and vent configuration<\/strong>. We don't quote blind \u2014 we assess your building and give you a <strong>exact price upfront<\/strong> with no surprises when the job is done.<\/p>\r\n      <\/div>\r\n      <div class=\"com-p2-card\">\r\n        <div class=\"com-p2-card-title\">Get Your Free Estimate<\/div>\r\n        <div class=\"com-p2-card-sub\">Fast response \u00b7 No obligation \u00b7 Upfront pricing<\/div>\r\n        <a class=\"com-p2-btn-primary\" href=\"https:\/\/blueguard.ca\/book-now-get-quote\/\" target=\"_blank\" rel=\"noopener\">\r\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"\/><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"\/><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"\/><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"\/><\/svg>\r\n          Fill Out Quote Form\r\n        <\/a>\r\n        <div class=\"com-p2-divider-or\"><div class=\"com-p2-divider-or-line\"><\/div><div class=\"com-p2-divider-or-text\">or call directly<\/div><div class=\"com-p2-divider-or-line\"><\/div><\/div>\r\n        <a class=\"com-p2-btn-phone\" href=\"tel:+18444988364\">\r\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07A19.5 19.5 0 013.07 10.8a19.79 19.79 0 01-3.07-8.72A2 2 0 012 0h3a2 2 0 012 1.72c.127.96.361 1.903.7 2.81a2 2 0 01-.45 2.11L6.91 7.91a16 16 0 006.18 6.18l1.27-1.27a2 2 0 012.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0122 16.92z\"\/><\/svg>\r\n          +1-844-498-8364\r\n        <\/a>\r\n        <div class=\"com-p2-flat\">\r\n          <div class=\"com-p2-flat-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\r\n          <div class=\"com-p2-flat-text\">Upfront pricing \u2014 what you're quoted is exactly what you pay<\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"com-p2-grid\">\r\n      <div class=\"com-p2-item\"><div class=\"com-p2-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z\"\/><polyline points=\"9 22 9 12 15 12 15 22\"\/><\/svg><\/div><div><div class=\"com-p2-name\">Apartment Buildings<\/div><div class=\"com-p2-sub\">All units \u2014 full building project<\/div><\/div><\/div>\r\n      <div class=\"com-p2-item\"><div class=\"com-p2-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 16V8a2 2 0 00-1-1.73l-7-4a2 2 0 00-2 0l-7 4A2 2 0 003 8v8a2 2 0 001 1.73l7 4a2 2 0 002 0l7-4A2 2 0 0021 16z\"\/><\/svg><\/div><div><div class=\"com-p2-name\">Townhouse Communities<\/div><div class=\"com-p2-sub\">Multi-unit shared developments<\/div><\/div><\/div>\r\n      <div class=\"com-p2-item\"><div class=\"com-p2-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\"\/><path d=\"M16 21V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v16\"\/><\/svg><\/div><div><div class=\"com-p2-name\">Condominiums<\/div><div class=\"com-p2-sub\">Per unit or full building<\/div><\/div><\/div>\r\n      <div class=\"com-p2-item\"><div class=\"com-p2-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2.69l5.66 5.66a8 8 0 11-11.31 0z\"\/><\/svg><\/div><div><div class=\"com-p2-name\">Shared Laundry Rooms<\/div><div class=\"com-p2-sub\">Common exhaust lines &amp; terminations<\/div><\/div><\/div>\r\n      <div class=\"com-p2-item\"><div class=\"com-p2-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\/><circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\"\/><polyline points=\"21 15 16 10 5 21\"\/><\/svg><\/div><div><div class=\"com-p2-name\">Before &amp; After Documentation<\/div><div class=\"com-p2-sub\">Insurance &amp; property records<\/div><\/div><\/div>\r\n      <div class=\"com-p2-item\"><div class=\"com-p2-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg><\/div><div><div class=\"com-p2-name\">Scheduled Around Tenants<\/div><div class=\"com-p2-sub\">Minimal disruption to residents<\/div><\/div><\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-143933db e-flex e-con-boxed e-con e-parent\" data-id=\"143933db\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2291d3ef elementor-widget elementor-widget-html\" data-id=\"2291d3ef\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n.com-w3*{box-sizing:border-box;margin:0;padding:0}\r\n.com-w3{--blue:#0aa8df;--green:#a8cf45;--dark:#0d1117;--text:#2d3748;--muted:#718096;--light:#f0f4f8;font-family:'Nunito',sans-serif;background:#fff;}\r\n.com-w3-inner{max-width:1280px;margin:0 auto;padding:70px 0;}\r\n.com-w3-label{display:inline-flex;align-items:center;gap:8px;background:rgba(10,168,223,.08);border:1px solid rgba(10,168,223,.2);border-radius:4px;padding:5px 12px;margin-bottom:16px;}\r\n.com-w3-label-text{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--blue);}\r\n.com-w3 h2{font-family:'Barlow Condensed',sans-serif;font-size:clamp(26px,4vw,42px);font-weight:800;line-height:1.1;color:var(--dark);margin-bottom:10px;}\r\n.com-w3-accent{background:linear-gradient(90deg,var(--blue),var(--green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}\r\n.com-w3-divider{width:50px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--blue),var(--green));margin-bottom:32px;}\r\n.com-w3-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}\r\n.com-w3 p{font-size:15.5px;line-height:1.82;color:var(--text);margin-bottom:20px;}\r\n.com-w3 strong{color:var(--dark);font-weight:800;}\r\n.com-w3-hl{color:#2e9e3b;font-weight:800;}\r\n.com-w3-hlb{color:var(--blue);font-weight:800;}\r\n.com-w3-proof{background:linear-gradient(135deg,rgba(10,168,223,.05),rgba(168,207,69,.04));border:1px solid rgba(10,168,223,.15);border-left:3px solid var(--blue);border-radius:12px;padding:20px 20px;margin-top:8px;}\r\n.com-w3-proof-num{font-family:'Barlow Condensed',sans-serif;font-size:48px;font-weight:800;line-height:1;background:linear-gradient(90deg,var(--blue),var(--green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:4px;}\r\n.com-w3-proof-label{font-size:13px;font-weight:700;color:var(--text);}\r\n.com-w3-proof-sub{font-size:12px;color:var(--muted);margin-top:4px;}\r\n.com-w3-diffs{display:flex;flex-direction:column;gap:14px;}\r\n.com-w3-diff{display:flex;align-items:flex-start;gap:14px;background:var(--light);border:1px solid rgba(0,0,0,.07);border-radius:12px;padding:18px 16px;}\r\n.com-w3-diff-icon{width:38px;height:38px;border-radius:10px;flex-shrink:0;background:linear-gradient(135deg,var(--blue),var(--green));display:flex;align-items:center;justify-content:center;}\r\n.com-w3-diff-icon svg{width:19px;height:19px;}\r\n.com-w3-diff-title{font-size:14px;font-weight:800;color:var(--dark);margin-bottom:3px;}\r\n.com-w3-diff-text{font-size:13px;color:var(--muted);line-height:1.55;}\r\n@media only screen and (max-width:768px){.com-w3-grid{grid-template-columns:1fr;gap:32px;}.com-w3-inner{padding:50px 15px;}}\r\n@media only screen and (max-width:1024px){.com-w3{padding:0 60px;}.com-w3-inner{padding:60px 0;}}\r\n@media screen and (max-width:480px){.com-w3{padding:0 15px;}}\r\n<\/style>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\/>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Barlow+Condensed:wght@700;800&family=Nunito:wght@400;600;700;800&display=swap\" rel=\"stylesheet\"\/>\r\n<div class=\"com-w3\">\r\n  <div class=\"com-w3-inner\">\r\n    <div class=\"com-w3-label\"><span class=\"com-w3-label-text\">Why Regular Cleaning<\/span><\/div>\r\n    <h2>Why Oshawa Commercial Properties Need <span class=\"com-w3-accent\">Regular Dryer Vent Cleaning<\/span><\/h2>\r\n    <div class=\"com-w3-divider\"><\/div>\r\n    <div class=\"com-w3-grid\">\r\n      <div>\r\n        <p>In multi-unit buildings, dryer vents from individual units often <strong>share exhaust pathways<\/strong>. When one unit's vent is clogged, it creates <span class=\"com-w3-hl\">backpressure that affects adjacent units<\/span>. Regular cleaning across all units is the only way to maintain safe operation for the entire building.<\/p>\r\n        <p>Property managers and building owners are <strong>liable for fire safety<\/strong> in their buildings. NADCA-certified dryer vent cleaning provides <span class=\"com-w3-hlb\">documented proof of maintenance<\/span> \u2014 important for insurance compliance and tenant safety.<\/p>\r\n        <div class=\"com-w3-proof\">\r\n          <div class=\"com-w3-proof-num\">39<\/div>\r\n          <div class=\"com-w3-proof-label\">Dryer Vents \u2014 Single Oshawa Job<\/div>\r\n          <div class=\"com-w3-proof-sub\">Apartment building + townhouse community \u2014 completed in one project<\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"com-w3-diffs\">\r\n        <div class=\"com-w3-diff\"><div class=\"com-w3-diff-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z\"\/><line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\"\/><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"\/><\/svg><\/div><div><div class=\"com-w3-diff-title\">Fire Safety Compliance<\/div><div class=\"com-w3-diff-text\">NADCA-certified cleaning provides documented proof for insurance and building compliance records.<\/div><\/div><\/div>\r\n        <div class=\"com-w3-diff\"><div class=\"com-w3-diff-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg><\/div><div><div class=\"com-w3-diff-title\">NADCA Certified<\/div><div class=\"com-w3-diff-text\">Active certification \u2014 verifiable at nadca.com. Strict source-removal standards on every job.<\/div><\/div><\/div>\r\n        <div class=\"com-w3-diff\"><div class=\"com-w3-diff-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\/><circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\"\/><polyline points=\"21 15 16 10 5 21\"\/><\/svg><\/div><div><div class=\"com-w3-diff-title\">Full Documentation<\/div><div class=\"com-w3-diff-text\">Before and after photos on every unit \u2014 suitable for insurance and property management files.<\/div><\/div><\/div>\r\n        <div class=\"com-w3-diff\"><div class=\"com-w3-diff-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg><\/div><div><div class=\"com-w3-diff-title\">Full Crew \u2014 Any Scale<\/div><div class=\"com-w3-diff-text\">From a single unit to a full apartment complex. We bring the crew to complete large jobs efficiently.<\/div><\/div><\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-88dfc9f e-con-full e-flex e-con e-parent\" data-id=\"88dfc9f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b04773f elementor-widget elementor-widget-html\" data-id=\"b04773f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n.com-s4*{box-sizing:border-box;margin:0;padding:0}\r\n.com-s4{--blue:#0aa8df;--green:#a8cf45;--dark:#0d1117;--text:#2d3748;--muted:#718096;--light:#f0f4f8;font-family:'Nunito',sans-serif;background:var(--light);}\r\n.com-s4-inner{max-width:1280px;margin:0 auto;padding:70px 0;}\r\n.com-s4-label{display:inline-flex;align-items:center;gap:8px;background:rgba(10,168,223,.08);border:1px solid rgba(10,168,223,.2);border-radius:4px;padding:5px 12px;margin-bottom:16px;}\r\n.com-s4-label-text{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--blue);}\r\n.com-s4 h2{font-family:'Barlow Condensed',sans-serif;font-size:clamp(26px,4vw,42px);font-weight:800;line-height:1.1;color:var(--dark);margin-bottom:10px;}\r\n.com-s4-accent{background:linear-gradient(90deg,var(--blue),var(--green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}\r\n.com-s4-divider{width:50px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--blue),var(--green));margin-bottom:32px;}\r\n.com-s4-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;}\r\n.com-s4-item{display:flex;align-items:flex-start;gap:14px;background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:14px;padding:20px 18px;box-shadow:0 1px 6px rgba(0,0,0,.04);transition:transform .2s,box-shadow .2s;}\r\n.com-s4-item:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(10,168,223,.1);}\r\n.com-s4-icon{width:42px;height:42px;border-radius:11px;flex-shrink:0;background:linear-gradient(135deg,var(--blue),var(--green));display:flex;align-items:center;justify-content:center;}\r\n.com-s4-icon svg{width:20px;height:20px;}\r\n.com-s4-title{font-size:14.5px;font-weight:800;color:var(--dark);line-height:1.3;margin-bottom:4px;}\r\n.com-s4-sub{font-size:12.5px;color:var(--muted);line-height:1.5;}\r\n@media only screen and (max-width:768px){.com-s4-inner{padding:50px 15px;}}\r\n@media only screen and (max-width:1024px){.com-s4{padding:0 60px;}.com-s4-inner{padding:60px 0;}}\r\n@media screen and (max-width:480px){.com-s4{padding:0 15px;}}\r\n<\/style>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\/>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Barlow+Condensed:wght@700;800&family=Nunito:wght@400;600;700;800&display=swap\" rel=\"stylesheet\"\/>\r\n<div class=\"com-s4\">\r\n  <div class=\"com-s4-inner\">\r\n    <div class=\"com-s4-label\"><span class=\"com-s4-label-text\">Scope of Work<\/span><\/div>\r\n    <h2>What BlueGuard Does on <span class=\"com-s4-accent\">Every Commercial Dryer Vent Job<\/span><\/h2>\r\n    <div class=\"com-s4-divider\"><\/div>\r\n    <div class=\"com-s4-grid\">\r\n      <div class=\"com-s4-item\"><div class=\"com-s4-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z\"\/><polyline points=\"9 22 9 12 15 12 15 22\"\/><\/svg><\/div><div><div class=\"com-s4-title\">Individual Unit Dryer Vents<\/div><div class=\"com-s4-sub\">All units in the building \u2014 full line cleaned<\/div><\/div><\/div>\r\n      <div class=\"com-s4-item\"><div class=\"com-s4-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 16V8a2 2 0 00-1-1.73l-7-4a2 2 0 00-2 0l-7 4A2 2 0 003 8v8a2 2 0 001 1.73l7 4a2 2 0 002 0l7-4A2 2 0 0021 16z\"\/><\/svg><\/div><div><div class=\"com-s4-title\">Shared Laundry Room Exhaust<\/div><div class=\"com-s4-sub\">Common exhaust lines \u2014 full line to exterior<\/div><\/div><\/div>\r\n      <div class=\"com-s4-item\"><div class=\"com-s4-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2.69l5.66 5.66a8 8 0 11-11.31 0z\"\/><\/svg><\/div><div><div class=\"com-s4-title\">Roof &amp; Wall Exhaust Terminations<\/div><div class=\"com-s4-sub\">Exterior caps cleared and tested<\/div><\/div><\/div>\r\n      <div class=\"com-s4-item\"><div class=\"com-s4-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"\/><\/svg><\/div><div><div class=\"com-s4-title\">Full Airflow Testing<\/div><div class=\"com-s4-sub\">Every vent measured before and after<\/div><\/div><\/div>\r\n      <div class=\"com-s4-item\"><div class=\"com-s4-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\/><circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\"\/><polyline points=\"21 15 16 10 5 21\"\/><\/svg><\/div><div><div class=\"com-s4-title\">Before &amp; After Documentation<\/div><div class=\"com-s4-sub\">Property records, insurance compliance<\/div><\/div><\/div>\r\n      <div class=\"com-s4-item\"><div class=\"com-s4-icon\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg><\/div><div><div class=\"com-s4-title\">Scheduled Around Tenants<\/div><div class=\"com-s4-sub\">Minimal disruption to residents<\/div><\/div><\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-bcc47c4 e-flex e-con-boxed e-con e-parent\" data-id=\"bcc47c4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-50cff48 e-con-full e-flex e-con e-child\" data-id=\"50cff48\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-4bf2e25 e-con-full e-flex e-con e-child\" data-id=\"4bf2e25\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-794062d elementor-widget elementor-widget-html\" data-id=\"794062d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n.com-s5*{box-sizing:border-box;margin:0;padding:0}\r\n.com-s5{--blue:#0aa8df;--green:#a8cf45;--dark:#0d1117;--text:#2d3748;--muted:#718096;--light:#f0f4f8;font-family:'Nunito',sans-serif;background:#fff;}\r\n.com-s5-inner{max-width:1280px;margin:0 auto;padding:0;}\r\n.com-s5-label{display:inline-flex;align-items:center;gap:8px;background:rgba(10,168,223,.08);border:1px solid rgba(10,168,223,.2);border-radius:4px;padding:5px 12px;margin-bottom:16px;}\r\n.com-s5-label-text{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--blue);}\r\n.com-s5 h2{font-family:'Barlow Condensed',sans-serif;font-size:clamp(26px,4vw,42px);font-weight:800;line-height:1.1;color:var(--dark);margin-bottom:10px;}\r\n.com-s5-accent{background:linear-gradient(90deg,var(--blue),var(--green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}\r\n.com-s5-divider{width:50px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--blue),var(--green));margin-bottom:24px;}\r\n.com-s5 p{font-size:15.5px;line-height:1.82;color:var(--text);margin-bottom:16px;}\r\n.com-s5 strong{color:var(--dark);font-weight:800;}\r\n.com-s5-hl{color:#2e9e3b;font-weight:800;}\r\n.com-s5-hlb{color:var(--blue);font-weight:800;}\r\n.com-s5-insight{background:linear-gradient(135deg,rgba(10,168,223,.05),rgba(168,207,69,.04));border:1px solid rgba(10,168,223,.15);border-left:3px solid var(--blue);border-radius:12px;padding:20px 20px;margin-top:8px;font-size:14.5px;color:var(--text);line-height:1.7;}\r\n@media only screen and (max-width:768px){.com-s5-inner{padding:0px 0px;}}\r\n@media only screen and (max-width:1024px){.com-s5{padding:0 0px;}.com-s5-inner{padding:0px 0;}}\r\n@media screen and (max-width:480px){.com-s5{padding:0 px;}}\r\n<\/style>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\/>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Barlow+Condensed:wght@700;800&family=Nunito:wght@400;600;700;800&display=swap\" rel=\"stylesheet\"\/>\r\n<div class=\"com-s5\">\r\n  <div class=\"com-s5-inner\">\r\n    <div class=\"com-s5-label\"><span class=\"com-s5-label-text\">Oshawa Commercial Work<\/span><\/div>\r\n    <h2>What We See on <span class=\"com-s5-accent\">Oshawa Commercial Dryer Vent Jobs<\/span><\/h2>\r\n    <div class=\"com-s5-divider\"><\/div>\r\n    <p>We recently completed a commercial dryer vent cleaning project in Oshawa covering <span class=\"com-s5-hlb\">39 dryer vents<\/span> across an apartment building and townhouse community in the same development. This type of <strong>multi-unit residential cleaning<\/strong> is one of our core specialties in the Durham Region.<\/p>\r\n    <p>On first-visit commercial jobs in Oshawa, we consistently find dryer vents \u2014 across all unit types \u2014 that have <span class=\"com-s5-hl\">never been professionally cleaned since construction<\/span>. In multi-unit buildings this is especially hazardous because shared exhaust pathways mean one blocked unit creates a fire risk for the entire building.<\/p>\r\n    <div class=\"com-s5-insight\">\r\n      \ud83d\udcbc <strong>Property managers:<\/strong> If your Oshawa building has never had a professional dryer vent cleaning, contact us for a free commercial assessment. We'll document the current condition of every unit and provide a upfront quote before any work begins.\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a82a3d0 e-con-full e-flex e-con e-child\" data-id=\"a82a3d0\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ad2d370 elementor-widget__width-initial elementor-absolute elementor-widget elementor-widget-spacer\" data-id=\"ad2d370\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3b8fd15 elementor-widget__width-auto elementor-widget-tablet__width-auto elementor-widget elementor-widget-heading\" data-id=\"3b8fd15\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Before And After Gallery<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1e2a96e elementor-widget__width-initial elementor-absolute elementor-widget elementor-widget-spacer\" data-id=\"1e2a96e\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3cb388b elementor-widget__width-initial elementor-widget-tablet__width-auto elementor-widget elementor-widget-button\" data-id=\"3cb388b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/blueguard.ca\/blueguard-image-gallery\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-long-arrow-alt-right\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">More Work Images<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c22dafc elementor-widget-tablet__width-initial elementor-arrows-position-inside elementor-widget elementor-widget-image-carousel\" data-id=\"c22dafc\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;arrows&quot;,&quot;autoplay_speed&quot;:3000,&quot;effect&quot;:&quot;fade&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;infinite&quot;:&quot;yes&quot;,&quot;speed&quot;:500}\" data-widget_type=\"image-carousel.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-image-carousel-wrapper swiper\" role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Image Carousel\" dir=\"ltr\">\n\t\t\t<div class=\"elementor-image-carousel swiper-wrapper\" aria-live=\"off\">\n\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"1 of 5\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/blueguard.ca\/wp-content\/uploads\/2026\/05\/Gemini_Generated_Image_lscabxlscabxlsca-copy.webp\" alt=\"air duct cleaning service in Barrhaven\" title=\"\"><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"2 of 5\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/blueguard.ca\/wp-content\/uploads\/2026\/05\/ChatGPT-Image-May-15-2026-12_07_42-PM-copy.webp\" alt=\"air duct cleaning service in Montreal\" title=\"\"><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"3 of 5\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/blueguard.ca\/wp-content\/uploads\/2026\/05\/Gemini_Generated_Image_lj37rklj37rklj37-copy.webp\" alt=\"Professional Air Duct Cleaning Service in Laval\" title=\"\"><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"4 of 5\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/blueguard.ca\/wp-content\/uploads\/2026\/05\/ChatGPT-Image-May-15-2026-12_05_36-PM-copy.webp\" alt=\"duct cleaning service in longueuil\" title=\"\"><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"5 of 5\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/blueguard.ca\/wp-content\/uploads\/2026\/05\/Gemini_Generated_Image_3ovjyk3ovjyk3ovj-copy.webp\" alt=\"Dryer Vent Cleaning in Montreal and commercial dryer vent cleaning in Whitby\" title=\"\"><\/figure><\/div>\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-prev\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-angle-left\" viewBox=\"0 0 256 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"><\/path><\/svg>\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-next\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-angle-right\" viewBox=\"0 0 256 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"><\/path><\/svg>\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f475512 elementor-widget__width-initial elementor-absolute elementor-widget elementor-widget-spacer\" data-id=\"f475512\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f2b07c8 elementor-widget__width-initial elementor-absolute elementor-widget elementor-widget-spacer\" data-id=\"f2b07c8\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-605cd6f2 e-con-full e-flex e-con e-parent\" data-id=\"605cd6f2\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7aaec7e0 elementor-widget elementor-widget-html\" data-id=\"7aaec7e0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n.com-s6*{box-sizing:border-box;margin:0;padding:0}\r\n.com-s6{--blue:#0aa8df;--green:#a8cf45;font-family:'Nunito',sans-serif;background:linear-gradient(135deg,#0d1117 0%,#0f1923 100%);position:relative;overflow:hidden;padding:70px 0;}\r\n.com-s6-pattern{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(10,168,223,.08) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;z-index:0;}\r\n.com-s6-blob{position:absolute;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(10,168,223,.1),transparent 70%);filter:blur(70px);top:-100px;right:-60px;z-index:0;pointer-events:none;}\r\n.com-s6-inner{position:relative;z-index:1;max-width:1280px;margin:0 auto;}\r\n.com-s6-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(10,168,223,.12);border:1px solid rgba(10,168,223,.3);border-radius:4px;padding:5px 12px;margin-bottom:20px;}\r\n.com-s6-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--blue);animation:coms6-ping 1.8s ease-in-out infinite;}\r\n@keyframes coms6-ping{0%,100%{box-shadow:0 0 0 0 rgba(10,168,223,.6)}50%{box-shadow:0 0 0 5px rgba(10,168,223,0)}}\r\n.com-s6-badge-text{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--blue);}\r\n.com-s6 h2{font-family:'Barlow Condensed',sans-serif;font-size:clamp(26px,4vw,44px);font-weight:800;line-height:1.1;color:#fff;margin-bottom:10px;}\r\n.com-s6-accent{background:linear-gradient(90deg,var(--blue),var(--green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}\r\n.com-s6-divider{width:50px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--blue),var(--green));margin-bottom:24px;}\r\n.com-s6 p{font-size:clamp(15px,1.5vw,16px);line-height:1.82;color:rgba(255,255,255,.75);margin-bottom:16px;}\r\n.com-s6 strong{color:#fff;font-weight:800;}\r\n.com-s6-hl{color:var(--green);font-weight:800;}\r\n.com-s6-hlb{color:var(--blue);font-weight:800;}\r\n.com-s6-verify{display:inline-flex;align-items:center;gap:10px;background:rgba(10,168,223,.1);border:1px solid rgba(10,168,223,.25);border-radius:6px;padding:11px 20px;margin-top:8px;font-size:13px;font-weight:700;color:var(--blue);text-decoration:none;transition:background .2s;}\r\n.com-s6-verify:hover{background:rgba(10,168,223,.18);}\r\n.com-s6-verify svg{width:14px;height:14px;}\r\n@media only screen and (max-width:1024px){.com-s6{padding:60px 60px;}}\r\n@media only screen and (max-width:768px){.com-s6{padding:60px 60px;}}\r\n@media screen and (max-width:480px){.com-s6{padding:60px 15px;}}\r\n<\/style>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\/>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Barlow+Condensed:wght@700;800&family=Nunito:wght@400;600;700;800&display=swap\" rel=\"stylesheet\"\/>\r\n<div class=\"com-s6\">\r\n  <div class=\"com-s6-pattern\"><\/div>\r\n  <div class=\"com-s6-blob\"><\/div>\r\n  <div class=\"com-s6-inner\">\r\n    <div class=\"com-s6-badge\"><span class=\"com-s6-badge-dot\"><\/span><span class=\"com-s6-badge-text\">Industry Certification<\/span><\/div>\r\n    <h2><span class=\"com-s6-accent\">NADCA Certified<\/span> \u2014 The Highest Standard<\/h2>\r\n    <div class=\"com-s6-divider\"><\/div>\r\n    <p>Most duct cleaning companies in Oshawa are <strong>not NADCA certified<\/strong>. BlueGuard is. NADCA certification means every commercial dryer vent job follows strict <span class=\"com-s6-hl\">source-removal standards<\/span> \u2014 all lint and debris is physically removed, not just displaced.<\/p>\r\n    <p>For property managers and building owners, NADCA certification provides <strong>documented proof of professional standard work<\/strong> \u2014 critical for insurance compliance, building safety records, and tenant relations. Every job includes <span class=\"com-s6-hlb\">full before and after documentation per unit<\/span>.<\/p>\r\n    <a class=\"com-s6-verify\" href=\"https:\/\/nadca.com\/find-a-professional\/blueguard-duct-cleaning\" target=\"_blank\" rel=\"noopener\">\r\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\r\n      Verify our certification at nadca.com\r\n    <\/a>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5e325320 e-flex e-con-boxed e-con e-parent\" data-id=\"5e325320\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-491444e1 elementor-widget elementor-widget-html\" data-id=\"491444e1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n.com-s7*{box-sizing:border-box;margin:0;padding:0}\r\n.com-s7{--blue:#0aa8df;--green:#a8cf45;--dark:#0d1117;--text:#2d3748;--muted:#718096;--light:#f0f4f8;font-family:'Nunito',sans-serif;background:#fff;}\r\n.com-s7-inner{max-width:1280px;margin:0 auto;padding:70px 0;}\r\n.com-s7-label{display:inline-flex;align-items:center;gap:8px;background:rgba(10,168,223,.08);border:1px solid rgba(10,168,223,.2);border-radius:4px;padding:5px 12px;margin-bottom:16px;}\r\n.com-s7-label-text{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--blue);}\r\n.com-s7 h2{font-family:'Barlow Condensed',sans-serif;font-size:clamp(26px,4vw,42px);font-weight:800;line-height:1.1;color:var(--dark);margin-bottom:10px;}\r\n.com-s7-accent{background:linear-gradient(90deg,var(--blue),var(--green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}\r\n.com-s7-divider{width:50px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--blue),var(--green));margin-bottom:24px;}\r\n.com-s7-card{background:var(--light);border:1px solid rgba(0,0,0,.07);border-radius:18px;padding:32px 28px;display:flex;align-items:flex-start;gap:24px;position:relative;overflow:hidden;}\r\n.com-s7-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--blue),var(--green));}\r\n.com-s7-avatar{width:68px;height:68px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--blue),var(--green));display:flex;align-items:center;justify-content:center;}\r\n.com-s7-avatar svg{width:34px;height:34px;}\r\n.com-s7-name{font-family:'Barlow Condensed',sans-serif;font-size:26px;font-weight:800;color:var(--dark);line-height:1;margin-bottom:4px;}\r\n.com-s7-title{font-size:11px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--blue);margin-bottom:12px;}\r\n.com-s7-bio{font-size:14.5px;color:var(--text);line-height:1.7;}\r\n.com-s7-bio strong{color:var(--dark);font-weight:800;}\r\n.com-s7-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}\r\n.com-s7-tag{font-size:11px;font-weight:700;background:rgba(10,168,223,.08);border:1px solid rgba(10,168,223,.2);color:var(--blue);border-radius:100px;padding:4px 12px;}\r\n@media(max-width:480px){.com-s7-card{flex-direction:column;gap:16px;}}\r\n@media only screen and (max-width:768px){.com-s7-inner{padding:50px 15px;}}\r\n@media only screen and (max-width:1024px){.com-s7{padding:0 60px;}.com-s7-inner{padding:60px 0;}}\r\n@media screen and (max-width:480px){.com-s7{padding:0 15px;}}\r\n<\/style>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\/>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Barlow+Condensed:wght@700;800&family=Nunito:wght@400;600;700;800&display=swap\" rel=\"stylesheet\"\/>\r\n<div class=\"com-s7\">\r\n  <div class=\"com-s7-inner\">\r\n    <div class=\"com-s7-label\"><span class=\"com-s7-label-text\">Lead Technician<\/span><\/div>\r\n    <h2>Your Oshawa Commercial Technician \u2014 <span class=\"com-s7-accent\">Hayden Khullar<\/span><\/h2>\r\n    <div class=\"com-s7-divider\"><\/div>\r\n    <div class=\"com-s7-card\">\r\n      <div class=\"com-s7-avatar\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2\"\/><circle cx=\"12\" cy=\"7\" r=\"4\"\/><\/svg><\/div>\r\n      <div>\r\n        <div class=\"com-s7-name\">Hayden Khullar<\/div>\r\n        <div class=\"com-s7-title\">NADCA Certified Technician \u00b7 Oshawa &amp; Durham Region<\/div>\r\n        <div class=\"com-s7-bio\">Hayden is BlueGuard's lead HVAC cleaning technician covering Oshawa and surrounding areas. He has been cleaning commercial dryer vents and air ducts since <strong>2020<\/strong> and holds active <strong>NADCA certification<\/strong>. Hayden provides <strong>complete before and after documentation on every commercial job<\/strong> \u2014 every unit documented individually.<\/div>\r\n        <div class=\"com-s7-tags\">\r\n          <span class=\"com-s7-tag\">NADCA Certified<\/span>\r\n          <span class=\"com-s7-tag\">Since 2020<\/span>\r\n          <span class=\"com-s7-tag\">Full Documentation<\/span>\r\n          <span class=\"com-s7-tag\">Multi-Unit Specialist<\/span>\r\n          <span class=\"com-s7-tag\">Oshawa<\/span>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3e5a487 elementor-widget__width-initial elementor-absolute elementor-invisible elementor-widget elementor-widget-image\" data-id=\"3e5a487\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;,&quot;_animation&quot;:&quot;fadeInRight&quot;}\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"612\" height=\"408\" src=\"https:\/\/blueguard.ca\/wp-content\/uploads\/2025\/09\/WhatsApp_Image_2025-06-07_at_23.03.37_76851dc9-removebg-preview.png.png\" class=\"attachment-full size-full wp-image-12805\" alt=\"BlueGuard Car with logo\" srcset=\"https:\/\/blueguard.ca\/wp-content\/uploads\/2025\/09\/WhatsApp_Image_2025-06-07_at_23.03.37_76851dc9-removebg-preview.png.png 612w, https:\/\/blueguard.ca\/wp-content\/uploads\/2025\/09\/WhatsApp_Image_2025-06-07_at_23.03.37_76851dc9-removebg-preview.png-300x200.png 300w\" sizes=\"(max-width: 612px) 100vw, 612px\" title=\"\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e16866d e-con-full e-flex e-con e-parent\" data-id=\"e16866d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9e9cd4b elementor-widget elementor-widget-template\" data-id=\"9e9cd4b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"template.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-template\">\n\t\t\t\t\t<div data-elementor-type=\"section\" data-elementor-id=\"18297\" class=\"elementor elementor-18297\" data-elementor-post-type=\"elementor_library\">\n\t\t\t<div class=\"elementor-element elementor-element-c46d714 e-con-full e-flex e-con e-parent\" data-id=\"c46d714\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d4ec0d1 elementor-widget elementor-widget-html\" data-id=\"d4ec0d1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Barlow+Condensed:wght@600;700;800;900&family=Nunito:wght@300;400;600;700&display=swap\" rel=\"stylesheet\">\r\n<style>\r\n#sva-section * { box-sizing: border-box; margin: 0; padding: 0; }\r\n#sva-section {\r\n  font-family: 'Nunito', sans-serif;\r\n  background: #f8f9fb;\r\n  padding: 80px 20px 100px;\r\n  position: relative;\r\n  overflow-x: hidden;\r\n  overflow-y: visible;\r\n  width: 100%;\r\n  max-width: 100%;\r\n}\r\n#sva-section::before {\r\n  content: '';\r\n  position: absolute;\r\n  inset: 0;\r\n  background-image: radial-gradient(circle at 20% 20%, rgba(168,207,69,0.07) 0%, transparent 50%), radial-gradient(circle at 80% 80%, rgba(10,168,223,0.07) 0%, transparent 50%);\r\n  pointer-events: none;\r\n  z-index: 0;\r\n}\r\n#sva-section .sva-dots { position: absolute; inset: 0; pointer-events: none; z-index: 0; overflow: hidden; }\r\n#sva-section .sva-dot { position: absolute; border-radius: 50%; animation: svaDotFloat linear infinite; opacity: 0; }\r\n@keyframes svaDotFloat { 0% { transform: translateY(100%); opacity: 0; } 10% { opacity: 0.7; } 90% { opacity: 0.2; } 100% { transform: translateY(-60px); opacity: 0; } }\r\n#sva-section .sva-inner { width: 100%; max-width: 1100px; margin: 0 auto; position: relative; z-index: 1; }\r\n\/* HEADER *\/\r\n#sva-section .sva-header { text-align: center; margin-bottom: 44px; opacity: 0; transform: translateY(28px); transition: opacity 0.8s ease, transform 0.8s ease; }\r\n#sva-section .sva-header.sva-vis { opacity: 1; transform: translateY(0); }\r\n#sva-section .sva-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-family: 'Barlow Condensed', sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 4px; text-transform: uppercase; color: #a8cf45; margin-bottom: 14px; }\r\n#sva-section .sva-eyebrow::before, #sva-section .sva-eyebrow::after { content: ''; width: 32px; height: 2px; background: #a8cf45; border-radius: 2px; display: block; }\r\n#sva-section h2.sva-title { font-family: 'Barlow Condensed', sans-serif; font-size: clamp(38px, 6vw, 66px); font-weight: 900; text-transform: uppercase; letter-spacing: -1px; line-height: 1; color: #1a1a2e; margin-bottom: 14px; }\r\n#sva-section h2.sva-title .sva-hl { background: linear-gradient(135deg, #a8cf45, #0aa8df); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }\r\n#sva-section p.sva-desc { font-size: 15px; color: #888; line-height: 1.75; max-width: 500px; margin: 0 auto; font-weight: 400; }\r\n\/* PROVINCE TABS *\/\r\n#sva-section .sva-tabs { display: flex; justify-content: center; margin-bottom: 44px; background: #fff; border-radius: 50px; padding: 5px; width: fit-content; margin-left: auto; margin-right: auto; box-shadow: 0 4px 20px rgba(0,0,0,0.08); border: 1.5px solid #e8e8e8; }\r\n#sva-section .sva-tab { display: inline-flex; align-items: center; gap: 8px; padding: 11px 30px; border-radius: 50px; font-family: 'Barlow Condensed', sans-serif; font-size: 15px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; cursor: pointer; border: none; background: transparent; color: #888; transition: all 0.35s cubic-bezier(0.34,1.56,0.64,1); position: relative; overflow: hidden; }\r\n#sva-section .sva-tab .sva-tab-icon { font-size: 16px; transition: transform 0.3s ease; }\r\n#sva-section .sva-tab:hover { color: #555; }\r\n#sva-section .sva-tab:hover .sva-tab-icon { transform: scale(1.2); }\r\n#sva-section .sva-tab.sva-tab-active { background: linear-gradient(135deg, #a8cf45, #0aa8df); color: #fff; box-shadow: 0 6px 20px rgba(10,168,223,0.3); }\r\n#sva-section .sva-tab.sva-tab-active::before { content: ''; position: absolute; top: 0; left: -100%; width: 60%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent); animation: svaBtnShine 2.5s ease-in-out infinite; }\r\n@keyframes svaBtnShine { 0% { left: -100%; } 45% { left: 140%; } 100% { left: 140%; } }\r\n\/* PANEL *\/\r\n#sva-section .sva-panel { display: none; }\r\n#sva-section .sva-panel.sva-panel-active { display: block; animation: svaPanelIn 0.45s ease; }\r\n@keyframes svaPanelIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }\r\n#sva-section .sva-province-title { font-family: 'Barlow Condensed', sans-serif; font-size: clamp(28px, 4vw, 42px); font-weight: 800; text-transform: uppercase; letter-spacing: -0.5px; color: #1a1a2e; text-align: center; margin-bottom: 24px; }\r\n\/* MAP *\/\r\n#sva-section .sva-map-wrap { border-radius: 20px; overflow: hidden; box-shadow: 0 12px 50px rgba(0,0,0,0.12); margin-bottom: 14px; border: 2px solid #e8e8e8; position: relative; background: linear-gradient(180deg, #eaf3fb 0%, #eef4ec 100%); }\r\n#sva-section .sva-map-badge { position: absolute; top: 14px; left: 14px; background: rgba(255,255,255,0.95); border-radius: 50px; padding: 6px 14px; display: flex; align-items: center; gap: 6px; box-shadow: 0 4px 16px rgba(0,0,0,0.12); font-family: 'Barlow Condensed', sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: #1a1a2e; z-index: 1000; }\r\n#sva-section .sva-map-dot { width: 7px; height: 7px; border-radius: 50%; background: #a8cf45; animation: svaDotPing 1.6s ease-out infinite; }\r\n@keyframes svaDotPing { 0% { box-shadow: 0 0 0 0 rgba(168,207,69,0.5); } 70% { box-shadow: 0 0 0 8px rgba(168,207,69,0); } 100% { box-shadow: 0 0 0 0 rgba(168,207,69,0); } }\r\n\/* CUSTOM MAP (replaces Google My Maps) *\/\r\n#sva-section .bgmap { position: relative; width: 100%; height: 450px; z-index: 1; }\r\n#sva-section .bgmap .leaflet-container { width: 100%; height: 100%; border-radius: 18px; background: #eaf3f7; font-family: 'Nunito', sans-serif; }\r\n#sva-section .bgm-pin-ico svg { filter: drop-shadow(0 2px 3px rgba(26,58,74,0.35)); transition: transform 0.15s ease; }\r\n#sva-section .bgm-tip.leaflet-tooltip { background: rgba(255,255,255,0.94); border: 1.5px solid rgba(20,40,55,0.08); border-radius: 8px; box-shadow: 0 3px 10px rgba(0,0,0,0.16); font-family: 'Barlow Condensed', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; font-size: 12.5px; color: #24384a; padding: 3px 9px; white-space: nowrap; }\r\n#sva-section .bgm-tip-hub.leaflet-tooltip { font-size: 14px; color: #1a1a2e; border-color: rgba(244,167,44,0.55); }\r\n#sva-section .bgm-tip.leaflet-tooltip::before { display: none !important; }\r\n#sva-section .bgm-pin-ico:hover svg { transform: translateY(-2px) scale(1.08); }\r\n#sva-section .leaflet-popup-content-wrapper { border-radius: 14px !important; box-shadow: 0 8px 26px rgba(0,0,0,0.18) !important; padding: 6px 8px !important; }\r\n#sva-section .leaflet-popup-content { margin: 16px 22px 18px !important; line-height: 1.4 !important; min-width: 130px; }\r\n#sva-section .bgm-pop { text-align: center; }\r\n#sva-section .bgm-pop b { font-family: 'Barlow Condensed', sans-serif; font-size: 18px; letter-spacing: 0.5px; text-transform: uppercase; color: #1a1a2e; display: block; margin-bottom: 12px; line-height: 1.1; }\r\n#sva-section .bgm-pop a { display: inline-block; text-decoration: none; font-size: 12.5px; font-weight: 700; color: #fff !important; background: linear-gradient(135deg, #a8cf45, #0aa8df); padding: 9px 20px; border-radius: 22px; box-shadow: 0 4px 12px rgba(10,168,223,0.28); white-space: nowrap; }\r\n#sva-section .bgm-pop a:hover { filter: brightness(1.05); }\r\n#sva-section .bgm-maphint { text-align: center; font-size: 12.5px; color: #9aa4ad; font-weight: 600; margin-bottom: 30px; }\r\n#sva-section .bgm-maphint b { color: #0aa8df; }\r\n\/* GRID & CARD *\/\r\n#sva-section .sva-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 20px; }\r\n#sva-section .sva-card { min-width: 0; background: #fff; border-radius: 20px; padding: 30px 28px; border: 1.5px solid #ebebeb; box-shadow: 0 4px 20px rgba(0,0,0,0.05); transition: box-shadow 0.3s ease, transform 0.3s ease; }\r\n#sva-section .sva-card:hover { box-shadow: 0 10px 40px rgba(0,0,0,0.09); transform: translateY(-3px); }\r\n#sva-section .sva-card-title { font-family: 'Barlow Condensed', sans-serif; font-size: 20px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: #1a1a2e; margin-bottom: 18px; display: flex; align-items: center; gap: 8px; }\r\n#sva-section .sva-card-title::before { content: ''; width: 4px; height: 20px; border-radius: 2px; background: linear-gradient(to bottom, #a8cf45, #0aa8df); flex-shrink: 0; }\r\n\/* CITY LINKS \u2014 blue *\/\r\n#sva-section .sva-city-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 10px; }\r\n#sva-section .sva-city-btn { display: inline-flex; align-items: center; gap: 6px; padding: 9px 14px; border-radius: 10px; font-family: 'Nunito', sans-serif; font-size: 13px; font-weight: 700; cursor: pointer; border: 1.5px solid rgba(10,168,223,0.2); transition: all 0.3s cubic-bezier(0.34,1.56,0.64,1); background: #f0f7ff; color: #0aa8df; overflow: hidden; text-align: left; text-decoration: none; }\r\n#sva-section .sva-city-btn:hover { background: linear-gradient(135deg, #0aa8df, #007db3); color: #fff; border-color: transparent; transform: translateY(-2px) scale(1.03); box-shadow: 0 6px 18px rgba(10,168,223,0.3); }\r\n#sva-section .sva-city-btn .sva-pin,\r\n#sva-section .sva-city-btn-comm .sva-pin { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }\r\n#sva-section .sva-city-btn .sva-pin svg { width: 14px; height: 14px; flex-shrink: 0; color: #e53935; }\r\n#sva-section .sva-city-btn-comm .sva-pin svg { width: 14px; height: 14px; flex-shrink: 0; color: #e53935; }\r\n\/* CITY LINKS \u2014 orange\/commercial *\/\r\n#sva-section .sva-city-btn-comm { display: inline-flex; align-items: center; gap: 6px; padding: 9px 14px; border-radius: 10px; font-family: 'Nunito', sans-serif; font-size: 13px; font-weight: 700; cursor: pointer; border: 1.5px solid rgba(255,107,53,0.25); transition: all 0.3s cubic-bezier(0.34,1.56,0.64,1); background: rgba(255,107,53,0.06); color: #E53935; overflow: hidden; text-align: left; text-decoration: none; }\r\n#sva-section .sva-city-btn-comm:hover { background: linear-gradient(135deg, #FF6B35, #E53935); color: #fff; border-color: transparent; transform: translateY(-2px) scale(1.03); box-shadow: 0 6px 18px rgba(255,107,53,0.35); }\r\n#sva-section .sva-city-btn-comm .sva-pin { font-size: 14px; flex-shrink: 0; }\r\n\/* L1: City tabs *\/\r\n#sva-section .sva-l1tabs { display: flex; gap: 0; margin-bottom: 14px; background: #f4f6f9; border-radius: 14px; padding: 4px; border: 1.5px solid #e8e8e8; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }\r\n#sva-section .sva-l1tabs::-webkit-scrollbar { display: none; }\r\n#sva-section .sva-l1tab { flex: 1; min-width: max-content; display: inline-flex; align-items: center; justify-content: center; gap: 5px; padding: 9px 18px; border-radius: 10px; font-family: 'Barlow Condensed', sans-serif; font-size: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; cursor: pointer; border: none; background: transparent; color: #888; transition: all 0.3s cubic-bezier(0.34,1.56,0.64,1); white-space: nowrap; }\r\n#sva-section .sva-l1tab:hover { color: #555; }\r\n#sva-section .sva-l1tab.sva-l1tab-active { background: linear-gradient(135deg, #a8cf45, #0aa8df); color: #fff; box-shadow: 0 4px 14px rgba(10,168,223,0.25); }\r\n\/* L2: Service type tabs *\/\r\n#sva-section .sva-l2tabs { display: flex; gap: 6px; margin-bottom: 14px; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; justify-content: safe center; }\r\n#sva-section .sva-l2tabs::-webkit-scrollbar { display: none; }\r\n#sva-section .sva-l2tab { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 8px 16px; border-radius: 50px; font-family: 'Barlow Condensed', sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; cursor: pointer; border: 1.5px solid #e0e0e0; background: #fff; color: #999; transition: all 0.3s cubic-bezier(0.34,1.56,0.64,1); white-space: nowrap; }\r\n#sva-section .sva-l2tab:hover { border-color: #0aa8df; color: #0aa8df; }\r\n#sva-section .sva-l2tab.sva-l2-active-air,\r\n#sva-section .sva-l2tab.sva-l2-active-dryer { background: linear-gradient(135deg, #a8cf45, #0aa8df); color: #fff; border-color: transparent; box-shadow: 0 4px 14px rgba(10,168,223,0.25); }\r\n#sva-section .sva-l2tab.sva-l2-active-comm { background: linear-gradient(135deg, #FF6B35, #E53935); color: #fff; border-color: transparent; box-shadow: 0 4px 14px rgba(229,57,53,0.28); }\r\n\/* L3: Commercial sub-tabs *\/\r\n#sva-section .sva-l3tabs { display: flex; gap: 0; margin-bottom: 12px; margin-top: 2px; background: rgba(255,107,53,0.06); border-radius: 12px; padding: 3px; border: 1.5px solid rgba(255,107,53,0.18); overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }\r\n#sva-section .sva-l3tabs::-webkit-scrollbar { display: none; }\r\n#sva-section .sva-l3tab { flex: 1; min-width: max-content; display: inline-flex; align-items: center; justify-content: center; gap: 5px; padding: 7px 14px; border-radius: 9px; font-family: 'Barlow Condensed', sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; cursor: pointer; border: none; background: transparent; color: #bbb; transition: all 0.3s cubic-bezier(0.34,1.56,0.64,1); white-space: nowrap; }\r\n#sva-section .sva-l3tab:hover { color: #E53935; }\r\n#sva-section .sva-l3tab.sva-l3-active { background: linear-gradient(135deg, #FF6B35, #E53935); color: #fff; box-shadow: 0 3px 10px rgba(229,57,53,0.22); }\r\n\/* subpanels *\/\r\n#sva-section .sva-sp { display: none; }\r\n#sva-section .sva-sp.sva-sp-on { display: block; animation: svaPanelIn 0.3s ease; }\r\n\/* NOTICE *\/\r\n#sva-section .sva-notice { margin-top: 28px; background: linear-gradient(135deg, rgba(168,207,69,0.08), rgba(10,168,223,0.06)); border: 1.5px solid rgba(168,207,69,0.3); border-radius: 16px; padding: 20px 24px; display: flex; align-items: flex-start; gap: 14px; }\r\n#sva-section .sva-notice-icon { font-size: 22px; flex-shrink: 0; margin-top: 2px; animation: svaNoticeBounce 2s ease-in-out infinite; }\r\n@keyframes svaNoticeBounce { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }\r\n#sva-section .sva-notice-title { font-family: 'Barlow Condensed', sans-serif; font-size: 18px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.5px; color: #1a1a2e; margin-bottom: 4px; }\r\n#sva-section p.sva-notice-text { font-family: 'Nunito', sans-serif; font-size: 13px; color: #666; line-height: 1.6; }\r\n\/* RESPONSIVE *\/\r\n@media (max-width: 860px) {\r\n  #sva-section .sva-grid { grid-template-columns: minmax(0,1fr); }\r\n  #sva-section { padding: 50px 20px 80px; }\r\n}\r\n@media (max-width: 540px) {\r\n  #sva-section { padding: 40px 14px 60px; }\r\n  #sva-section .sva-card { padding: 24px 18px; }\r\n}\r\n<\/style>\r\n<section id=\"sva-section\" aria-label=\"Our Service Area\">\r\n  <div class=\"sva-dots\" id=\"svaDots\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"sva-inner\">\r\n    <header class=\"sva-header\" id=\"svaHeader\">\r\n      <div class=\"sva-eyebrow\">Our Coverage<\/div>\r\n      <h2 class=\"sva-title\">Our <span class=\"sva-hl\">Service<\/span> Area<\/h2>\r\n      <p class=\"sva-desc\">Become one of our many happy customers! Let the BlueGuard team handle all your air duct and dryer vent cleaning requirements across these service areas.<\/p>\r\n    <\/header>\r\n    <div class=\"sva-tabs\" role=\"tablist\">\r\n      <button class=\"sva-tab sva-tab-active\" id=\"svaTabOn\" role=\"tab\" aria-selected=\"true\" onclick=\"svaProv('on')\"><span class=\"sva-tab-icon\">\ud83c\udf41<\/span> Ontario<\/button>\r\n      <button class=\"sva-tab\" id=\"svaTabQc\" role=\"tab\" aria-selected=\"false\" onclick=\"svaProv('qc')\"><span class=\"sva-tab-icon\">\ud83c\udfd4\ufe0f<\/span> Quebec<\/button>\r\n    <\/div>\r\n    <!-- \u2550\u2550 ONTARIO \u2550\u2550 -->\r\n    <div class=\"sva-panel sva-panel-active\" id=\"svaPanelOn\">\r\n      <h3 class=\"sva-province-title\">Ontario<\/h3>\r\n      <div class=\"sva-map-wrap\">\r\n        <div class=\"sva-map-badge\"><span class=\"sva-map-dot\"><\/span> Live Service Area<\/div>\r\n        <div class=\"bgmap\" id=\"bgmap-on\"><\/div>\r\n      <\/div>\r\n      <p class=\"bgm-maphint\">\ud83d\udca1 Click any pin to see the area &amp; <b>open its service page<\/b> \u00b7 scroll\/pinch to zoom<\/p>\r\n      <div class=\"sva-grid\">\r\n        <!-- Major Cities -->\r\n        <div class=\"sva-card\">\r\n          <h4 class=\"sva-card-title\">Major Cities<\/h4>\r\n          <div class=\"sva-city-grid\">\r\n            <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-in-oshawa-whitby\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Oshawa<\/a>\r\n            <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-services-in-ottawa\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Ottawa<\/a>\r\n          <\/div>\r\n        <\/div>\r\n        <!-- Nearby Areas \u2014 3-level -->\r\n        <div class=\"sva-card\">\r\n          <h4 class=\"sva-card-title\">City Nearby Areas<\/h4>\r\n          <div class=\"sva-l1tabs\">\r\n            <button class=\"sva-l1tab sva-l1tab-active\" onclick=\"svaL1('on','oshawa',this)\">\ud83d\udccd Oshawa<\/button>\r\n            <button class=\"sva-l1tab\" onclick=\"svaL1('on','ottawa',this)\">\ud83d\udccd Ottawa<\/button>\r\n          <\/div>\r\n          <!-- OSHAWA -->\r\n          <div class=\"sva-sp sva-sp-on\" id=\"on-oshawa\">\r\n            <div class=\"sva-l2tabs\">\r\n              <button class=\"sva-l2tab sva-l2-active-air\" onclick=\"svaL2('on-oshawa','air',this)\">\ud83c\udf2c\ufe0f Air Duct<\/button>\r\n              <button class=\"sva-l2tab\" onclick=\"svaL2('on-oshawa','dryer',this)\">\ud83d\udca8 Dryer Vent<\/button>\r\n              <button class=\"sva-l2tab\" onclick=\"svaL2('on-oshawa','comm',this)\">\ud83c\udfe2 Commercial<\/button>\r\n            <\/div>\r\n            <div class=\"sva-sp sva-sp-on\" id=\"on-oshawa-air\">\r\n              <div class=\"sva-city-grid\">\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-in-oshawa-whitby\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Whitby<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-services-in-ajax\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Ajax<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/commercial-duct-cleaning-in-pickering\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Pickering<\/a>\r\n              <\/div>\r\n            <\/div>\r\n            <div class=\"sva-sp\" id=\"on-oshawa-dryer\">\r\n              <div class=\"sva-city-grid\">\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/commercial-dryer-vent-cleaning-in-whitby\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Whitby<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/commercial-dryer-vent-cleaning-in-ajax\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Ajax<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/commercial-dryer-vent-cleaning-in-pickering\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Pickering<\/a>\r\n              <\/div>\r\n            <\/div>\r\n            <div class=\"sva-sp\" id=\"on-oshawa-comm\">\r\n              <div class=\"sva-l3tabs\">\r\n                <button class=\"sva-l3tab sva-l3-active\" onclick=\"svaL3('on-oshawa',this,'air')\">\ud83c\udf2c\ufe0f Air Duct<\/button>\r\n                <button class=\"sva-l3tab\" onclick=\"svaL3('on-oshawa',this,'dv')\">\ud83d\udca8 Dryer Vent<\/button>\r\n              <\/div>\r\n              <div class=\"sva-sp sva-sp-on\" id=\"on-oshawa-comm-air\">\r\n                <div class=\"sva-city-grid\">\r\n                  <a class=\"sva-city-btn-comm\" href=\"https:\/\/blueguard.ca\/service-areas\/commercial-air-duct-cleaning-in-oshawa\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M17 11V3H7v4H3v14h8v-4h2v4h8V11h-4zM7 19H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5v-2h2v2zm4 4H9v-2h2v2zm0-4H9v-2h2v2zm0-4H9V5h2v2zm4 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V5h2v2zm4 12h-2v-2h2v2zm0-4h-2v-2h2v2z\"\/><\/svg><\/span> Oshawa<\/a>\r\n                  <a class=\"sva-city-btn-comm\" href=\"https:\/\/blueguard.ca\/service-areas\/commercial-duct-cleaning-in-ajax\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M17 11V3H7v4H3v14h8v-4h2v4h8V11h-4zM7 19H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5v-2h2v2zm4 4H9v-2h2v2zm0-4H9v-2h2v2zm0-4H9V5h2v2zm4 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V5h2v2zm4 12h-2v-2h2v2zm0-4h-2v-2h2v2z\"\/><\/svg><\/span> Ajax<\/a>\r\n                  <a class=\"sva-city-btn-comm\" href=\"https:\/\/blueguard.ca\/service-areas\/commercial-duct-cleaning-in-pickering\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M17 11V3H7v4H3v14h8v-4h2v4h8V11h-4zM7 19H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5v-2h2v2zm4 4H9v-2h2v2zm0-4H9v-2h2v2zm0-4H9V5h2v2zm4 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V5h2v2zm4 12h-2v-2h2v2zm0-4h-2v-2h2v2z\"\/><\/svg><\/span> Pickering<\/a>\r\n                  <a class=\"sva-city-btn-comm\" href=\"https:\/\/blueguard.ca\/service-areas\/commercial-duct-cleaning-in-whitby\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M17 11V3H7v4H3v14h8v-4h2v4h8V11h-4zM7 19H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5v-2h2v2zm4 4H9v-2h2v2zm0-4H9v-2h2v2zm0-4H9V5h2v2zm4 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V5h2v2zm4 12h-2v-2h2v2zm0-4h-2v-2h2v2z\"\/><\/svg><\/span> Whitby<\/a>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"sva-sp\" id=\"on-oshawa-comm-dv\">\r\n                <div class=\"sva-city-grid\">\r\n                  <a class=\"sva-city-btn-comm\" href=\"https:\/\/blueguard.ca\/service-areas\/commercial-dryer-vent-cleaning-in-ajax\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M17 11V3H7v4H3v14h8v-4h2v4h8V11h-4zM7 19H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5v-2h2v2zm4 4H9v-2h2v2zm0-4H9v-2h2v2zm0-4H9V5h2v2zm4 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V5h2v2zm4 12h-2v-2h2v2zm0-4h-2v-2h2v2z\"\/><\/svg><\/span> Ajax<\/a>\r\n                  <a class=\"sva-city-btn-comm\" href=\"https:\/\/blueguard.ca\/service-areas\/commercial-dryer-vent-cleaning-in-oshawa\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M17 11V3H7v4H3v14h8v-4h2v4h8V11h-4zM7 19H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5v-2h2v2zm4 4H9v-2h2v2zm0-4H9v-2h2v2zm0-4H9V5h2v2zm4 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V5h2v2zm4 12h-2v-2h2v2zm0-4h-2v-2h2v2z\"\/><\/svg><\/span> Oshawa<\/a>\r\n                  <a class=\"sva-city-btn-comm\" href=\"https:\/\/blueguard.ca\/service-areas\/commercial-dryer-vent-cleaning-in-pickering\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M17 11V3H7v4H3v14h8v-4h2v4h8V11h-4zM7 19H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5v-2h2v2zm4 4H9v-2h2v2zm0-4H9v-2h2v2zm0-4H9V5h2v2zm4 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V5h2v2zm4 12h-2v-2h2v2zm0-4h-2v-2h2v2z\"\/><\/svg><\/span> Pickering<\/a>\r\n                  <a class=\"sva-city-btn-comm\" href=\"https:\/\/blueguard.ca\/service-areas\/commercial-dryer-vent-cleaning-in-whitby\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M17 11V3H7v4H3v14h8v-4h2v4h8V11h-4zM7 19H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5v-2h2v2zm4 4H9v-2h2v2zm0-4H9v-2h2v2zm0-4H9V5h2v2zm4 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V5h2v2zm4 12h-2v-2h2v2zm0-4h-2v-2h2v2z\"\/><\/svg><\/span> Whitby<\/a>\r\n                <\/div>\r\n              <\/div>\r\n            <\/div>\r\n          <\/div><!-- \/on-oshawa -->\r\n          <!-- OTTAWA -->\r\n          <div class=\"sva-sp\" id=\"on-ottawa\">\r\n            <div class=\"sva-l2tabs\">\r\n              <button class=\"sva-l2tab sva-l2-active-air\" onclick=\"svaL2('on-ottawa','air',this)\">\ud83c\udf2c\ufe0f Air Duct<\/button>\r\n              <button class=\"sva-l2tab\" onclick=\"svaL2('on-ottawa','dryer',this)\">\ud83d\udca8 Dryer Vent<\/button>\r\n              <button class=\"sva-l2tab\" onclick=\"svaL2('on-ottawa','comm',this)\">\ud83c\udfe2 Commercial<\/button>\r\n            <\/div>\r\n            <div class=\"sva-sp sva-sp-on\" id=\"on-ottawa-air\">\r\n              <div class=\"sva-city-grid\">\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-service-in-nepean\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Nepean<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-service-stittsville\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Stittsville<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-service-in-barrhaven\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Barrhaven<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-service-in-kemptville\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Kemptville<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-in-kanata\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Kanata<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-service-orleans\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Orl\u00e9ans<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-service-in-manotick\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Manotick<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-services-in-carleton\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Carleton<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-in-almonte\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Almonte<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-services-in-arnprior\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Arnprior<\/a>\r\n              <\/div>\r\n            <\/div>\r\n            <div class=\"sva-sp\" id=\"on-ottawa-dryer\">\r\n              <div class=\"sva-city-grid\">\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/dryer-vent-cleaning-service-in-ottawa\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Ottawa<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/dryer-vent-cleaning-in-barrhaven\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Barrhaven<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/dryer-vent-cleaning-in-kanata\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Kanata<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/dryer-vent-cleaning-in-stittsville\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Stittsville<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/dryer-vent-cleaning-in-nepean\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Nepean<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/dryer-vent-cleaning-in-orleans\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Orl\u00e9ans<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/dryer-vent-cleaning-in-manotick\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Manotick<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/dryer-vent-cleaning-in-kemptville\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Kemptville<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/dryer-vent-cleaning-in-carleton\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Carleton<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/dryer-vent-cleaning-in-almonte\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Almonte<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/dryer-vent-cleaning-in-arnprior\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Arnprior<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/dryer-vent-cleaning-service-in-carp\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Carp<\/a>\r\n              <\/div>\r\n            <\/div>\r\n            <div class=\"sva-sp\" id=\"on-ottawa-comm\">\r\n              <div class=\"sva-l3tabs\">\r\n                <button class=\"sva-l3tab sva-l3-active\" onclick=\"svaL3('on-ottawa',this,'air')\">\ud83c\udf2c\ufe0f Air Duct<\/button>\r\n                <button class=\"sva-l3tab\" onclick=\"svaL3('on-ottawa',this,'dv')\">\ud83d\udca8 Dryer Vent<\/button>\r\n              <\/div>\r\n              <div class=\"sva-sp sva-sp-on\" id=\"on-ottawa-comm-air\">\r\n                <div class=\"sva-city-grid\">\r\n                  <a class=\"sva-city-btn-comm\" href=\"https:\/\/blueguard.ca\/service-areas\/commercial-air-duct-cleaning-in-ottawa\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M17 11V3H7v4H3v14h8v-4h2v4h8V11h-4zM7 19H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5v-2h2v2zm4 4H9v-2h2v2zm0-4H9v-2h2v2zm0-4H9V5h2v2zm4 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V5h2v2zm4 12h-2v-2h2v2zm0-4h-2v-2h2v2z\"\/><\/svg><\/span> Ottawa<\/a>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"sva-sp\" id=\"on-ottawa-comm-dv\">\r\n                <div class=\"sva-city-grid\">\r\n                  <a class=\"sva-city-btn-comm\" href=\"https:\/\/blueguard.ca\/service-areas\/dryer-vent-cleaning-service-in-ottawa\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M17 11V3H7v4H3v14h8v-4h2v4h8V11h-4zM7 19H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5v-2h2v2zm4 4H9v-2h2v2zm0-4H9v-2h2v2zm0-4H9V5h2v2zm4 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V5h2v2zm4 12h-2v-2h2v2zm0-4h-2v-2h2v2z\"\/><\/svg><\/span> Ottawa<\/a>\r\n                <\/div>\r\n              <\/div>\r\n            <\/div>\r\n          <\/div><!-- \/on-ottawa -->\r\n        <\/div><!-- \/nearby card -->\r\n      <\/div><!-- \/grid -->\r\n    <\/div><!-- \/Ontario -->\r\n    <!-- \u2550\u2550 QUEBEC \u2550\u2550 -->\r\n    <div class=\"sva-panel\" id=\"svaPanelQc\">\r\n      <h3 class=\"sva-province-title\">Quebec<\/h3>\r\n      <div class=\"sva-map-wrap\">\r\n        <div class=\"sva-map-badge\"><span class=\"sva-map-dot\"><\/span> Live Service Area<\/div>\r\n        <div class=\"bgmap\" id=\"bgmap-qc\"><\/div>\r\n      <\/div>\r\n      <p class=\"bgm-maphint\">\ud83d\udca1 Click any pin to see the area &amp; <b>open its service page<\/b> \u00b7 scroll\/pinch to zoom<\/p>\r\n      <div class=\"sva-grid\">\r\n        <!-- Major Cities -->\r\n        <div class=\"sva-card\">\r\n          <h4 class=\"sva-card-title\">Major Cities<\/h4>\r\n          <div class=\"sva-city-grid\">\r\n            <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-services-in-gatineau\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Gatineau<\/a>\r\n            <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-service-in-montreal\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Montreal<\/a>\r\n          <\/div>\r\n        <\/div>\r\n        <!-- Nearby Areas -->\r\n        <div class=\"sva-card\">\r\n          <h4 class=\"sva-card-title\">City Nearby Areas<\/h4>\r\n          <div class=\"sva-l1tabs\">\r\n            <button class=\"sva-l1tab sva-l1tab-active\" onclick=\"svaL1('qc','gatineau',this)\">\ud83d\udccd Gatineau<\/button>\r\n            <button class=\"sva-l1tab\" onclick=\"svaL1('qc','montreal',this)\">\ud83d\udccd Montreal<\/button>\r\n          <\/div>\r\n          <!-- GATINEAU -->\r\n          <div class=\"sva-sp sva-sp-on\" id=\"qc-gatineau\">\r\n            <div class=\"sva-l2tabs\">\r\n              <button class=\"sva-l2tab sva-l2-active-air\" onclick=\"svaL2('qc-gatineau','air',this)\">\ud83c\udf2c\ufe0f Air Duct<\/button>\r\n              <button class=\"sva-l2tab\" onclick=\"svaL2('qc-gatineau','dryer',this)\">\ud83d\udca8 Dryer Vent<\/button>\r\n            <\/div>\r\n            <div class=\"sva-sp sva-sp-on\" id=\"qc-gatineau-air\">\r\n              <div class=\"sva-city-grid\">\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-services-in-gatineau\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Gatineau<\/a>\r\n              <\/div>\r\n            <\/div>\r\n            <div class=\"sva-sp\" id=\"qc-gatineau-dryer\">\r\n              <div class=\"sva-city-grid\">\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/dryer-vent-cleaning-in-gatineau\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Gatineau<\/a>\r\n              <\/div>\r\n            <\/div>\r\n          <\/div><!-- \/qc-gatineau -->\r\n          <!-- MONTREAL -->\r\n          <div class=\"sva-sp\" id=\"qc-montreal\">\r\n            <div class=\"sva-l2tabs\">\r\n              <button class=\"sva-l2tab sva-l2-active-air\" onclick=\"svaL2('qc-montreal','air',this)\">\ud83c\udf2c\ufe0f Air Duct<\/button>\r\n              <button class=\"sva-l2tab\" onclick=\"svaL2('qc-montreal','dryer',this)\">\ud83d\udca8 Dryer Vent<\/button>\r\n            <\/div>\r\n            <div class=\"sva-sp sva-sp-on\" id=\"qc-montreal-air\">\r\n              <div class=\"sva-city-grid\">\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-service-in-montreal\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Montreal<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-service-in-laval\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Laval<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-service-in-longueuil\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Longueuil<\/a>\r\n              <\/div>\r\n            <\/div>\r\n            <div class=\"sva-sp\" id=\"qc-montreal-dryer\">\r\n              <div class=\"sva-city-grid\">\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/dryer-vent-cleaning-in-montreal\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Montreal<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/dryer-vent-cleaning-in-laval\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Laval<\/a>\r\n                <a class=\"sva-city-btn\" href=\"https:\/\/blueguard.ca\/service-areas\/dryer-vent-cleaning-in-longueuil\/\"><span class=\"sva-pin\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"14\" height=\"14\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z\"\/><\/svg><\/span> Longueuil<\/a>\r\n              <\/div>\r\n            <\/div>\r\n          <\/div><!-- \/qc-montreal -->\r\n        <\/div><!-- \/nearby card -->\r\n      <\/div><!-- \/grid -->\r\n    <\/div><!-- \/Quebec -->\r\n    <div class=\"sva-notice\">\r\n      <span class=\"sva-notice-icon\">\ud83d\udd0d<\/span>\r\n      <div>\r\n        <div class=\"sva-notice-title\">Don't see your area?<\/div>\r\n        <p class=\"sva-notice-text\">Please contact us if you don't see your city\/region in the list. We try our best to provide service in every region.<\/p>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n<script>\r\n\/* Floating dots *\/\r\n(function(){\r\n  var wrap=document.getElementById('svaDots'),colors=['#a8cf45','#0aa8df'];\r\n  for(var i=0;i<22;i++){\r\n    var d=document.createElement('div');d.className='sva-dot';\r\n    var sz=Math.random()*5+2,cl=colors[i%2];\r\n    d.style.cssText='left:'+(Math.random()*100)+'%;width:'+sz+'px;height:'+sz+'px;background:'+cl+';box-shadow:0 0 '+(sz*2)+'px '+cl+';animation-duration:'+(Math.random()*18+10)+'s;animation-delay:'+(Math.random()*16)+'s';\r\n    wrap.appendChild(d);\r\n  }\r\n  var hdr=document.getElementById('svaHeader');\r\n  function check(){if(hdr&&!hdr.classList.contains('sva-vis')&&hdr.getBoundingClientRect().top<(window.innerHeight||900)*0.93)hdr.classList.add('sva-vis');}\r\n  setTimeout(check,150);\r\n  window.addEventListener('scroll',check,{passive:true});\r\n})();\r\n\/* Province *\/\r\nfunction svaProv(w){\r\n  document.querySelectorAll('#sva-section .sva-tab').forEach(function(t){t.classList.remove('sva-tab-active');t.setAttribute('aria-selected','false');});\r\n  document.querySelectorAll('#sva-section .sva-panel').forEach(function(p){p.classList.remove('sva-panel-active');});\r\n  var t=document.getElementById(w==='on'?'svaTabOn':'svaTabQc');\r\n  var p=document.getElementById(w==='on'?'svaPanelOn':'svaPanelQc');\r\n  if(t){t.classList.add('sva-tab-active');t.setAttribute('aria-selected','true');}\r\n  if(p)p.classList.add('sva-panel-active');\r\n  if(window.bgRefresh)window.bgRefresh(w);\r\n}\r\n\/* L1: City tab *\/\r\nfunction svaL1(prov,city,btn){\r\n  var card=btn.closest('.sva-card');\r\n  card.querySelectorAll('.sva-l1tab').forEach(function(b){b.classList.remove('sva-l1tab-active');});\r\n  btn.classList.add('sva-l1tab-active');\r\n  card.querySelectorAll('.sva-l1tabs ~ .sva-sp').forEach(function(p){p.classList.remove('sva-sp-on');});\r\n  var target=document.getElementById(prov+'-'+city);\r\n  if(target)target.classList.add('sva-sp-on');\r\n}\r\n\/* L2: Service type *\/\r\nfunction svaL2(cityId,svc,btn){\r\n  btn.closest('.sva-l2tabs').querySelectorAll('.sva-l2tab').forEach(function(b){\r\n    b.classList.remove('sva-l2-active-air','sva-l2-active-dryer','sva-l2-active-comm');\r\n  });\r\n  btn.classList.add('sva-l2-active-'+svc);\r\n  var cityEl=document.getElementById(cityId);\r\n  cityEl.querySelectorAll('.sva-l2tabs ~ .sva-sp').forEach(function(p){p.classList.remove('sva-sp-on');});\r\n  var target=document.getElementById(cityId+'-'+svc);\r\n  if(target)target.classList.add('sva-sp-on');\r\n}\r\n\/* L3: Commercial sub *\/\r\nfunction svaL3(cityId,btn,sub){\r\n  btn.closest('.sva-l3tabs').querySelectorAll('.sva-l3tab').forEach(function(b){b.classList.remove('sva-l3-active');});\r\n  btn.classList.add('sva-l3-active');\r\n  var commEl=document.getElementById(cityId+'-comm');\r\n  commEl.querySelectorAll('.sva-l3tabs ~ .sva-sp').forEach(function(p){p.classList.remove('sva-sp-on');});\r\n  var target=document.getElementById(cityId+'-comm-'+sub);\r\n  if(target)target.classList.add('sva-sp-on');\r\n}\r\n<\/script>\r\n<style data-leaflet-inline>\r\n\/* required styles *\/\r\n\r\n.leaflet-pane,\r\n.leaflet-tile,\r\n.leaflet-marker-icon,\r\n.leaflet-marker-shadow,\r\n.leaflet-tile-container,\r\n.leaflet-pane > svg,\r\n.leaflet-pane > canvas,\r\n.leaflet-zoom-box,\r\n.leaflet-image-layer,\r\n.leaflet-layer {\r\n\tposition: absolute;\r\n\tleft: 0;\r\n\ttop: 0;\r\n\t}\r\n.leaflet-container {\r\n\toverflow: hidden;\r\n\t}\r\n.leaflet-tile,\r\n.leaflet-marker-icon,\r\n.leaflet-marker-shadow {\r\n\t-webkit-user-select: none;\r\n\t   -moz-user-select: none;\r\n\t        user-select: none;\r\n\t  -webkit-user-drag: none;\r\n\t}\r\n\/* Prevents IE11 from highlighting tiles in blue *\/\r\n.leaflet-tile::selection {\r\n\tbackground: transparent;\r\n}\r\n\/* Safari renders non-retina tile on retina better with this, but Chrome is worse *\/\r\n.leaflet-safari .leaflet-tile {\r\n\timage-rendering: -webkit-optimize-contrast;\r\n\t}\r\n\/* hack that prevents hw layers \"stretching\" when loading new tiles *\/\r\n.leaflet-safari .leaflet-tile-container {\r\n\twidth: 1600px;\r\n\theight: 1600px;\r\n\t-webkit-transform-origin: 0 0;\r\n\t}\r\n.leaflet-marker-icon,\r\n.leaflet-marker-shadow {\r\n\tdisplay: block;\r\n\t}\r\n\/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x *\/\r\n\/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles *\/\r\n.leaflet-container .leaflet-overlay-pane svg {\r\n\tmax-width: none !important;\r\n\tmax-height: none !important;\r\n\t}\r\n.leaflet-container .leaflet-marker-pane img,\r\n.leaflet-container .leaflet-shadow-pane img,\r\n.leaflet-container .leaflet-tile-pane img,\r\n.leaflet-container img.leaflet-image-layer,\r\n.leaflet-container .leaflet-tile {\r\n\tmax-width: none !important;\r\n\tmax-height: none !important;\r\n\twidth: auto;\r\n\tpadding: 0;\r\n\t}\r\n\r\n.leaflet-container img.leaflet-tile {\r\n\t\/* See: https:\/\/bugs.chromium.org\/p\/chromium\/issues\/detail?id=600120 *\/\r\n\tmix-blend-mode: plus-lighter;\r\n}\r\n\r\n.leaflet-container.leaflet-touch-zoom {\r\n\t-ms-touch-action: pan-x pan-y;\r\n\ttouch-action: pan-x pan-y;\r\n\t}\r\n.leaflet-container.leaflet-touch-drag {\r\n\t-ms-touch-action: pinch-zoom;\r\n\t\/* Fallback for FF which doesn't support pinch-zoom *\/\r\n\ttouch-action: none;\r\n\ttouch-action: pinch-zoom;\r\n}\r\n.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {\r\n\t-ms-touch-action: none;\r\n\ttouch-action: none;\r\n}\r\n.leaflet-container {\r\n\t-webkit-tap-highlight-color: transparent;\r\n}\r\n.leaflet-container a {\r\n\t-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);\r\n}\r\n.leaflet-tile {\r\n\tfilter: inherit;\r\n\tvisibility: hidden;\r\n\t}\r\n.leaflet-tile-loaded {\r\n\tvisibility: inherit;\r\n\t}\r\n.leaflet-zoom-box {\r\n\twidth: 0;\r\n\theight: 0;\r\n\t-moz-box-sizing: border-box;\r\n\t     box-sizing: border-box;\r\n\tz-index: 800;\r\n\t}\r\n\/* workaround for https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=888319 *\/\r\n.leaflet-overlay-pane svg {\r\n\t-moz-user-select: none;\r\n\t}\r\n\r\n.leaflet-pane         { z-index: 400; }\r\n\r\n.leaflet-tile-pane    { z-index: 200; }\r\n.leaflet-overlay-pane { z-index: 400; }\r\n.leaflet-shadow-pane  { z-index: 500; }\r\n.leaflet-marker-pane  { z-index: 600; }\r\n.leaflet-tooltip-pane   { z-index: 650; }\r\n.leaflet-popup-pane   { z-index: 700; }\r\n\r\n.leaflet-map-pane canvas { z-index: 100; }\r\n.leaflet-map-pane svg    { z-index: 200; }\r\n\r\n.leaflet-vml-shape {\r\n\twidth: 1px;\r\n\theight: 1px;\r\n\t}\r\n.lvml {\r\n\tbehavior: url(#default#VML);\r\n\tdisplay: inline-block;\r\n\tposition: absolute;\r\n\t}\r\n\r\n\r\n\/* control positioning *\/\r\n\r\n.leaflet-control {\r\n\tposition: relative;\r\n\tz-index: 800;\r\n\tpointer-events: visiblePainted; \/* IE 9-10 doesn't have auto *\/\r\n\tpointer-events: auto;\r\n\t}\r\n.leaflet-top,\r\n.leaflet-bottom {\r\n\tposition: absolute;\r\n\tz-index: 1000;\r\n\tpointer-events: none;\r\n\t}\r\n.leaflet-top {\r\n\ttop: 0;\r\n\t}\r\n.leaflet-right {\r\n\tright: 0;\r\n\t}\r\n.leaflet-bottom {\r\n\tbottom: 0;\r\n\t}\r\n.leaflet-left {\r\n\tleft: 0;\r\n\t}\r\n.leaflet-control {\r\n\tfloat: left;\r\n\tclear: both;\r\n\t}\r\n.leaflet-right .leaflet-control {\r\n\tfloat: right;\r\n\t}\r\n.leaflet-top .leaflet-control {\r\n\tmargin-top: 10px;\r\n\t}\r\n.leaflet-bottom .leaflet-control {\r\n\tmargin-bottom: 10px;\r\n\t}\r\n.leaflet-left .leaflet-control {\r\n\tmargin-left: 10px;\r\n\t}\r\n.leaflet-right .leaflet-control {\r\n\tmargin-right: 10px;\r\n\t}\r\n\r\n\r\n\/* zoom and fade animations *\/\r\n\r\n.leaflet-fade-anim .leaflet-popup {\r\n\topacity: 0;\r\n\t-webkit-transition: opacity 0.2s linear;\r\n\t   -moz-transition: opacity 0.2s linear;\r\n\t        transition: opacity 0.2s linear;\r\n\t}\r\n.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {\r\n\topacity: 1;\r\n\t}\r\n.leaflet-zoom-animated {\r\n\t-webkit-transform-origin: 0 0;\r\n\t    -ms-transform-origin: 0 0;\r\n\t        transform-origin: 0 0;\r\n\t}\r\nsvg.leaflet-zoom-animated {\r\n\twill-change: transform;\r\n}\r\n\r\n.leaflet-zoom-anim .leaflet-zoom-animated {\r\n\t-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);\r\n\t   -moz-transition:    -moz-transform 0.25s cubic-bezier(0,0,0.25,1);\r\n\t        transition:         transform 0.25s cubic-bezier(0,0,0.25,1);\r\n\t}\r\n.leaflet-zoom-anim .leaflet-tile,\r\n.leaflet-pan-anim .leaflet-tile {\r\n\t-webkit-transition: none;\r\n\t   -moz-transition: none;\r\n\t        transition: none;\r\n\t}\r\n\r\n.leaflet-zoom-anim .leaflet-zoom-hide {\r\n\tvisibility: hidden;\r\n\t}\r\n\r\n\r\n\/* cursors *\/\r\n\r\n.leaflet-interactive {\r\n\tcursor: pointer;\r\n\t}\r\n.leaflet-grab {\r\n\tcursor: -webkit-grab;\r\n\tcursor:    -moz-grab;\r\n\tcursor:         grab;\r\n\t}\r\n.leaflet-crosshair,\r\n.leaflet-crosshair .leaflet-interactive {\r\n\tcursor: crosshair;\r\n\t}\r\n.leaflet-popup-pane,\r\n.leaflet-control {\r\n\tcursor: auto;\r\n\t}\r\n.leaflet-dragging .leaflet-grab,\r\n.leaflet-dragging .leaflet-grab .leaflet-interactive,\r\n.leaflet-dragging .leaflet-marker-draggable {\r\n\tcursor: move;\r\n\tcursor: -webkit-grabbing;\r\n\tcursor:    -moz-grabbing;\r\n\tcursor:         grabbing;\r\n\t}\r\n\r\n\/* marker & overlays interactivity *\/\r\n.leaflet-marker-icon,\r\n.leaflet-marker-shadow,\r\n.leaflet-image-layer,\r\n.leaflet-pane > svg path,\r\n.leaflet-tile-container {\r\n\tpointer-events: none;\r\n\t}\r\n\r\n.leaflet-marker-icon.leaflet-interactive,\r\n.leaflet-image-layer.leaflet-interactive,\r\n.leaflet-pane > svg path.leaflet-interactive,\r\nsvg.leaflet-image-layer.leaflet-interactive path {\r\n\tpointer-events: visiblePainted; \/* IE 9-10 doesn't have auto *\/\r\n\tpointer-events: auto;\r\n\t}\r\n\r\n\/* visual tweaks *\/\r\n\r\n.leaflet-container {\r\n\tbackground: #ddd;\r\n\toutline-offset: 1px;\r\n\t}\r\n.leaflet-container a {\r\n\tcolor: #0078A8;\r\n\t}\r\n.leaflet-zoom-box {\r\n\tborder: 2px dotted #38f;\r\n\tbackground: rgba(255,255,255,0.5);\r\n\t}\r\n\r\n\r\n\/* general typography *\/\r\n.leaflet-container {\r\n\tfont-family: \"Helvetica Neue\", Arial, Helvetica, sans-serif;\r\n\tfont-size: 12px;\r\n\tfont-size: 0.75rem;\r\n\tline-height: 1.5;\r\n\t}\r\n\r\n\r\n\/* general toolbar styles *\/\r\n\r\n.leaflet-bar {\r\n\tbox-shadow: 0 1px 5px rgba(0,0,0,0.65);\r\n\tborder-radius: 4px;\r\n\t}\r\n.leaflet-bar a {\r\n\tbackground-color: #fff;\r\n\tborder-bottom: 1px solid #ccc;\r\n\twidth: 26px;\r\n\theight: 26px;\r\n\tline-height: 26px;\r\n\tdisplay: block;\r\n\ttext-align: center;\r\n\ttext-decoration: none;\r\n\tcolor: black;\r\n\t}\r\n.leaflet-bar a,\r\n.leaflet-control-layers-toggle {\r\n\tbackground-position: 50% 50%;\r\n\tbackground-repeat: no-repeat;\r\n\tdisplay: block;\r\n\t}\r\n.leaflet-bar a:hover,\r\n.leaflet-bar a:focus {\r\n\tbackground-color: #f4f4f4;\r\n\t}\r\n.leaflet-bar a:first-child {\r\n\tborder-top-left-radius: 4px;\r\n\tborder-top-right-radius: 4px;\r\n\t}\r\n.leaflet-bar a:last-child {\r\n\tborder-bottom-left-radius: 4px;\r\n\tborder-bottom-right-radius: 4px;\r\n\tborder-bottom: none;\r\n\t}\r\n.leaflet-bar a.leaflet-disabled {\r\n\tcursor: default;\r\n\tbackground-color: #f4f4f4;\r\n\tcolor: #bbb;\r\n\t}\r\n\r\n.leaflet-touch .leaflet-bar a {\r\n\twidth: 30px;\r\n\theight: 30px;\r\n\tline-height: 30px;\r\n\t}\r\n.leaflet-touch .leaflet-bar a:first-child {\r\n\tborder-top-left-radius: 2px;\r\n\tborder-top-right-radius: 2px;\r\n\t}\r\n.leaflet-touch .leaflet-bar a:last-child {\r\n\tborder-bottom-left-radius: 2px;\r\n\tborder-bottom-right-radius: 2px;\r\n\t}\r\n\r\n\/* zoom control *\/\r\n\r\n.leaflet-control-zoom-in,\r\n.leaflet-control-zoom-out {\r\n\tfont: bold 18px 'Lucida Console', Monaco, monospace;\r\n\ttext-indent: 1px;\r\n\t}\r\n\r\n.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out  {\r\n\tfont-size: 22px;\r\n\t}\r\n\r\n\r\n\/* layers control *\/\r\n\r\n.leaflet-control-layers {\r\n\tbox-shadow: 0 1px 5px rgba(0,0,0,0.4);\r\n\tbackground: #fff;\r\n\tborder-radius: 5px;\r\n\t}\r\n.leaflet-control-layers-toggle {\r\n\tbackground-image: none;\r\n\twidth: 36px;\r\n\theight: 36px;\r\n\t}\r\n.leaflet-retina .leaflet-control-layers-toggle {\r\n\tbackground-image: none;\r\n\tbackground-size: 26px 26px;\r\n\t}\r\n.leaflet-touch .leaflet-control-layers-toggle {\r\n\twidth: 44px;\r\n\theight: 44px;\r\n\t}\r\n.leaflet-control-layers .leaflet-control-layers-list,\r\n.leaflet-control-layers-expanded .leaflet-control-layers-toggle {\r\n\tdisplay: none;\r\n\t}\r\n.leaflet-control-layers-expanded .leaflet-control-layers-list {\r\n\tdisplay: block;\r\n\tposition: relative;\r\n\t}\r\n.leaflet-control-layers-expanded {\r\n\tpadding: 6px 10px 6px 6px;\r\n\tcolor: #333;\r\n\tbackground: #fff;\r\n\t}\r\n.leaflet-control-layers-scrollbar {\r\n\toverflow-y: scroll;\r\n\toverflow-x: hidden;\r\n\tpadding-right: 5px;\r\n\t}\r\n.leaflet-control-layers-selector {\r\n\tmargin-top: 2px;\r\n\tposition: relative;\r\n\ttop: 1px;\r\n\t}\r\n.leaflet-control-layers label {\r\n\tdisplay: block;\r\n\tfont-size: 13px;\r\n\tfont-size: 1.08333em;\r\n\t}\r\n.leaflet-control-layers-separator {\r\n\theight: 0;\r\n\tborder-top: 1px solid #ddd;\r\n\tmargin: 5px -10px 5px -6px;\r\n\t}\r\n\r\n\/* Default icon URLs *\/\r\n.leaflet-default-icon-path { \/* used only in path-guessing heuristic, see L.Icon.Default *\/\r\n\tbackground-image: none;\r\n\t}\r\n\r\n\r\n\/* attribution and scale controls *\/\r\n\r\n.leaflet-container .leaflet-control-attribution {\r\n\tbackground: #fff;\r\n\tbackground: rgba(255, 255, 255, 0.8);\r\n\tmargin: 0;\r\n\t}\r\n.leaflet-control-attribution,\r\n.leaflet-control-scale-line {\r\n\tpadding: 0 5px;\r\n\tcolor: #333;\r\n\tline-height: 1.4;\r\n\t}\r\n.leaflet-control-attribution a {\r\n\ttext-decoration: none;\r\n\t}\r\n.leaflet-control-attribution a:hover,\r\n.leaflet-control-attribution a:focus {\r\n\ttext-decoration: underline;\r\n\t}\r\n.leaflet-attribution-flag {\r\n\tdisplay: inline !important;\r\n\tvertical-align: baseline !important;\r\n\twidth: 1em;\r\n\theight: 0.6669em;\r\n\t}\r\n.leaflet-left .leaflet-control-scale {\r\n\tmargin-left: 5px;\r\n\t}\r\n.leaflet-bottom .leaflet-control-scale {\r\n\tmargin-bottom: 5px;\r\n\t}\r\n.leaflet-control-scale-line {\r\n\tborder: 2px solid #777;\r\n\tborder-top: none;\r\n\tline-height: 1.1;\r\n\tpadding: 2px 5px 1px;\r\n\twhite-space: nowrap;\r\n\t-moz-box-sizing: border-box;\r\n\t     box-sizing: border-box;\r\n\tbackground: rgba(255, 255, 255, 0.8);\r\n\ttext-shadow: 1px 1px #fff;\r\n\t}\r\n.leaflet-control-scale-line:not(:first-child) {\r\n\tborder-top: 2px solid #777;\r\n\tborder-bottom: none;\r\n\tmargin-top: -2px;\r\n\t}\r\n.leaflet-control-scale-line:not(:first-child):not(:last-child) {\r\n\tborder-bottom: 2px solid #777;\r\n\t}\r\n\r\n.leaflet-touch .leaflet-control-attribution,\r\n.leaflet-touch .leaflet-control-layers,\r\n.leaflet-touch .leaflet-bar {\r\n\tbox-shadow: none;\r\n\t}\r\n.leaflet-touch .leaflet-control-layers,\r\n.leaflet-touch .leaflet-bar {\r\n\tborder: 2px solid rgba(0,0,0,0.2);\r\n\tbackground-clip: padding-box;\r\n\t}\r\n\r\n\r\n\/* popup *\/\r\n\r\n.leaflet-popup {\r\n\tposition: absolute;\r\n\ttext-align: center;\r\n\tmargin-bottom: 20px;\r\n\t}\r\n.leaflet-popup-content-wrapper {\r\n\tpadding: 1px;\r\n\ttext-align: left;\r\n\tborder-radius: 12px;\r\n\t}\r\n.leaflet-popup-content {\r\n\tmargin: 13px 24px 13px 20px;\r\n\tline-height: 1.3;\r\n\tfont-size: 13px;\r\n\tfont-size: 1.08333em;\r\n\tmin-height: 1px;\r\n\t}\r\n.leaflet-popup-content p {\r\n\tmargin: 17px 0;\r\n\tmargin: 1.3em 0;\r\n\t}\r\n.leaflet-popup-tip-container {\r\n\twidth: 40px;\r\n\theight: 20px;\r\n\tposition: absolute;\r\n\tleft: 50%;\r\n\tmargin-top: -1px;\r\n\tmargin-left: -20px;\r\n\toverflow: hidden;\r\n\tpointer-events: none;\r\n\t}\r\n.leaflet-popup-tip {\r\n\twidth: 17px;\r\n\theight: 17px;\r\n\tpadding: 1px;\r\n\r\n\tmargin: -10px auto 0;\r\n\tpointer-events: auto;\r\n\r\n\t-webkit-transform: rotate(45deg);\r\n\t   -moz-transform: rotate(45deg);\r\n\t    -ms-transform: rotate(45deg);\r\n\t        transform: rotate(45deg);\r\n\t}\r\n.leaflet-popup-content-wrapper,\r\n.leaflet-popup-tip {\r\n\tbackground: white;\r\n\tcolor: #333;\r\n\tbox-shadow: 0 3px 14px rgba(0,0,0,0.4);\r\n\t}\r\n.leaflet-container a.leaflet-popup-close-button {\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tright: 0;\r\n\tborder: none;\r\n\ttext-align: center;\r\n\twidth: 24px;\r\n\theight: 24px;\r\n\tfont: 16px\/24px Tahoma, Verdana, sans-serif;\r\n\tcolor: #757575;\r\n\ttext-decoration: none;\r\n\tbackground: transparent;\r\n\t}\r\n.leaflet-container a.leaflet-popup-close-button:hover,\r\n.leaflet-container a.leaflet-popup-close-button:focus {\r\n\tcolor: #585858;\r\n\t}\r\n.leaflet-popup-scrolled {\r\n\toverflow: auto;\r\n\t}\r\n\r\n.leaflet-oldie .leaflet-popup-content-wrapper {\r\n\t-ms-zoom: 1;\r\n\t}\r\n.leaflet-oldie .leaflet-popup-tip {\r\n\twidth: 24px;\r\n\tmargin: 0 auto;\r\n\r\n\t-ms-filter: \"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)\";\r\n\tfilter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);\r\n\t}\r\n\r\n.leaflet-oldie .leaflet-control-zoom,\r\n.leaflet-oldie .leaflet-control-layers,\r\n.leaflet-oldie .leaflet-popup-content-wrapper,\r\n.leaflet-oldie .leaflet-popup-tip {\r\n\tborder: 1px solid #999;\r\n\t}\r\n\r\n\r\n\/* div icon *\/\r\n\r\n.leaflet-div-icon {\r\n\tbackground: #fff;\r\n\tborder: 1px solid #666;\r\n\t}\r\n\r\n\r\n\/* Tooltip *\/\r\n\/* Base styles for the element that has a tooltip *\/\r\n.leaflet-tooltip {\r\n\tposition: absolute;\r\n\tpadding: 6px;\r\n\tbackground-color: #fff;\r\n\tborder: 1px solid #fff;\r\n\tborder-radius: 3px;\r\n\tcolor: #222;\r\n\twhite-space: nowrap;\r\n\t-webkit-user-select: none;\r\n\t-moz-user-select: none;\r\n\t-ms-user-select: none;\r\n\tuser-select: none;\r\n\tpointer-events: none;\r\n\tbox-shadow: 0 1px 3px rgba(0,0,0,0.4);\r\n\t}\r\n.leaflet-tooltip.leaflet-interactive {\r\n\tcursor: pointer;\r\n\tpointer-events: auto;\r\n\t}\r\n.leaflet-tooltip-top:before,\r\n.leaflet-tooltip-bottom:before,\r\n.leaflet-tooltip-left:before,\r\n.leaflet-tooltip-right:before {\r\n\tposition: absolute;\r\n\tpointer-events: none;\r\n\tborder: 6px solid transparent;\r\n\tbackground: transparent;\r\n\tcontent: \"\";\r\n\t}\r\n\r\n\/* Directions *\/\r\n\r\n.leaflet-tooltip-bottom {\r\n\tmargin-top: 6px;\r\n}\r\n.leaflet-tooltip-top {\r\n\tmargin-top: -6px;\r\n}\r\n.leaflet-tooltip-bottom:before,\r\n.leaflet-tooltip-top:before {\r\n\tleft: 50%;\r\n\tmargin-left: -6px;\r\n\t}\r\n.leaflet-tooltip-top:before {\r\n\tbottom: 0;\r\n\tmargin-bottom: -12px;\r\n\tborder-top-color: #fff;\r\n\t}\r\n.leaflet-tooltip-bottom:before {\r\n\ttop: 0;\r\n\tmargin-top: -12px;\r\n\tmargin-left: -6px;\r\n\tborder-bottom-color: #fff;\r\n\t}\r\n.leaflet-tooltip-left {\r\n\tmargin-left: -6px;\r\n}\r\n.leaflet-tooltip-right {\r\n\tmargin-left: 6px;\r\n}\r\n.leaflet-tooltip-left:before,\r\n.leaflet-tooltip-right:before {\r\n\ttop: 50%;\r\n\tmargin-top: -6px;\r\n\t}\r\n.leaflet-tooltip-left:before {\r\n\tright: 0;\r\n\tmargin-right: -12px;\r\n\tborder-left-color: #fff;\r\n\t}\r\n.leaflet-tooltip-right:before {\r\n\tleft: 0;\r\n\tmargin-left: -12px;\r\n\tborder-right-color: #fff;\r\n\t}\r\n\r\n\/* Printing *\/\r\n\r\n@media print {\r\n\t\/* Prevent printers from removing background-images of controls. *\/\r\n\t.leaflet-control {\r\n\t\t-webkit-print-color-adjust: exact;\r\n\t\tprint-color-adjust: exact;\r\n\t\t}\r\n\t}\r\n\r\n<\/style>\r\n<script data-leaflet-inline>\r\n\/* @preserve\r\n * Leaflet 1.9.4, a JS library for interactive maps. https:\/\/leafletjs.com\r\n * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade\r\n *\/\r\n!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],e):e((t=\"undefined\"!=typeof globalThis?globalThis:t||self).leaflet={})}(this,function(t){\"use strict\";function l(t){for(var e,i,n=1,o=arguments.length;n<o;n++)for(e in i=arguments[n])t[e]=i[e];return t}var R=Object.create||function(t){return N.prototype=t,new N};function N(){}function a(t,e){var i,n=Array.prototype.slice;return t.bind?t.bind.apply(t,n.call(arguments,1)):(i=n.call(arguments,2),function(){return t.apply(e,i.length?i.concat(n.call(arguments)):arguments)})}var D=0;function h(t){return\"_leaflet_id\"in t||(t._leaflet_id=++D),t._leaflet_id}function j(t,e,i){var n,o,s=function(){n=!1,o&&(r.apply(i,o),o=!1)},r=function(){n?o=arguments:(t.apply(i,arguments),setTimeout(s,e),n=!0)};return r}function H(t,e,i){var n=e[1],e=e[0],o=n-e;return t===n&&i?t:((t-e)%o+o)%o+e}function u(){return!1}function i(t,e){return!1===e?t:(e=Math.pow(10,void 0===e?6:e),Math.round(t*e)\/e)}function W(t){return t.trim?t.trim():t.replace(\/^\\s+|\\s+$\/g,\"\")}function F(t){return W(t).split(\/\\s+\/)}function c(t,e){for(var i in Object.prototype.hasOwnProperty.call(t,\"options\")||(t.options=t.options?R(t.options):{}),e)t.options[i]=e[i];return t.options}function U(t,e,i){var n,o=[];for(n in t)o.push(encodeURIComponent(i?n.toUpperCase():n)+\"=\"+encodeURIComponent(t[n]));return(e&&-1!==e.indexOf(\"?\")?\"&\":\"?\")+o.join(\"&\")}var V=\/\\{ *([\\w_ -]+) *\\}\/g;function q(t,i){return t.replace(V,function(t,e){e=i[e];if(void 0===e)throw new Error(\"No value provided for variable \"+t);return e=\"function\"==typeof e?e(i):e})}var d=Array.isArray||function(t){return\"[object Array]\"===Object.prototype.toString.call(t)};function G(t,e){for(var i=0;i<t.length;i++)if(t[i]===e)return i;return-1}var K=\"data:image\/gif;base64,R0lGODlhAQABAAD\/ACwAAAAAAQABAAACADs=\";function Y(t){return window[\"webkit\"+t]||window[\"moz\"+t]||window[\"ms\"+t]}var X=0;function J(t){var e=+new Date,i=Math.max(0,16-(e-X));return X=e+i,window.setTimeout(t,i)}var $=window.requestAnimationFrame||Y(\"RequestAnimationFrame\")||J,Q=window.cancelAnimationFrame||Y(\"CancelAnimationFrame\")||Y(\"CancelRequestAnimationFrame\")||function(t){window.clearTimeout(t)};function x(t,e,i){if(!i||$!==J)return $.call(window,a(t,e));t.call(e)}function r(t){t&&Q.call(window,t)}var tt={__proto__:null,extend:l,create:R,bind:a,get lastId(){return D},stamp:h,throttle:j,wrapNum:H,falseFn:u,formatNum:i,trim:W,splitWords:F,setOptions:c,getParamString:U,template:q,isArray:d,indexOf:G,emptyImageUrl:K,requestFn:$,cancelFn:Q,requestAnimFrame:x,cancelAnimFrame:r};function et(){}et.extend=function(t){function e(){c(this),this.initialize&&this.initialize.apply(this,arguments),this.callInitHooks()}var i,n=e.__super__=this.prototype,o=R(n);for(i in(o.constructor=e).prototype=o,this)Object.prototype.hasOwnProperty.call(this,i)&&\"prototype\"!==i&&\"__super__\"!==i&&(e[i]=this[i]);if(t.statics&&l(e,t.statics),t.includes){var s=t.includes;if(\"undefined\"!=typeof L&&L&&L.Mixin){s=d(s)?s:[s];for(var r=0;r<s.length;r++)s[r]===L.Mixin.Events&&console.warn(\"Deprecated include of L.Mixin.Events: this property will be removed in future releases, please inherit from L.Evented instead.\",(new Error).stack)}l.apply(null,[o].concat(t.includes))}return l(o,t),delete o.statics,delete o.includes,o.options&&(o.options=n.options?R(n.options):{},l(o.options,t.options)),o._initHooks=[],o.callInitHooks=function(){if(!this._initHooksCalled){n.callInitHooks&&n.callInitHooks.call(this),this._initHooksCalled=!0;for(var t=0,e=o._initHooks.length;t<e;t++)o._initHooks[t].call(this)}},e},et.include=function(t){var e=this.prototype.options;return l(this.prototype,t),t.options&&(this.prototype.options=e,this.mergeOptions(t.options)),this},et.mergeOptions=function(t){return l(this.prototype.options,t),this},et.addInitHook=function(t){var e=Array.prototype.slice.call(arguments,1),i=\"function\"==typeof t?t:function(){this[t].apply(this,e)};return this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(i),this};var e={on:function(t,e,i){if(\"object\"==typeof t)for(var n in t)this._on(n,t[n],e);else for(var o=0,s=(t=F(t)).length;o<s;o++)this._on(t[o],e,i);return this},off:function(t,e,i){if(arguments.length)if(\"object\"==typeof t)for(var n in t)this._off(n,t[n],e);else{t=F(t);for(var o=1===arguments.length,s=0,r=t.length;s<r;s++)o?this._off(t[s]):this._off(t[s],e,i)}else delete this._events;return this},_on:function(t,e,i,n){\"function\"!=typeof e?console.warn(\"wrong listener type: \"+typeof e):!1===this._listens(t,e,i)&&(e={fn:e,ctx:i=i===this?void 0:i},n&&(e.once=!0),this._events=this._events||{},this._events[t]=this._events[t]||[],this._events[t].push(e))},_off:function(t,e,i){var n,o,s;if(this._events&&(n=this._events[t]))if(1===arguments.length){if(this._firingCount)for(o=0,s=n.length;o<s;o++)n[o].fn=u;delete this._events[t]}else\"function\"!=typeof e?console.warn(\"wrong listener type: \"+typeof e):!1!==(e=this._listens(t,e,i))&&(i=n[e],this._firingCount&&(i.fn=u,this._events[t]=n=n.slice()),n.splice(e,1))},fire:function(t,e,i){if(this.listens(t,i)){var n=l({},e,{type:t,target:this,sourceTarget:e&&e.sourceTarget||this});if(this._events){var o=this._events[t];if(o){this._firingCount=this._firingCount+1||1;for(var s=0,r=o.length;s<r;s++){var a=o[s],h=a.fn;a.once&&this.off(t,h,a.ctx),h.call(a.ctx||this,n)}this._firingCount--}}i&&this._propagateEvent(n)}return this},listens:function(t,e,i,n){\"string\"!=typeof t&&console.warn('\"string\" type argument expected');var o=e,s=(\"function\"!=typeof e&&(n=!!e,i=o=void 0),this._events&&this._events[t]);if(s&&s.length&&!1!==this._listens(t,o,i))return!0;if(n)for(var r in this._eventParents)if(this._eventParents[r].listens(t,e,i,n))return!0;return!1},_listens:function(t,e,i){if(this._events){var n=this._events[t]||[];if(!e)return!!n.length;i===this&&(i=void 0);for(var o=0,s=n.length;o<s;o++)if(n[o].fn===e&&n[o].ctx===i)return o}return!1},once:function(t,e,i){if(\"object\"==typeof t)for(var n in t)this._on(n,t[n],e,!0);else for(var o=0,s=(t=F(t)).length;o<s;o++)this._on(t[o],e,i,!0);return this},addEventParent:function(t){return this._eventParents=this._eventParents||{},this._eventParents[h(t)]=t,this},removeEventParent:function(t){return this._eventParents&&delete this._eventParents[h(t)],this},_propagateEvent:function(t){for(var e in this._eventParents)this._eventParents[e].fire(t.type,l({layer:t.target,propagatedFrom:t.target},t),!0)}},it=(e.addEventListener=e.on,e.removeEventListener=e.clearAllEventListeners=e.off,e.addOneTimeEventListener=e.once,e.fireEvent=e.fire,e.hasEventListeners=e.listens,et.extend(e));function p(t,e,i){this.x=i?Math.round(t):t,this.y=i?Math.round(e):e}var nt=Math.trunc||function(t){return 0<t?Math.floor(t):Math.ceil(t)};function m(t,e,i){return t instanceof p?t:d(t)?new p(t[0],t[1]):null==t?t:\"object\"==typeof t&&\"x\"in t&&\"y\"in t?new p(t.x,t.y):new p(t,e,i)}function f(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n<o;n++)this.extend(i[n])}function _(t,e){return!t||t instanceof f?t:new f(t,e)}function s(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n<o;n++)this.extend(i[n])}function g(t,e){return t instanceof s?t:new s(t,e)}function v(t,e,i){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid LatLng object: (\"+t+\", \"+e+\")\");this.lat=+t,this.lng=+e,void 0!==i&&(this.alt=+i)}function w(t,e,i){return t instanceof v?t:d(t)&&\"object\"!=typeof t[0]?3===t.length?new v(t[0],t[1],t[2]):2===t.length?new v(t[0],t[1]):null:null==t?t:\"object\"==typeof t&&\"lat\"in t?new v(t.lat,\"lng\"in t?t.lng:t.lon,t.alt):void 0===e?null:new v(t,e,i)}p.prototype={clone:function(){return new p(this.x,this.y)},add:function(t){return this.clone()._add(m(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(m(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},scaleBy:function(t){return new p(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new p(this.x\/t.x,this.y\/t.y)},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},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},trunc:function(){return this.clone()._trunc()},_trunc:function(){return this.x=nt(this.x),this.y=nt(this.y),this},distanceTo:function(t){var e=(t=m(t)).x-this.x,t=t.y-this.y;return Math.sqrt(e*e+t*t)},equals:function(t){return(t=m(t)).x===this.x&&t.y===this.y},contains:function(t){return t=m(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return\"Point(\"+i(this.x)+\", \"+i(this.y)+\")\"}},f.prototype={extend:function(t){var e,i;if(t){if(t instanceof p||\"number\"==typeof t[0]||\"x\"in t)e=i=m(t);else if(e=(t=_(t)).min,i=t.max,!e||!i)return this;this.min||this.max?(this.min.x=Math.min(e.x,this.min.x),this.max.x=Math.max(i.x,this.max.x),this.min.y=Math.min(e.y,this.min.y),this.max.y=Math.max(i.y,this.max.y)):(this.min=e.clone(),this.max=i.clone())}return this},getCenter:function(t){return m((this.min.x+this.max.x)\/2,(this.min.y+this.max.y)\/2,t)},getBottomLeft:function(){return m(this.min.x,this.max.y)},getTopRight:function(){return m(this.max.x,this.min.y)},getTopLeft:function(){return this.min},getBottomRight:function(){return this.max},getSize:function(){return this.max.subtract(this.min)},contains:function(t){var e,i;return(t=(\"number\"==typeof t[0]||t instanceof p?m:_)(t))instanceof f?(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=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>=e.x&&n.x<=i.x,t=t.y>=e.y&&n.y<=i.y;return o&&t},overlaps:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>e.x&&n.x<i.x,t=t.y>e.y&&n.y<i.y;return o&&t},isValid:function(){return!(!this.min||!this.max)},pad:function(t){var e=this.min,i=this.max,n=Math.abs(e.x-i.x)*t,t=Math.abs(e.y-i.y)*t;return _(m(e.x-n,e.y-t),m(i.x+n,i.y+t))},equals:function(t){return!!t&&(t=_(t),this.min.equals(t.getTopLeft())&&this.max.equals(t.getBottomRight()))}},s.prototype={extend:function(t){var e,i,n=this._southWest,o=this._northEast;if(t instanceof v)i=e=t;else{if(!(t instanceof s))return t?this.extend(w(t)||g(t)):this;if(e=t._southWest,i=t._northEast,!e||!i)return this}return n||o?(n.lat=Math.min(e.lat,n.lat),n.lng=Math.min(e.lng,n.lng),o.lat=Math.max(i.lat,o.lat),o.lng=Math.max(i.lng,o.lng)):(this._southWest=new v(e.lat,e.lng),this._northEast=new v(i.lat,i.lng)),this},pad:function(t){var e=this._southWest,i=this._northEast,n=Math.abs(e.lat-i.lat)*t,t=Math.abs(e.lng-i.lng)*t;return new s(new v(e.lat-n,e.lng-t),new v(i.lat+n,i.lng+t))},getCenter:function(){return new v((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 v(this.getNorth(),this.getWest())},getSouthEast:function(){return new v(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 v||\"lat\"in t?w:g)(t);var e,i,n=this._southWest,o=this._northEast;return t instanceof s?(e=t.getSouthWest(),i=t.getNorthEast()):e=i=t,e.lat>=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>=e.lat&&n.lat<=i.lat,t=t.lng>=e.lng&&n.lng<=i.lng;return o&&t},overlaps:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>e.lat&&n.lat<i.lat,t=t.lng>e.lng&&n.lng<i.lng;return o&&t},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(\",\")},equals:function(t,e){return!!t&&(t=g(t),this._southWest.equals(t.getSouthWest(),e)&&this._northEast.equals(t.getNorthEast(),e))},isValid:function(){return!(!this._southWest||!this._northEast)}};var ot={latLngToPoint:function(t,e){t=this.projection.project(t),e=this.scale(e);return this.transformation._transform(t,e)},pointToLatLng:function(t,e){e=this.scale(e),t=this.transformation.untransform(t,e);return this.projection.unproject(t)},project:function(t){return this.projection.project(t)},unproject:function(t){return this.projection.unproject(t)},scale:function(t){return 256*Math.pow(2,t)},zoom:function(t){return Math.log(t\/256)\/Math.LN2},getProjectedBounds:function(t){var e;return this.infinite?null:(e=this.projection.bounds,t=this.scale(t),new f(this.transformation.transform(e.min,t),this.transformation.transform(e.max,t)))},infinite:!(v.prototype={equals:function(t,e){return!!t&&(t=w(t),Math.max(Math.abs(this.lat-t.lat),Math.abs(this.lng-t.lng))<=(void 0===e?1e-9:e))},toString:function(t){return\"LatLng(\"+i(this.lat,t)+\", \"+i(this.lng,t)+\")\"},distanceTo:function(t){return st.distance(this,w(t))},wrap:function(){return st.wrapLatLng(this)},toBounds:function(t){var t=180*t\/40075017,e=t\/Math.cos(Math.PI\/180*this.lat);return g([this.lat-t,this.lng-e],[this.lat+t,this.lng+e])},clone:function(){return new v(this.lat,this.lng,this.alt)}}),wrapLatLng:function(t){var e=this.wrapLng?H(t.lng,this.wrapLng,!0):t.lng;return new v(this.wrapLat?H(t.lat,this.wrapLat,!0):t.lat,e,t.alt)},wrapLatLngBounds:function(t){var e=t.getCenter(),i=this.wrapLatLng(e),n=e.lat-i.lat,e=e.lng-i.lng;return 0==n&&0==e?t:(i=t.getSouthWest(),t=t.getNorthEast(),new s(new v(i.lat-n,i.lng-e),new v(t.lat-n,t.lng-e)))}},st=l({},ot,{wrapLng:[-180,180],R:6371e3,distance:function(t,e){var i=Math.PI\/180,n=t.lat*i,o=e.lat*i,s=Math.sin((e.lat-t.lat)*i\/2),e=Math.sin((e.lng-t.lng)*i\/2),t=s*s+Math.cos(n)*Math.cos(o)*e*e,i=2*Math.atan2(Math.sqrt(t),Math.sqrt(1-t));return this.R*i}}),rt=6378137,rt={R:rt,MAX_LATITUDE:85.0511287798,project:function(t){var e=Math.PI\/180,i=this.MAX_LATITUDE,i=Math.max(Math.min(i,t.lat),-i),i=Math.sin(i*e);return new p(this.R*t.lng*e,this.R*Math.log((1+i)\/(1-i))\/2)},unproject:function(t){var e=180\/Math.PI;return new v((2*Math.atan(Math.exp(t.y\/this.R))-Math.PI\/2)*e,t.x*e\/this.R)},bounds:new f([-(rt=rt*Math.PI),-rt],[rt,rt])};function at(t,e,i,n){d(t)?(this._a=t[0],this._b=t[1],this._c=t[2],this._d=t[3]):(this._a=t,this._b=e,this._c=i,this._d=n)}function ht(t,e,i,n){return new at(t,e,i,n)}at.prototype={transform:function(t,e){return this._transform(t.clone(),e)},_transform:function(t,e){return t.x=(e=e||1)*(this._a*t.x+this._b),t.y=e*(this._c*t.y+this._d),t},untransform:function(t,e){return new p((t.x\/(e=e||1)-this._b)\/this._a,(t.y\/e-this._d)\/this._c)}};var lt=l({},st,{code:\"EPSG:3857\",projection:rt,transformation:ht(lt=.5\/(Math.PI*rt.R),.5,-lt,.5)}),ut=l({},lt,{code:\"EPSG:900913\"});function ct(t){return document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\",t)}function dt(t,e){for(var i,n,o,s,r=\"\",a=0,h=t.length;a<h;a++){for(i=0,n=(o=t[a]).length;i<n;i++)r+=(i?\"L\":\"M\")+(s=o[i]).x+\" \"+s.y;r+=e?b.svg?\"z\":\"x\":\"\"}return r||\"M0 0\"}var _t=document.documentElement.style,pt=\"ActiveXObject\"in window,mt=pt&&!document.addEventListener,n=\"msLaunchUri\"in navigator&&!(\"documentMode\"in document),ft=y(\"webkit\"),gt=y(\"android\"),vt=y(\"android 2\")||y(\"android 3\"),yt=parseInt(\/WebKit\\\/([0-9]+)|$\/.exec(navigator.userAgent)[1],10),yt=gt&&y(\"Google\")&&yt<537&&!(\"AudioNode\"in window),xt=!!window.opera,wt=!n&&y(\"chrome\"),bt=y(\"gecko\")&&!ft&&!xt&&!pt,Pt=!wt&&y(\"safari\"),Lt=y(\"phantom\"),o=\"OTransition\"in _t,Tt=0===navigator.platform.indexOf(\"Win\"),Mt=pt&&\"transition\"in _t,zt=\"WebKitCSSMatrix\"in window&&\"m11\"in new window.WebKitCSSMatrix&&!vt,_t=\"MozPerspective\"in _t,Ct=!window.L_DISABLE_3D&&(Mt||zt||_t)&&!o&&!Lt,Zt=\"undefined\"!=typeof orientation||y(\"mobile\"),St=Zt&&ft,Et=Zt&&zt,kt=!window.PointerEvent&&window.MSPointerEvent,Ot=!(!window.PointerEvent&&!kt),At=\"ontouchstart\"in window||!!window.TouchEvent,Bt=!window.L_NO_TOUCH&&(At||Ot),It=Zt&&xt,Rt=Zt&&bt,Nt=1<(window.devicePixelRatio||window.screen.deviceXDPI\/window.screen.logicalXDPI),Dt=function(){var t=!1;try{var e=Object.defineProperty({},\"passive\",{get:function(){t=!0}});window.addEventListener(\"testPassiveEventSupport\",u,e),window.removeEventListener(\"testPassiveEventSupport\",u,e)}catch(t){}return t}(),jt=!!document.createElement(\"canvas\").getContext,Ht=!(!document.createElementNS||!ct(\"svg\").createSVGRect),Wt=!!Ht&&((Wt=document.createElement(\"div\")).innerHTML=\"<svg\/>\",\"http:\/\/www.w3.org\/2000\/svg\"===(Wt.firstChild&&Wt.firstChild.namespaceURI));function y(t){return 0<=navigator.userAgent.toLowerCase().indexOf(t)}var b={ie:pt,ielt9:mt,edge:n,webkit:ft,android:gt,android23:vt,androidStock:yt,opera:xt,chrome:wt,gecko:bt,safari:Pt,phantom:Lt,opera12:o,win:Tt,ie3d:Mt,webkit3d:zt,gecko3d:_t,any3d:Ct,mobile:Zt,mobileWebkit:St,mobileWebkit3d:Et,msPointer:kt,pointer:Ot,touch:Bt,touchNative:At,mobileOpera:It,mobileGecko:Rt,retina:Nt,passiveEvents:Dt,canvas:jt,svg:Ht,vml:!Ht&&function(){try{var t=document.createElement(\"div\"),e=(t.innerHTML='<v:shape adj=\"1\"\/>',t.firstChild);return e.style.behavior=\"url(#default#VML)\",e&&\"object\"==typeof e.adj}catch(t){return!1}}(),inlineSvg:Wt,mac:0===navigator.platform.indexOf(\"Mac\"),linux:0===navigator.platform.indexOf(\"Linux\")},Ft=b.msPointer?\"MSPointerDown\":\"pointerdown\",Ut=b.msPointer?\"MSPointerMove\":\"pointermove\",Vt=b.msPointer?\"MSPointerUp\":\"pointerup\",qt=b.msPointer?\"MSPointerCancel\":\"pointercancel\",Gt={touchstart:Ft,touchmove:Ut,touchend:Vt,touchcancel:qt},Kt={touchstart:function(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&O(e);ee(t,e)},touchmove:ee,touchend:ee,touchcancel:ee},Yt={},Xt=!1;function Jt(t,e,i){return\"touchstart\"!==e||Xt||(document.addEventListener(Ft,$t,!0),document.addEventListener(Ut,Qt,!0),document.addEventListener(Vt,te,!0),document.addEventListener(qt,te,!0),Xt=!0),Kt[e]?(i=Kt[e].bind(this,i),t.addEventListener(Gt[e],i,!1),i):(console.warn(\"wrong event specified:\",e),u)}function $t(t){Yt[t.pointerId]=t}function Qt(t){Yt[t.pointerId]&&(Yt[t.pointerId]=t)}function te(t){delete Yt[t.pointerId]}function ee(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||\"mouse\")){for(var i in e.touches=[],Yt)e.touches.push(Yt[i]);e.changedTouches=[e],t(e)}}var ie=200;function ne(t,i){t.addEventListener(\"dblclick\",i);var n,o=0;function e(t){var e;1!==t.detail?n=t.detail:\"mouse\"===t.pointerType||t.sourceCapabilities&&!t.sourceCapabilities.firesTouchEvents||((e=Ne(t)).some(function(t){return t instanceof HTMLLabelElement&&t.attributes.for})&&!e.some(function(t){return t instanceof HTMLInputElement||t instanceof HTMLSelectElement})||((e=Date.now())-o<=ie?2===++n&&i(function(t){var e,i,n={};for(i in t)e=t[i],n[i]=e&&e.bind?e.bind(t):e;return(t=n).type=\"dblclick\",n.detail=2,n.isTrusted=!1,n._simulated=!0,n}(t)):n=1,o=e))}return t.addEventListener(\"click\",e),{dblclick:i,simDblclick:e}}var oe,se,re,ae,he,le,ue=we([\"transform\",\"webkitTransform\",\"OTransform\",\"MozTransform\",\"msTransform\"]),ce=we([\"webkitTransition\",\"transition\",\"OTransition\",\"MozTransition\",\"msTransition\"]),de=\"webkitTransition\"===ce||\"OTransition\"===ce?ce+\"End\":\"transitionend\";function _e(t){return\"string\"==typeof t?document.getElementById(t):t}function pe(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];return\"auto\"===(i=i&&\"auto\"!==i||!document.defaultView?i:(t=document.defaultView.getComputedStyle(t,null))?t[e]:null)?null:i}function P(t,e,i){t=document.createElement(t);return t.className=e||\"\",i&&i.appendChild(t),t}function T(t){var e=t.parentNode;e&&e.removeChild(t)}function me(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function fe(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function ge(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ve(t,e){return void 0!==t.classList?t.classList.contains(e):0<(t=xe(t)).length&&new RegExp(\"(^|\\\\s)\"+e+\"(\\\\s|$)\").test(t)}function M(t,e){var i;if(void 0!==t.classList)for(var n=F(e),o=0,s=n.length;o<s;o++)t.classList.add(n[o]);else ve(t,e)||ye(t,((i=xe(t))?i+\" \":\"\")+e)}function z(t,e){void 0!==t.classList?t.classList.remove(e):ye(t,W((\" \"+xe(t)+\" \").replace(\" \"+e+\" \",\" \")))}function ye(t,e){void 0===t.className.baseVal?t.className=e:t.className.baseVal=e}function xe(t){return void 0===(t=t.correspondingElement?t.correspondingElement:t).className.baseVal?t.className:t.className.baseVal}function C(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(t){if(1===e)return}e=Math.round(100*e),i?(i.Enabled=100!==e,i.Opacity=e):t.style.filter+=\" progid:\"+n+\"(opacity=\"+e+\")\"}}function we(t){for(var e=document.documentElement.style,i=0;i<t.length;i++)if(t[i]in e)return t[i];return!1}function be(t,e,i){e=e||new p(0,0);t.style[ue]=(b.ie3d?\"translate(\"+e.x+\"px,\"+e.y+\"px)\":\"translate3d(\"+e.x+\"px,\"+e.y+\"px,0)\")+(i?\" scale(\"+i+\")\":\"\")}function Z(t,e){t._leaflet_pos=e,b.any3d?be(t,e):(t.style.left=e.x+\"px\",t.style.top=e.y+\"px\")}function Pe(t){return t._leaflet_pos||new p(0,0)}function Le(){S(window,\"dragstart\",O)}function Te(){k(window,\"dragstart\",O)}function Me(t){for(;-1===t.tabIndex;)t=t.parentNode;t.style&&(ze(),le=(he=t).style.outlineStyle,t.style.outlineStyle=\"none\",S(window,\"keydown\",ze))}function ze(){he&&(he.style.outlineStyle=le,le=he=void 0,k(window,\"keydown\",ze))}function Ce(t){for(;!((t=t.parentNode).offsetWidth&&t.offsetHeight||t===document.body););return t}function Ze(t){var e=t.getBoundingClientRect();return{x:e.width\/t.offsetWidth||1,y:e.height\/t.offsetHeight||1,boundingClientRect:e}}ae=\"onselectstart\"in document?(re=function(){S(window,\"selectstart\",O)},function(){k(window,\"selectstart\",O)}):(se=we([\"userSelect\",\"WebkitUserSelect\",\"OUserSelect\",\"MozUserSelect\",\"msUserSelect\"]),re=function(){var t;se&&(t=document.documentElement.style,oe=t[se],t[se]=\"none\")},function(){se&&(document.documentElement.style[se]=oe,oe=void 0)});pt={__proto__:null,TRANSFORM:ue,TRANSITION:ce,TRANSITION_END:de,get:_e,getStyle:pe,create:P,remove:T,empty:me,toFront:fe,toBack:ge,hasClass:ve,addClass:M,removeClass:z,setClass:ye,getClass:xe,setOpacity:C,testProp:we,setTransform:be,setPosition:Z,getPosition:Pe,get disableTextSelection(){return re},get enableTextSelection(){return ae},disableImageDrag:Le,enableImageDrag:Te,preventOutline:Me,restoreOutline:ze,getSizedParentNode:Ce,getScale:Ze};function S(t,e,i,n){if(e&&\"object\"==typeof e)for(var o in e)ke(t,o,e[o],i);else for(var s=0,r=(e=F(e)).length;s<r;s++)ke(t,e[s],i,n);return this}var E=\"_leaflet_events\";function k(t,e,i,n){if(1===arguments.length)Se(t),delete t[E];else if(e&&\"object\"==typeof e)for(var o in e)Oe(t,o,e[o],i);else if(e=F(e),2===arguments.length)Se(t,function(t){return-1!==G(e,t)});else for(var s=0,r=e.length;s<r;s++)Oe(t,e[s],i,n);return this}function Se(t,e){for(var i in t[E]){var n=i.split(\/\\d\/)[0];e&&!e(n)||Oe(t,n,null,null,i)}}var Ee={mouseenter:\"mouseover\",mouseleave:\"mouseout\",wheel:!(\"onwheel\"in window)&&\"mousewheel\"};function ke(e,t,i,n){var o,s,r=t+h(i)+(n?\"_\"+h(n):\"\");e[E]&&e[E][r]||(s=o=function(t){return i.call(n||e,t||window.event)},!b.touchNative&&b.pointer&&0===t.indexOf(\"touch\")?o=Jt(e,t,o):b.touch&&\"dblclick\"===t?o=ne(e,o):\"addEventListener\"in e?\"touchstart\"===t||\"touchmove\"===t||\"wheel\"===t||\"mousewheel\"===t?e.addEventListener(Ee[t]||t,o,!!b.passiveEvents&&{passive:!1}):\"mouseenter\"===t||\"mouseleave\"===t?e.addEventListener(Ee[t],o=function(t){t=t||window.event,We(e,t)&&s(t)},!1):e.addEventListener(t,s,!1):e.attachEvent(\"on\"+t,o),e[E]=e[E]||{},e[E][r]=o)}function Oe(t,e,i,n,o){o=o||e+h(i)+(n?\"_\"+h(n):\"\");var s,r,i=t[E]&&t[E][o];i&&(!b.touchNative&&b.pointer&&0===e.indexOf(\"touch\")?(n=t,r=i,Gt[s=e]?n.removeEventListener(Gt[s],r,!1):console.warn(\"wrong event specified:\",s)):b.touch&&\"dblclick\"===e?(n=i,(r=t).removeEventListener(\"dblclick\",n.dblclick),r.removeEventListener(\"click\",n.simDblclick)):\"removeEventListener\"in t?t.removeEventListener(Ee[e]||e,i,!1):t.detachEvent(\"on\"+e,i),t[E][o]=null)}function Ae(t){return t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,this}function Be(t){return ke(t,\"wheel\",Ae),this}function Ie(t){return S(t,\"mousedown touchstart dblclick contextmenu\",Ae),t._leaflet_disable_click=!0,this}function O(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this}function Re(t){return O(t),Ae(t),this}function Ne(t){if(t.composedPath)return t.composedPath();for(var e=[],i=t.target;i;)e.push(i),i=i.parentNode;return e}function De(t,e){var i,n;return e?(n=(i=Ze(e)).boundingClientRect,new p((t.clientX-n.left)\/i.x-e.clientLeft,(t.clientY-n.top)\/i.y-e.clientTop)):new p(t.clientX,t.clientY)}var je=b.linux&&b.chrome?window.devicePixelRatio:b.mac?3*window.devicePixelRatio:0<window.devicePixelRatio?2*window.devicePixelRatio:1;function He(t){return b.edge?t.wheelDeltaY\/2:t.deltaY&&0===t.deltaMode?-t.deltaY\/je:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)\/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail\/-32765*60:0}function We(t,e){var i=e.relatedTarget;if(!i)return!0;try{for(;i&&i!==t;)i=i.parentNode}catch(t){return!1}return i!==t}var mt={__proto__:null,on:S,off:k,stopPropagation:Ae,disableScrollPropagation:Be,disableClickPropagation:Ie,preventDefault:O,stop:Re,getPropagationPath:Ne,getMousePosition:De,getWheelDelta:He,isExternalTarget:We,addListener:S,removeListener:k},Fe=it.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=Pe(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire(\"start\"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=x(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,i=1e3*this._duration;e<i?this._runFrame(this._easeOut(e\/i),t):(this._runFrame(1),this._complete())},_runFrame:function(t,e){t=this._startPos.add(this._offset.multiplyBy(t));e&&t._round(),Z(this._el,t),this.fire(\"step\")},_complete:function(){r(this._animId),this._inProgress=!1,this.fire(\"end\")},_easeOut:function(t){return 1-Math.pow(1-t,this._easeOutPower)}}),A=it.extend({options:{crs:lt,center:void 0,zoom:void 0,minZoom:void 0,maxZoom:void 0,layers:[],maxBounds:void 0,renderer:void 0,zoomAnimation:!0,zoomAnimationThreshold:4,fadeAnimation:!0,markerZoomAnimation:!0,transform3DLimit:8388608,zoomSnap:1,zoomDelta:1,trackResize:!0},initialize:function(t,e){e=c(this,e),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._sizeChanged=!0,this._initContainer(t),this._initLayout(),this._onResize=a(this._onResize,this),this._initEvents(),e.maxBounds&&this.setMaxBounds(e.maxBounds),void 0!==e.zoom&&(this._zoom=this._limitZoom(e.zoom)),e.center&&void 0!==e.zoom&&this.setView(w(e.center),e.zoom,{reset:!0}),this.callInitHooks(),this._zoomAnimated=ce&&b.any3d&&!b.mobileOpera&&this.options.zoomAnimation,this._zoomAnimated&&(this._createAnimProxy(),S(this._proxy,de,this._catchTransitionEnd,this)),this._addLayers(this.options.layers)},setView:function(t,e,i){if((e=void 0===e?this._zoom:this._limitZoom(e),t=this._limitCenter(w(t),e,this.options.maxBounds),i=i||{},this._stop(),this._loaded&&!i.reset&&!0!==i)&&(void 0!==i.animate&&(i.zoom=l({animate:i.animate},i.zoom),i.pan=l({animate:i.animate,duration:i.duration},i.pan)),this._zoom!==e?this._tryAnimatedZoom&&this._tryAnimatedZoom(t,e,i.zoom):this._tryAnimatedPan(t,i.pan)))return clearTimeout(this._sizeTimer),this;return this._resetView(t,e,i.pan&&i.pan.noMoveStart),this},setZoom:function(t,e){return this._loaded?this.setView(this.getCenter(),t,{zoom:e}):(this._zoom=t,this)},zoomIn:function(t,e){return t=t||(b.any3d?this.options.zoomDelta:1),this.setZoom(this._zoom+t,e)},zoomOut:function(t,e){return t=t||(b.any3d?this.options.zoomDelta:1),this.setZoom(this._zoom-t,e)},setZoomAround:function(t,e,i){var n=this.getZoomScale(e),o=this.getSize().divideBy(2),t=(t instanceof p?t:this.latLngToContainerPoint(t)).subtract(o).multiplyBy(1-1\/n),n=this.containerPointToLatLng(o.add(t));return this.setView(n,e,{zoom:i})},_getBoundsCenterZoom:function(t,e){e=e||{},t=t.getBounds?t.getBounds():g(t);var i=m(e.paddingTopLeft||e.padding||[0,0]),n=m(e.paddingBottomRight||e.padding||[0,0]),o=this.getBoundsZoom(t,!1,i.add(n));return(o=\"number\"==typeof e.maxZoom?Math.min(e.maxZoom,o):o)===1\/0?{center:t.getCenter(),zoom:o}:(e=n.subtract(i).divideBy(2),n=this.project(t.getSouthWest(),o),i=this.project(t.getNorthEast(),o),{center:this.unproject(n.add(i).divideBy(2).add(e),o),zoom:o})},fitBounds:function(t,e){if((t=g(t)).isValid())return t=this._getBoundsCenterZoom(t,e),this.setView(t.center,t.zoom,e);throw new Error(\"Bounds are not valid.\")},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,e){var i;return e=e||{},(t=m(t).round()).x||t.y?(!0===e.animate||this.getSize().contains(t)?(this._panAnim||(this._panAnim=new Fe,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),e.noMoveStart||this.fire(\"movestart\"),!1!==e.animate?(M(this._mapPane,\"leaflet-pan-anim\"),i=this._getMapPanePos().subtract(t).round(),this._panAnim.run(this._mapPane,i,e.duration||.25,e.easeLinearity)):(this._rawPanBy(t),this.fire(\"move\").fire(\"moveend\"))):this._resetView(this.unproject(this.project(this.getCenter()).add(t)),this.getZoom()),this):this.fire(\"moveend\")},flyTo:function(n,o,t){if(!1===(t=t||{}).animate||!b.any3d)return this.setView(n,o,t);this._stop();var s=this.project(this.getCenter()),r=this.project(n),e=this.getSize(),a=this._zoom,h=(n=w(n),o=void 0===o?a:o,Math.max(e.x,e.y)),i=h*this.getZoomScale(a,o),l=r.distanceTo(s)||1,u=1.42,c=u*u;function d(t){t=(i*i-h*h+(t?-1:1)*c*c*l*l)\/(2*(t?i:h)*c*l),t=Math.sqrt(t*t+1)-t;return t<1e-9?-18:Math.log(t)}function _(t){return(Math.exp(t)-Math.exp(-t))\/2}function p(t){return(Math.exp(t)+Math.exp(-t))\/2}var m=d(0);function f(t){return h*(p(m)*(_(t=m+u*t)\/p(t))-_(m))\/c}var g=Date.now(),v=(d(1)-m)\/u,y=t.duration?1e3*t.duration:1e3*v*.8;return this._moveStart(!0,t.noMoveStart),function t(){var e=(Date.now()-g)\/y,i=(1-Math.pow(1-e,1.5))*v;e<=1?(this._flyToFrame=x(t,this),this._move(this.unproject(s.add(r.subtract(s).multiplyBy(f(i)\/l)),a),this.getScaleZoom(h\/(e=i,h*(p(m)\/p(m+u*e))),a),{flyTo:!0})):this._move(n,o)._moveEnd(!0)}.call(this),this},flyToBounds:function(t,e){t=this._getBoundsCenterZoom(t,e);return this.flyTo(t.center,t.zoom,e)},setMaxBounds:function(t){return t=g(t),this.listens(\"moveend\",this._panInsideMaxBounds)&&this.off(\"moveend\",this._panInsideMaxBounds),t.isValid()?(this.options.maxBounds=t,this._loaded&&this._panInsideMaxBounds(),this.on(\"moveend\",this._panInsideMaxBounds)):(this.options.maxBounds=null,this)},setMinZoom:function(t){var e=this.options.minZoom;return this.options.minZoom=t,this._loaded&&e!==t&&(this.fire(\"zoomlevelschange\"),this.getZoom()<this.options.minZoom)?this.setZoom(t):this},setMaxZoom:function(t){var e=this.options.maxZoom;return this.options.maxZoom=t,this._loaded&&e!==t&&(this.fire(\"zoomlevelschange\"),this.getZoom()>this.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),t=this._limitCenter(i,this._zoom,g(t));return i.equals(t)||this.panTo(t,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=m((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=m(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),t=this.project(t),s=this.getPixelBounds(),i=_([s.min.add(i),s.max.subtract(n)]),s=i.getSize();return i.contains(t)||(this._enforcingBounds=!0,n=t.subtract(i.getCenter()),i=i.extend(t).getSize().subtract(s),o.x+=n.x<0?-i.x:i.x,o.y+=n.y<0?-i.y:i.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1),this},invalidateSize:function(t){if(!this._loaded)return this;t=l({animate:!1,pan:!0},!0===t?{animate:!0}:t);var e=this.getSize(),i=(this._sizeChanged=!0,this._lastCenter=null,this.getSize()),n=e.divideBy(2).round(),o=i.divideBy(2).round(),n=n.subtract(o);return n.x||n.y?(t.animate&&t.pan?this.panBy(n):(t.pan&&this._rawPanBy(n),this.fire(\"move\"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(a(this.fire,this,\"moveend\"),200)):this.fire(\"moveend\")),this.fire(\"resize\",{oldSize:e,newSize:i})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire(\"viewreset\"),this._stop()},locate:function(t){var e,i;return t=this._locateOptions=l({timeout:1e4,watch:!1},t),\"geolocation\"in navigator?(e=a(this._handleGeolocationResponse,this),i=a(this._handleGeolocationError,this),t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t)):this._handleGeolocationError({code:0,message:\"Geolocation not supported.\"}),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e;this._container._leaflet_id&&(e=t.code,t=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: \"+t+\".\"}))},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e,i,n=new v(t.coords.latitude,t.coords.longitude),o=n.toBounds(2*t.coords.accuracy),s=this._locateOptions,r=(s.setView&&(e=this.getBoundsZoom(o),this.setView(n,s.maxZoom?Math.min(e,s.maxZoom):e)),{latlng:n,bounds:o,timestamp:t.timestamp});for(i in t.coords)\"number\"==typeof t.coords[i]&&(r[i]=t.coords[i]);this.fire(\"locationfound\",r)}},addHandler:function(t,e){return e&&(e=this[t]=new e(this),this._handlers.push(e),this.options[t]&&e.enable()),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off(\"moveend\",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error(\"Map container is being reused by another instance\");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}for(var t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),T(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(r(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire(\"unload\"),this._layers)this._layers[t].remove();for(t in this._panes)T(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){e=P(\"div\",\"leaflet-pane\"+(t?\" leaflet-\"+t.replace(\"Pane\",\"\")+\"-pane\":\"\"),e||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new s(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1\/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=g(t),i=m(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),t=t.getSouthEast(),i=this.getSize().subtract(i),t=_(this.project(t,n),this.project(r,n)).getSize(),r=b.any3d?this.options.zoomSnap:1,a=i.x\/t.x,i=i.y\/t.y,t=e?Math.max(a,i):Math.min(a,i),n=this.getScaleZoom(t,n);return r&&(n=Math.round(n\/(r\/100))*(r\/100),n=e?Math.ceil(n\/r)*r:Math.floor(n\/r)*r),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new p(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){t=this._getTopLeftPoint(t,e);return new f(t,t.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return\"string\"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)\/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs,t=(e=void 0===e?this._zoom:e,i.zoom(t*i.scale(e)));return isNaN(t)?1\/0:t},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(w(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(m(t),e)},layerPointToLatLng:function(t){t=m(t).add(this.getPixelOrigin());return this.unproject(t)},latLngToLayerPoint:function(t){return this.project(w(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(w(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(g(t))},distance:function(t,e){return this.options.crs.distance(w(t),w(e))},containerPointToLayerPoint:function(t){return m(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return m(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){t=this.containerPointToLayerPoint(m(t));return this.layerPointToLatLng(t)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(w(t)))},mouseEventToContainerPoint:function(t){return De(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){t=this._container=_e(t);if(!t)throw new Error(\"Map container not found.\");if(t._leaflet_id)throw new Error(\"Map container is already initialized.\");S(t,\"scroll\",this._onScroll,this),this._containerId=h(t)},_initLayout:function(){var t=this._container,e=(this._fadeAnimated=this.options.fadeAnimation&&b.any3d,M(t,\"leaflet-container\"+(b.touch?\" leaflet-touch\":\"\")+(b.retina?\" leaflet-retina\":\"\")+(b.ielt9?\" leaflet-oldie\":\"\")+(b.safari?\" leaflet-safari\":\"\")+(this._fadeAnimated?\" leaflet-fade-anim\":\"\")),pe(t,\"position\"));\"absolute\"!==e&&\"relative\"!==e&&\"fixed\"!==e&&\"sticky\"!==e&&(t.style.position=\"relative\"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane(\"mapPane\",this._container),Z(this._mapPane,new p(0,0)),this.createPane(\"tilePane\"),this.createPane(\"overlayPane\"),this.createPane(\"shadowPane\"),this.createPane(\"markerPane\"),this.createPane(\"tooltipPane\"),this.createPane(\"popupPane\"),this.options.markerZoomAnimation||(M(t.markerPane,\"leaflet-zoom-hide\"),M(t.shadowPane,\"leaflet-zoom-hide\"))},_resetView:function(t,e,i){Z(this._mapPane,new p(0,0));var n=!this._loaded,o=(this._loaded=!0,e=this._limitZoom(e),this.fire(\"viewprereset\"),this._zoom!==e);this._moveStart(o,i)._move(t,e)._moveEnd(o),this.fire(\"viewreset\"),n&&this.fire(\"load\")},_moveStart:function(t,e){return t&&this.fire(\"zoomstart\"),e||this.fire(\"movestart\"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire(\"zoom\",i):((o||i&&i.pinch)&&this.fire(\"zoom\",i),this.fire(\"move\",i)),this},_moveEnd:function(t){return t&&this.fire(\"zoomend\"),this.fire(\"moveend\")},_stop:function(){return r(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Z(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error(\"Set map center and zoom first.\")},_initEvents:function(t){this._targets={};var e=t?k:S;e((this._targets[h(this._container)]=this)._container,\"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup\",this._handleDOMEvent,this),this.options.trackResize&&e(window,\"resize\",this._onResize,this),b.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,\"moveend\",this._onMoveEnd)},_onResize:function(){r(this._resizeRequest),this._resizeRequest=x(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o=\"mouseout\"===e||\"mouseover\"===e,s=t.target||t.srcElement,r=!1;s;){if((i=this._targets[h(s)])&&(\"click\"===e||\"preclick\"===e)&&this._draggableMoved(i)){r=!0;break}if(i&&i.listens(e,!0)){if(o&&!We(s,t))break;if(n.push(i),o)break}if(s===this._container)break;s=s.parentNode}return n=n.length||r||o||!this.listens(e,!0)?n:[this]},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e,i=t.target||t.srcElement;!this._loaded||i._leaflet_disable_events||\"click\"===t.type&&this._isClickDisabled(i)||(\"mousedown\"===(e=t.type)&&Me(i),this._fireDOMEvent(t,e))},_mouseEvents:[\"click\",\"dblclick\",\"mouseover\",\"mouseout\",\"contextmenu\"],_fireDOMEvent:function(t,e,i){\"click\"===t.type&&((a=l({},t)).type=\"preclick\",this._fireDOMEvent(a,a.type,i));var n=this._findEventTargets(t,e);if(i){for(var o=[],s=0;s<i.length;s++)i[s].listens(e,!0)&&o.push(i[s]);n=o.concat(n)}if(n.length){\"contextmenu\"===e&&O(t);var r,a=n[0],h={originalEvent:t};for(\"keypress\"!==t.type&&\"keydown\"!==t.type&&\"keyup\"!==t.type&&(r=a.getLatLng&&(!a._radius||a._radius<=10),h.containerPoint=r?this.latLngToContainerPoint(a.getLatLng()):this.mouseEventToContainerPoint(t),h.layerPoint=this.containerPointToLayerPoint(h.containerPoint),h.latlng=r?a.getLatLng():this.layerPointToLatLng(h.layerPoint)),s=0;s<n.length;s++)if(n[s].fire(e,h,!0),h.originalEvent._stopped||!1===n[s].options.bubblingMouseEvents&&-1!==G(this._mouseEvents,e))return}},_draggableMoved:function(t){return(t=t.dragging&&t.dragging.enabled()?t:this).dragging&&t.dragging.moved()||this.boxZoom&&this.boxZoom.moved()},_clearHandlers:function(){for(var t=0,e=this._handlers.length;t<e;t++)this._handlers[t].disable()},whenReady:function(t,e){return this._loaded?t.call(e||this,{target:this}):this.on(\"load\",t,e),this},_getMapPanePos:function(){return Pe(this._mapPane)||new p(0,0)},_moved:function(){var t=this._getMapPanePos();return t&&!t.equals([0,0])},_getTopLeftPoint:function(t,e){return(t&&void 0!==e?this._getNewPixelOrigin(t,e):this.getPixelOrigin()).subtract(this._getMapPanePos())},_getNewPixelOrigin:function(t,e){var i=this.getSize()._divideBy(2);return this.project(t,e)._subtract(i)._add(this._getMapPanePos())._round()},_latLngToNewLayerPoint:function(t,e,i){i=this._getNewPixelOrigin(i,e);return this.project(t,e)._subtract(i)},_latLngBoundsToNewLayerBounds:function(t,e,i){i=this._getNewPixelOrigin(i,e);return _([this.project(t.getSouthWest(),e)._subtract(i),this.project(t.getNorthWest(),e)._subtract(i),this.project(t.getSouthEast(),e)._subtract(i),this.project(t.getNorthEast(),e)._subtract(i)])},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(t){return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint())},_limitCenter:function(t,e,i){var n,o;return!i||(n=this.project(t,e),o=this.getSize().divideBy(2),o=new f(n.subtract(o),n.add(o)),o=this._getBoundsOffset(o,i,e),Math.abs(o.x)<=1&&Math.abs(o.y)<=1)?t:this.unproject(n.add(o),e)},_limitOffset:function(t,e){var i;return e?(i=new f((i=this.getPixelBounds()).min.add(t),i.max.add(t)),t.add(this._getBoundsOffset(i,e))):t},_getBoundsOffset:function(t,e,i){e=_(this.project(e.getNorthEast(),i),this.project(e.getSouthWest(),i)),i=e.min.subtract(t.min),e=e.max.subtract(t.max);return new p(this._rebound(i.x,-e.x),this._rebound(i.y,-e.y))},_rebound:function(t,e){return 0<t+e?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(),n=b.any3d?this.options.zoomSnap:1;return n&&(t=Math.round(t\/n)*n),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire(\"move\")},_onPanTransitionEnd:function(){z(this._mapPane,\"leaflet-pan-anim\"),this.fire(\"moveend\")},_tryAnimatedPan:function(t,e){t=this._getCenterOffset(t)._trunc();return!(!0!==(e&&e.animate)&&!this.getSize().contains(t))&&(this.panBy(t,e),!0)},_createAnimProxy:function(){var t=this._proxy=P(\"div\",\"leaflet-proxy leaflet-zoom-animated\");this._panes.mapPane.appendChild(t),this.on(\"zoomanim\",function(t){var e=ue,i=this._proxy.style[e];be(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),i===this._proxy.style[e]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on(\"load moveend\",this._animMoveEnd,this),this._on(\"unload\",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){T(this._proxy),this.off(\"load moveend\",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();be(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&0<=t.propertyName.indexOf(\"transform\")&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName(\"leaflet-zoom-animated\").length},_tryAnimatedZoom:function(t,e,i){if(!this._animatingZoom){if(i=i||{},!this._zoomAnimated||!1===i.animate||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),n=this._getCenterOffset(t)._divideBy(1-1\/n);if(!0!==i.animate&&!this.getSize().contains(n))return!1;x(function(){this._moveStart(!0,i.noMoveStart||!1)._animateZoom(t,e,!0)},this)}return!0},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,M(this._mapPane,\"leaflet-zoom-anim\")),this.fire(\"zoomanim\",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(a(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&z(this._mapPane,\"leaflet-zoom-anim\"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire(\"zoom\"),delete this._tempFireZoomEvent,this.fire(\"move\"),this._moveEnd(!0))}});function Ue(t){return new B(t)}var B=et.extend({options:{position:\"topright\"},initialize:function(t){c(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.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),t=t._controlCorners[i];return M(e,\"leaflet-control\"),-1!==i.indexOf(\"bottom\")?t.insertBefore(e,t.firstChild):t.appendChild(e),this._map.on(\"unload\",this.remove,this),this},remove:function(){return this._map&&(T(this._container),this.onRemove&&this.onRemove(this._map),this._map.off(\"unload\",this.remove,this),this._map=null),this},_refocusOnMap:function(t){this._map&&t&&0<t.screenX&&0<t.screenY&&this._map.getContainer().focus()}}),Ve=(A.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var i=this._controlCorners={},n=\"leaflet-\",o=this._controlContainer=P(\"div\",n+\"control-container\",this._container);function t(t,e){i[t+e]=P(\"div\",n+t+\" \"+n+e,o)}t(\"top\",\"left\"),t(\"top\",\"right\"),t(\"bottom\",\"left\"),t(\"bottom\",\"right\")},_clearControlPos:function(){for(var t in this._controlCorners)T(this._controlCorners[t]);T(this._controlContainer),delete this._controlCorners,delete this._controlContainer}}),B.extend({options:{collapsed:!0,position:\"topright\",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,n){return i<n?-1:n<i?1:0}},initialize:function(t,e,i){for(var n in c(this,i),this._layerControlInputs=[],this._layers=[],this._lastZIndex=0,this._handlingClick=!1,this._preventClick=!1,t)this._addLayer(t[n],n);for(n in e)this._addLayer(e[n],n,!0)},onAdd:function(t){this._initLayout(),this._update(),(this._map=t).on(\"zoomend\",this._checkDisabledLayers,this);for(var e=0;e<this._layers.length;e++)this._layers[e].layer.on(\"add remove\",this._onLayerChange,this);return this._container},addTo:function(t){return B.prototype.addTo.call(this,t),this._expandIfNotCollapsed()},onRemove:function(){this._map.off(\"zoomend\",this._checkDisabledLayers,this);for(var t=0;t<this._layers.length;t++)this._layers[t].layer.off(\"add remove\",this._onLayerChange,this)},addBaseLayer:function(t,e){return this._addLayer(t,e),this._map?this._update():this},addOverlay:function(t,e){return this._addLayer(t,e,!0),this._map?this._update():this},removeLayer:function(t){t.off(\"add remove\",this._onLayerChange,this);t=this._getLayer(h(t));return t&&this._layers.splice(this._layers.indexOf(t),1),this._map?this._update():this},expand:function(){M(this._container,\"leaflet-control-layers-expanded\"),this._section.style.height=null;var t=this._map.getSize().y-(this._container.offsetTop+50);return t<this._section.clientHeight?(M(this._section,\"leaflet-control-layers-scrollbar\"),this._section.style.height=t+\"px\"):z(this._section,\"leaflet-control-layers-scrollbar\"),this._checkDisabledLayers(),this},collapse:function(){return z(this._container,\"leaflet-control-layers-expanded\"),this},_initLayout:function(){var t=\"leaflet-control-layers\",e=this._container=P(\"div\",t),i=this.options.collapsed,n=(e.setAttribute(\"aria-haspopup\",!0),Ie(e),Be(e),this._section=P(\"section\",t+\"-list\")),o=(i&&(this._map.on(\"click\",this.collapse,this),S(e,{mouseenter:this._expandSafely,mouseleave:this.collapse},this)),this._layersLink=P(\"a\",t+\"-toggle\",e));o.href=\"#\",o.title=\"Layers\",o.setAttribute(\"role\",\"button\"),S(o,{keydown:function(t){13===t.keyCode&&this._expandSafely()},click:function(t){O(t),this._expandSafely()}},this),i||this.expand(),this._baseLayersList=P(\"div\",t+\"-base\",n),this._separator=P(\"div\",t+\"-separator\",n),this._overlaysList=P(\"div\",t+\"-overlays\",n),e.appendChild(n)},_getLayer:function(t){for(var e=0;e<this._layers.length;e++)if(this._layers[e]&&h(this._layers[e].layer)===t)return this._layers[e]},_addLayer:function(t,e,i){this._map&&t.on(\"add remove\",this._onLayerChange,this),this._layers.push({layer:t,name:e,overlay:i}),this.options.sortLayers&&this._layers.sort(a(function(t,e){return this.options.sortFunction(t.layer,e.layer,t.name,e.name)},this)),this.options.autoZIndex&&t.setZIndex&&(this._lastZIndex++,t.setZIndex(this._lastZIndex)),this._expandIfNotCollapsed()},_update:function(){if(this._container){me(this._baseLayersList),me(this._overlaysList),this._layerControlInputs=[];for(var t,e,i,n=0,o=0;o<this._layers.length;o++)i=this._layers[o],this._addItem(i),e=e||i.overlay,t=t||!i.overlay,n+=i.overlay?0:1;this.options.hideSingleBase&&(this._baseLayersList.style.display=(t=t&&1<n)?\"\":\"none\"),this._separator.style.display=e&&t?\"\":\"none\"}return this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(h(t.target)),t=e.overlay?\"add\"===t.type?\"overlayadd\":\"overlayremove\":\"add\"===t.type?\"baselayerchange\":null;t&&this._map.fire(t,e)},_createRadioElement:function(t,e){t='<input type=\"radio\" class=\"leaflet-control-layers-selector\" name=\"'+t+'\"'+(e?' checked=\"checked\"':\"\")+\"\/>\",e=document.createElement(\"div\");return e.innerHTML=t,e.firstChild},_addItem:function(t){var e,i=document.createElement(\"label\"),n=this._map.hasLayer(t.layer),n=(t.overlay?((e=document.createElement(\"input\")).type=\"checkbox\",e.className=\"leaflet-control-layers-selector\",e.defaultChecked=n):e=this._createRadioElement(\"leaflet-base-layers_\"+h(this),n),this._layerControlInputs.push(e),e.layerId=h(t.layer),S(e,\"click\",this._onInputClick,this),document.createElement(\"span\")),o=(n.innerHTML=\" \"+t.name,document.createElement(\"span\"));return i.appendChild(o),o.appendChild(e),o.appendChild(n),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){if(!this._preventClick){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;0<=s;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;s<o.length;s++)this._map.hasLayer(o[s])&&this._map.removeLayer(o[s]);for(s=0;s<n.length;s++)this._map.hasLayer(n[s])||this._map.addLayer(n[s]);this._handlingClick=!1,this._refocusOnMap()}},_checkDisabledLayers:function(){for(var t,e,i=this._layerControlInputs,n=this._map.getZoom(),o=i.length-1;0<=o;o--)t=i[o],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&n<e.options.minZoom||void 0!==e.options.maxZoom&&n>e.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section,e=(this._preventClick=!0,S(t,\"click\",O),this.expand(),this);setTimeout(function(){k(t,\"click\",O),e._preventClick=!1})}})),qe=B.extend({options:{position:\"topleft\",zoomInText:'<span aria-hidden=\"true\">+<\/span>',zoomInTitle:\"Zoom in\",zoomOutText:'<span aria-hidden=\"true\">&#x2212;<\/span>',zoomOutTitle:\"Zoom out\"},onAdd:function(t){var e=\"leaflet-control-zoom\",i=P(\"div\",e+\" leaflet-bar\"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+\"-in\",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+\"-out\",i,this._zoomOut),this._updateDisabled(),t.on(\"zoomend zoomlevelschange\",this._updateDisabled,this),i},onRemove:function(t){t.off(\"zoomend zoomlevelschange\",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoom<this._map.getMaxZoom()&&this._map.zoomIn(this._map.options.zoomDelta*(t.shiftKey?3:1))},_zoomOut:function(t){!this._disabled&&this._map._zoom>this._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){i=P(\"a\",i,n);return i.innerHTML=t,i.href=\"#\",i.title=e,i.setAttribute(\"role\",\"button\"),i.setAttribute(\"aria-label\",e),Ie(i),S(i,\"click\",Re),S(i,\"click\",o,this),S(i,\"click\",this._refocusOnMap,this),i},_updateDisabled:function(){var t=this._map,e=\"leaflet-disabled\";z(this._zoomInButton,e),z(this._zoomOutButton,e),this._zoomInButton.setAttribute(\"aria-disabled\",\"false\"),this._zoomOutButton.setAttribute(\"aria-disabled\",\"false\"),!this._disabled&&t._zoom!==t.getMinZoom()||(M(this._zoomOutButton,e),this._zoomOutButton.setAttribute(\"aria-disabled\",\"true\")),!this._disabled&&t._zoom!==t.getMaxZoom()||(M(this._zoomInButton,e),this._zoomInButton.setAttribute(\"aria-disabled\",\"true\"))}}),Ge=(A.mergeOptions({zoomControl:!0}),A.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new qe,this.addControl(this.zoomControl))}),B.extend({options:{position:\"bottomleft\",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e=\"leaflet-control-scale\",i=P(\"div\",e),n=this.options;return this._addScales(n,e+\"-line\",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=P(\"div\",e,i)),t.imperial&&(this._iScale=P(\"div\",e,i))},_update:function(){var t=this._map,e=t.getSize().y\/2,t=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(t)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t);this._updateScale(this._mScale,e<1e3?e+\" m\":e\/1e3+\" km\",e\/t)},_updateImperial:function(t){var e,i,t=3.2808399*t;5280<t?(i=this._getRoundNum(e=t\/5280),this._updateScale(this._iScale,i+\" mi\",i\/e)):(i=this._getRoundNum(t),this._updateScale(this._iScale,i+\" ft\",i\/t))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+\"px\",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+\"\").length-1),t=t\/e;return e*(t=10<=t?10:5<=t?5:3<=t?3:2<=t?2:1)}})),Ke=B.extend({options:{position:\"bottomright\",prefix:'<a href=\"https:\/\/leafletjs.com\" title=\"A JavaScript library for interactive maps\">'+(b.inlineSvg?'<svg aria-hidden=\"true\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"8\" viewBox=\"0 0 12 8\" class=\"leaflet-attribution-flag\"><path fill=\"#4C7BE1\" d=\"M0 0h12v4H0z\"\/><path fill=\"#FFD500\" d=\"M0 4h12v3H0z\"\/><path fill=\"#E0BC00\" d=\"M0 7h12v1H0z\"\/><\/svg> ':\"\")+\"Leaflet<\/a>\"},initialize:function(t){c(this,t),this._attributions={}},onAdd:function(t){for(var e in(t.attributionControl=this)._container=P(\"div\",\"leaflet-control-attribution\"),Ie(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on(\"layeradd\",this._addAttribution,this),this._container},onRemove:function(t){t.off(\"layeradd\",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once(\"remove\",function(){this.removeAttribution(t.layer.getAttribution())},this))},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},removeAttribution:function(t){return t&&this._attributions[t]&&(this._attributions[t]--,this._update()),this},_update:function(){if(this._map){var t,e=[];for(t in this._attributions)this._attributions[t]&&e.push(t);var i=[];this.options.prefix&&i.push(this.options.prefix),e.length&&i.push(e.join(\", \")),this._container.innerHTML=i.join(' <span aria-hidden=\"true\">|<\/span> ')}}}),n=(A.mergeOptions({attributionControl:!0}),A.addInitHook(function(){this.options.attributionControl&&(new Ke).addTo(this)}),B.Layers=Ve,B.Zoom=qe,B.Scale=Ge,B.Attribution=Ke,Ue.layers=function(t,e,i){return new Ve(t,e,i)},Ue.zoom=function(t){return new qe(t)},Ue.scale=function(t){return new Ge(t)},Ue.attribution=function(t){return new Ke(t)},et.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}})),ft=(n.addTo=function(t,e){return t.addHandler(e,this),this},{Events:e}),Ye=b.touch?\"touchstart mousedown\":\"mousedown\",Xe=it.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){c(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(S(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Xe._dragging===this&&this.finishDrag(!0),k(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){var e,i;this._enabled&&(this._moved=!1,ve(this._element,\"leaflet-zoom-anim\")||(t.touches&&1!==t.touches.length?Xe._dragging===this&&this.finishDrag():Xe._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||((Xe._dragging=this)._preventOutline&&Me(this._element),Le(),re(),this._moving||(this.fire(\"down\"),i=t.touches?t.touches[0]:t,e=Ce(this._element),this._startPoint=new p(i.clientX,i.clientY),this._startPos=Pe(this._element),this._parentScale=Ze(e),i=\"mousedown\"===t.type,S(document,i?\"mousemove\":\"touchmove\",this._onMove,this),S(document,i?\"mouseup\":\"touchend touchcancel\",this._onUp,this)))))},_onMove:function(t){var e;this._enabled&&(t.touches&&1<t.touches.length?this._moved=!0:!(e=new p((e=t.touches&&1===t.touches.length?t.touches[0]:t).clientX,e.clientY)._subtract(this._startPoint)).x&&!e.y||Math.abs(e.x)+Math.abs(e.y)<this.options.clickTolerance||(e.x\/=this._parentScale.x,e.y\/=this._parentScale.y,O(t),this._moved||(this.fire(\"dragstart\"),this._moved=!0,M(document.body,\"leaflet-dragging\"),this._lastTarget=t.target||t.srcElement,window.SVGElementInstance&&this._lastTarget instanceof window.SVGElementInstance&&(this._lastTarget=this._lastTarget.correspondingUseElement),M(this._lastTarget,\"leaflet-drag-target\")),this._newPos=this._startPos.add(e),this._moving=!0,this._lastEvent=t,this._updatePosition()))},_updatePosition:function(){var t={originalEvent:this._lastEvent};this.fire(\"predrag\",t),Z(this._element,this._newPos),this.fire(\"drag\",t)},_onUp:function(){this._enabled&&this.finishDrag()},finishDrag:function(t){z(document.body,\"leaflet-dragging\"),this._lastTarget&&(z(this._lastTarget,\"leaflet-drag-target\"),this._lastTarget=null),k(document,\"mousemove touchmove\",this._onMove,this),k(document,\"mouseup touchend touchcancel\",this._onUp,this),Te(),ae();var e=this._moved&&this._moving;this._moving=!1,Xe._dragging=!1,e&&this.fire(\"dragend\",{noInertia:t,distance:this._newPos.distanceTo(this._startPos)})}});function Je(t,e,i){for(var n,o,s,r,a,h,l,u=[1,4,2,8],c=0,d=t.length;c<d;c++)t[c]._code=si(t[c],e);for(s=0;s<4;s++){for(h=u[s],n=[],c=0,o=(d=t.length)-1;c<d;o=c++)r=t[c],a=t[o],r._code&h?a._code&h||((l=oi(a,r,h,e,i))._code=si(l,e),n.push(l)):(a._code&h&&((l=oi(a,r,h,e,i))._code=si(l,e),n.push(l)),n.push(r));t=n}return t}function $e(t,e){var i,n,o,s,r,a,h;if(!t||0===t.length)throw new Error(\"latlngs not passed\");I(t)||(console.warn(\"latlngs are not flat! Only the first ring will be used\"),t=t[0]);for(var l=w([0,0]),u=g(t),c=(u.getNorthWest().distanceTo(u.getSouthWest())*u.getNorthEast().distanceTo(u.getNorthWest())<1700&&(l=Qe(t)),t.length),d=[],_=0;_<c;_++){var p=w(t[_]);d.push(e.project(w([p.lat-l.lat,p.lng-l.lng])))}for(_=r=a=h=0,i=c-1;_<c;i=_++)n=d[_],o=d[i],s=n.y*o.x-o.y*n.x,a+=(n.x+o.x)*s,h+=(n.y+o.y)*s,r+=3*s;u=0===r?d[0]:[a\/r,h\/r],u=e.unproject(m(u));return w([u.lat+l.lat,u.lng+l.lng])}function Qe(t){for(var e=0,i=0,n=0,o=0;o<t.length;o++){var s=w(t[o]);e+=s.lat,i+=s.lng,n++}return w([e\/n,i\/n])}var ti,gt={__proto__:null,clipPolygon:Je,polygonCenter:$e,centroid:Qe};function ei(t,e){if(e&&t.length){var i=t=function(t,e){for(var i=[t[0]],n=1,o=0,s=t.length;n<s;n++)(function(t,e){var i=e.x-t.x,e=e.y-t.y;return i*i+e*e})(t[n],t[o])>e&&(i.push(t[n]),o=n);o<s-1&&i.push(t[s-1]);return i}(t,e=e*e),n=i.length,o=new(typeof Uint8Array!=void 0+\"\"?Uint8Array:Array)(n);o[0]=o[n-1]=1,function t(e,i,n,o,s){var r,a,h,l=0;for(a=o+1;a<=s-1;a++)h=ri(e[a],e[o],e[s],!0),l<h&&(r=a,l=h);n<l&&(i[r]=1,t(e,i,n,o,r),t(e,i,n,r,s))}(i,o,e,0,n-1);var s,r=[];for(s=0;s<n;s++)o[s]&&r.push(i[s]);return r}return t.slice()}function ii(t,e,i){return Math.sqrt(ri(t,e,i,!0))}function ni(t,e,i,n,o){var s,r,a,h=n?ti:si(t,i),l=si(e,i);for(ti=l;;){if(!(h|l))return[t,e];if(h&l)return!1;a=si(r=oi(t,e,s=h||l,i,o),i),s===h?(t=r,h=a):(e=r,l=a)}}function oi(t,e,i,n,o){var s,r,a=e.x-t.x,e=e.y-t.y,h=n.min,n=n.max;return 8&i?(s=t.x+a*(n.y-t.y)\/e,r=n.y):4&i?(s=t.x+a*(h.y-t.y)\/e,r=h.y):2&i?(s=n.x,r=t.y+e*(n.x-t.x)\/a):1&i&&(s=h.x,r=t.y+e*(h.x-t.x)\/a),new p(s,r,o)}function si(t,e){var i=0;return t.x<e.min.x?i|=1:t.x>e.max.x&&(i|=2),t.y<e.min.y?i|=4:t.y>e.max.y&&(i|=8),i}function ri(t,e,i,n){var o=e.x,e=e.y,s=i.x-o,r=i.y-e,a=s*s+r*r;return 0<a&&(1<(a=((t.x-o)*s+(t.y-e)*r)\/a)?(o=i.x,e=i.y):0<a&&(o+=s*a,e+=r*a)),s=t.x-o,r=t.y-e,n?s*s+r*r:new p(o,e)}function I(t){return!d(t[0])||\"object\"!=typeof t[0][0]&&void 0!==t[0][0]}function ai(t){return console.warn(\"Deprecated use of _flat, please use L.LineUtil.isFlat instead.\"),I(t)}function hi(t,e){var i,n,o,s,r,a;if(!t||0===t.length)throw new Error(\"latlngs not passed\");I(t)||(console.warn(\"latlngs are not flat! Only the first ring will be used\"),t=t[0]);for(var h=w([0,0]),l=g(t),u=(l.getNorthWest().distanceTo(l.getSouthWest())*l.getNorthEast().distanceTo(l.getNorthWest())<1700&&(h=Qe(t)),t.length),c=[],d=0;d<u;d++){var _=w(t[d]);c.push(e.project(w([_.lat-h.lat,_.lng-h.lng])))}for(i=d=0;d<u-1;d++)i+=c[d].distanceTo(c[d+1])\/2;if(0===i)a=c[0];else for(n=d=0;d<u-1;d++)if(o=c[d],s=c[d+1],i<(n+=r=o.distanceTo(s))){a=[s.x-(r=(n-i)\/r)*(s.x-o.x),s.y-r*(s.y-o.y)];break}l=e.unproject(m(a));return w([l.lat+h.lat,l.lng+h.lng])}var vt={__proto__:null,simplify:ei,pointToSegmentDistance:ii,closestPointOnSegment:function(t,e,i){return ri(t,e,i)},clipSegment:ni,_getEdgeIntersection:oi,_getBitCode:si,_sqClosestPointOnSegment:ri,isFlat:I,_flat:ai,polylineCenter:hi},yt={project:function(t){return new p(t.lng,t.lat)},unproject:function(t){return new v(t.y,t.x)},bounds:new f([-180,-90],[180,90])},xt={R:6378137,R_MINOR:6356752.314245179,bounds:new f([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(t){var e=Math.PI\/180,i=this.R,n=t.lat*e,o=this.R_MINOR\/i,o=Math.sqrt(1-o*o),s=o*Math.sin(n),s=Math.tan(Math.PI\/4-n\/2)\/Math.pow((1-s)\/(1+s),o\/2),n=-i*Math.log(Math.max(s,1e-10));return new p(t.lng*e*i,n)},unproject:function(t){for(var e,i=180\/Math.PI,n=this.R,o=this.R_MINOR\/n,s=Math.sqrt(1-o*o),r=Math.exp(-t.y\/n),a=Math.PI\/2-2*Math.atan(r),h=0,l=.1;h<15&&1e-7<Math.abs(l);h++)e=s*Math.sin(a),e=Math.pow((1-e)\/(1+e),s\/2),a+=l=Math.PI\/2-2*Math.atan(r*e)-a;return new v(a*i,t.x*i\/n)}},wt={__proto__:null,LonLat:yt,Mercator:xt,SphericalMercator:rt},Pt=l({},st,{code:\"EPSG:3395\",projection:xt,transformation:ht(bt=.5\/(Math.PI*xt.R),.5,-bt,.5)}),li=l({},st,{code:\"EPSG:4326\",projection:yt,transformation:ht(1\/180,1,-1\/180,.5)}),Lt=l({},ot,{projection:yt,transformation:ht(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)\/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,e=e.lat-t.lat;return Math.sqrt(i*i+e*e)},infinite:!0}),o=(ot.Earth=st,ot.EPSG3395=Pt,ot.EPSG3857=lt,ot.EPSG900913=ut,ot.EPSG4326=li,ot.Simple=Lt,it.extend({options:{pane:\"overlayPane\",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[h(t)]=this},removeInteractiveTarget:function(t){return delete this._map._targets[h(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e,i=t.target;i.hasLayer(this)&&(this._map=i,this._zoomAnimated=i._zoomAnimated,this.getEvents&&(e=this.getEvents(),i.on(e,this),this.once(\"remove\",function(){i.off(e,this)},this)),this.onAdd(i),this.fire(\"add\"),i.fire(\"layeradd\",{layer:this}))}})),ui=(A.include({addLayer:function(t){var e;if(t._layerAdd)return e=h(t),this._layers[e]||((this._layers[e]=t)._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this;throw new Error(\"The provided object is not a Layer.\")},removeLayer:function(t){var e=h(t);return this._layers[e]&&(this._loaded&&t.onRemove(this),delete this._layers[e],this._loaded&&(this.fire(\"layerremove\",{layer:t}),t.fire(\"remove\")),t._map=t._mapToAdd=null),this},hasLayer:function(t){return h(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){for(var e=0,i=(t=t?d(t)?t:[t]:[]).length;e<i;e++)this.addLayer(t[e])},_addZoomLimit:function(t){isNaN(t.options.maxZoom)&&isNaN(t.options.minZoom)||(this._zoomBoundLayers[h(t)]=t,this._updateZoomLevels())},_removeZoomLimit:function(t){t=h(t);this._zoomBoundLayers[t]&&(delete this._zoomBoundLayers[t],this._updateZoomLevels())},_updateZoomLevels:function(){var t,e=1\/0,i=-1\/0,n=this._getZoomSpan();for(t in this._zoomBoundLayers)var o=this._zoomBoundLayers[t].options,e=void 0===o.minZoom?e:Math.min(e,o.minZoom),i=void 0===o.maxZoom?i:Math.max(i,o.maxZoom);this._layersMaxZoom=i===-1\/0?void 0:i,this._layersMinZoom=e===1\/0?void 0:e,n!==this._getZoomSpan()&&this.fire(\"zoomlevelschange\"),void 0===this.options.maxZoom&&this._layersMaxZoom&&this.getZoom()>this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()<this._layersMinZoom&&this.setZoom(this._layersMinZoom)}}),o.extend({initialize:function(t,e){var i,n;if(c(this,e),this._layers={},t)for(i=0,n=t.length;i<n;i++)this.addLayer(t[i])},addLayer:function(t){var e=this.getLayerId(t);return this._layers[e]=t,this._map&&this._map.addLayer(t),this},removeLayer:function(t){t=t in this._layers?t:this.getLayerId(t);return this._map&&this._layers[t]&&this._map.removeLayer(this._layers[t]),delete this._layers[t],this},hasLayer:function(t){return(\"number\"==typeof t?t:this.getLayerId(t))in this._layers},clearLayers:function(){return this.eachLayer(this.removeLayer,this)},invoke:function(t){var e,i,n=Array.prototype.slice.call(arguments,1);for(e in this._layers)(i=this._layers[e])[t]&&i[t].apply(i,n);return this},onAdd:function(t){this.eachLayer(t.addLayer,t)},onRemove:function(t){this.eachLayer(t.removeLayer,t)},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=[];return this.eachLayer(t.push,t),t},setZIndex:function(t){return this.invoke(\"setZIndex\",t)},getLayerId:h})),ci=ui.extend({addLayer:function(t){return this.hasLayer(t)?this:(t.addEventParent(this),ui.prototype.addLayer.call(this,t),this.fire(\"layeradd\",{layer:t}))},removeLayer:function(t){return this.hasLayer(t)?((t=t in this._layers?this._layers[t]:t).removeEventParent(this),ui.prototype.removeLayer.call(this,t),this.fire(\"layerremove\",{layer:t})):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,e=new s;for(t in this._layers){var i=this._layers[t];e.extend(i.getBounds?i.getBounds():i.getLatLng())}return e}}),di=et.extend({options:{popupAnchor:[0,0],tooltipAnchor:[0,0],crossOrigin:!1},initialize:function(t){c(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)return i=this._createImg(i,e&&\"IMG\"===e.tagName?e:null),this._setIconStyles(i,t),!this.options.crossOrigin&&\"\"!==this.options.crossOrigin||(i.crossOrigin=!0===this.options.crossOrigin?\"\":this.options.crossOrigin),i;if(\"icon\"===t)throw new Error(\"iconUrl not set in Icon options (see the docs).\");return null},_setIconStyles:function(t,e){var i=this.options,n=i[e+\"Size\"],n=m(n=\"number\"==typeof n?[n,n]:n),o=m(\"shadow\"===e&&i.shadowAnchor||i.iconAnchor||n&&n.divideBy(2,!0));t.className=\"leaflet-marker-\"+e+\" \"+(i.className||\"\"),o&&(t.style.marginLeft=-o.x+\"px\",t.style.marginTop=-o.y+\"px\"),n&&(t.style.width=n.x+\"px\",t.style.height=n.y+\"px\")},_createImg:function(t,e){return(e=e||document.createElement(\"img\")).src=t,e},_getIconUrl:function(t){return b.retina&&this.options[t+\"RetinaUrl\"]||this.options[t+\"Url\"]}});var _i=di.extend({options:{iconUrl:\"marker-icon.png\",iconRetinaUrl:\"marker-icon-2x.png\",shadowUrl:\"marker-shadow.png\",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],tooltipAnchor:[16,-28],shadowSize:[41,41]},_getIconUrl:function(t){return\"string\"!=typeof _i.imagePath&&(_i.imagePath=this._detectIconPath()),(this.options.imagePath||_i.imagePath)+di.prototype._getIconUrl.call(this,t)},_stripUrl:function(t){function e(t,e,i){return(e=e.exec(t))&&e[i]}return(t=e(t,\/^url\\((['\"])?(.+)\\1\\)$\/,2))&&e(t,\/^(.*)marker-icon\\.png$\/,1)},_detectIconPath:function(){var t=P(\"div\",\"leaflet-default-icon-path\",document.body),e=pe(t,\"background-image\")||pe(t,\"backgroundImage\");return document.body.removeChild(t),(e=this._stripUrl(e))?e:(t=document.querySelector('link[href$=\"leaflet.css\"]'))?t.href.substring(0,t.href.length-\"leaflet.css\".length-1):\"\"}}),pi=n.extend({initialize:function(t){this._marker=t},addHooks:function(){var t=this._marker._icon;this._draggable||(this._draggable=new Xe(t,t,!0)),this._draggable.on({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).enable(),M(t,\"leaflet-marker-draggable\")},removeHooks:function(){this._draggable.off({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).disable(),this._marker._icon&&z(this._marker._icon,\"leaflet-marker-draggable\")},moved:function(){return this._draggable&&this._draggable._moved},_adjustPan:function(t){var e=this._marker,i=e._map,n=this._marker.options.autoPanSpeed,o=this._marker.options.autoPanPadding,s=Pe(e._icon),r=i.getPixelBounds(),a=i.getPixelOrigin(),a=_(r.min._subtract(a).add(o),r.max._subtract(a).subtract(o));a.contains(s)||(o=m((Math.max(a.max.x,s.x)-a.max.x)\/(r.max.x-a.max.x)-(Math.min(a.min.x,s.x)-a.min.x)\/(r.min.x-a.min.x),(Math.max(a.max.y,s.y)-a.max.y)\/(r.max.y-a.max.y)-(Math.min(a.min.y,s.y)-a.min.y)\/(r.min.y-a.min.y)).multiplyBy(n),i.panBy(o,{animate:!1}),this._draggable._newPos._add(o),this._draggable._startPos._add(o),Z(e._icon,this._draggable._newPos),this._onDrag(t),this._panRequest=x(this._adjustPan.bind(this,t)))},_onDragStart:function(){this._oldLatLng=this._marker.getLatLng(),this._marker.closePopup&&this._marker.closePopup(),this._marker.fire(\"movestart\").fire(\"dragstart\")},_onPreDrag:function(t){this._marker.options.autoPan&&(r(this._panRequest),this._panRequest=x(this._adjustPan.bind(this,t)))},_onDrag:function(t){var e=this._marker,i=e._shadow,n=Pe(e._icon),o=e._map.layerPointToLatLng(n);i&&Z(i,n),e._latlng=o,t.latlng=o,t.oldLatLng=this._oldLatLng,e.fire(\"move\",t).fire(\"drag\",t)},_onDragEnd:function(t){r(this._panRequest),delete this._oldLatLng,this._marker.fire(\"moveend\").fire(\"dragend\",t)}}),mi=o.extend({options:{icon:new _i,interactive:!0,keyboard:!0,title:\"\",alt:\"Marker\",zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250,pane:\"markerPane\",shadowPane:\"shadowPane\",bubblingMouseEvents:!1,autoPanOnFocus:!0,draggable:!1,autoPan:!1,autoPanPadding:[50,50],autoPanSpeed:10},initialize:function(t,e){c(this,e),this._latlng=w(t)},onAdd:function(t){this._zoomAnimated=this._zoomAnimated&&t.options.markerZoomAnimation,this._zoomAnimated&&t.on(\"zoomanim\",this._animateZoom,this),this._initIcon(),this.update()},onRemove:function(t){this.dragging&&this.dragging.enabled()&&(this.options.draggable=!0,this.dragging.removeHooks()),delete this.dragging,this._zoomAnimated&&t.off(\"zoomanim\",this._animateZoom,this),this._removeIcon(),this._removeShadow()},getEvents:function(){return{zoom:this.update,viewreset:this.update}},getLatLng:function(){return this._latlng},setLatLng:function(t){var e=this._latlng;return this._latlng=w(t),this.update(),this.fire(\"move\",{oldLatLng:e,latlng:this._latlng})},setZIndexOffset:function(t){return this.options.zIndexOffset=t,this.update()},getIcon:function(){return this.options.icon},setIcon:function(t){return this.options.icon=t,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup,this._popup.options),this},getElement:function(){return this._icon},update:function(){var t;return this._icon&&this._map&&(t=this._map.latLngToLayerPoint(this._latlng).round(),this._setPos(t)),this},_initIcon:function(){var t=this.options,e=\"leaflet-zoom-\"+(this._zoomAnimated?\"animated\":\"hide\"),i=t.icon.createIcon(this._icon),n=!1,i=(i!==this._icon&&(this._icon&&this._removeIcon(),n=!0,t.title&&(i.title=t.title),\"IMG\"===i.tagName&&(i.alt=t.alt||\"\")),M(i,e),t.keyboard&&(i.tabIndex=\"0\",i.setAttribute(\"role\",\"button\")),this._icon=i,t.riseOnHover&&this.on({mouseover:this._bringToFront,mouseout:this._resetZIndex}),this.options.autoPanOnFocus&&S(i,\"focus\",this._panOnFocus,this),t.icon.createShadow(this._shadow)),o=!1;i!==this._shadow&&(this._removeShadow(),o=!0),i&&(M(i,e),i.alt=\"\"),this._shadow=i,t.opacity<1&&this._updateOpacity(),n&&this.getPane().appendChild(this._icon),this._initInteraction(),i&&o&&this.getPane(t.shadowPane).appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&this.off({mouseover:this._bringToFront,mouseout:this._resetZIndex}),this.options.autoPanOnFocus&&k(this._icon,\"focus\",this._panOnFocus,this),T(this._icon),this.removeInteractiveTarget(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&T(this._shadow),this._shadow=null},_setPos:function(t){this._icon&&Z(this._icon,t),this._shadow&&Z(this._shadow,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){this._icon&&(this._icon.style.zIndex=this._zIndex+t)},_animateZoom:function(t){t=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).round();this._setPos(t)},_initInteraction:function(){var t;this.options.interactive&&(M(this._icon,\"leaflet-interactive\"),this.addInteractiveTarget(this._icon),pi&&(t=this.options.draggable,this.dragging&&(t=this.dragging.enabled(),this.dragging.disable()),this.dragging=new pi(this),t&&this.dragging.enable()))},setOpacity:function(t){return this.options.opacity=t,this._map&&this._updateOpacity(),this},_updateOpacity:function(){var t=this.options.opacity;this._icon&&C(this._icon,t),this._shadow&&C(this._shadow,t)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)},_panOnFocus:function(){var t,e,i=this._map;i&&(t=(e=this.options.icon.options).iconSize?m(e.iconSize):m(0,0),e=e.iconAnchor?m(e.iconAnchor):m(0,0),i.panInside(this._latlng,{paddingTopLeft:e,paddingBottomRight:t.subtract(e)}))},_getPopupAnchor:function(){return this.options.icon.options.popupAnchor},_getTooltipAnchor:function(){return this.options.icon.options.tooltipAnchor}});var fi=o.extend({options:{stroke:!0,color:\"#3388ff\",weight:3,opacity:1,lineCap:\"round\",lineJoin:\"round\",dashArray:null,dashOffset:null,fill:!1,fillColor:null,fillOpacity:.2,fillRule:\"evenodd\",interactive:!0,bubblingMouseEvents:!0},beforeAdd:function(t){this._renderer=t.getRenderer(this)},onAdd:function(){this._renderer._initPath(this),this._reset(),this._renderer._addPath(this)},onRemove:function(){this._renderer._removePath(this)},redraw:function(){return this._map&&this._renderer._updatePath(this),this},setStyle:function(t){return c(this,t),this._renderer&&(this._renderer._updateStyle(this),this.options.stroke&&t&&Object.prototype.hasOwnProperty.call(t,\"weight\")&&this._updateBounds()),this},bringToFront:function(){return this._renderer&&this._renderer._bringToFront(this),this},bringToBack:function(){return this._renderer&&this._renderer._bringToBack(this),this},getElement:function(){return this._path},_reset:function(){this._project(),this._update()},_clickTolerance:function(){return(this.options.stroke?this.options.weight\/2:0)+(this._renderer.options.tolerance||0)}}),gi=fi.extend({options:{fill:!0,radius:10},initialize:function(t,e){c(this,e),this._latlng=w(t),this._radius=this.options.radius},setLatLng:function(t){var e=this._latlng;return this._latlng=w(t),this.redraw(),this.fire(\"move\",{oldLatLng:e,latlng:this._latlng})},getLatLng:function(){return this._latlng},setRadius:function(t){return this.options.radius=this._radius=t,this.redraw()},getRadius:function(){return this._radius},setStyle:function(t){var e=t&&t.radius||this._radius;return fi.prototype.setStyle.call(this,t),this.setRadius(e),this},_project:function(){this._point=this._map.latLngToLayerPoint(this._latlng),this._updateBounds()},_updateBounds:function(){var t=this._radius,e=this._radiusY||t,i=this._clickTolerance(),t=[t+i,e+i];this._pxBounds=new f(this._point.subtract(t),this._point.add(t))},_update:function(){this._map&&this._updatePath()},_updatePath:function(){this._renderer._updateCircle(this)},_empty:function(){return this._radius&&!this._renderer._bounds.intersects(this._pxBounds)},_containsPoint:function(t){return t.distanceTo(this._point)<=this._radius+this._clickTolerance()}});var vi=gi.extend({initialize:function(t,e,i){if(c(this,e=\"number\"==typeof e?l({},i,{radius:e}):e),this._latlng=w(t),isNaN(this.options.radius))throw new Error(\"Circle radius cannot be NaN\");this._mRadius=this.options.radius},setRadius:function(t){return this._mRadius=t,this.redraw()},getRadius:function(){return this._mRadius},getBounds:function(){var t=[this._radius,this._radiusY||this._radius];return new s(this._map.layerPointToLatLng(this._point.subtract(t)),this._map.layerPointToLatLng(this._point.add(t)))},setStyle:fi.prototype.setStyle,_project:function(){var t,e,i,n,o,s=this._latlng.lng,r=this._latlng.lat,a=this._map,h=a.options.crs;h.distance===st.distance?(n=Math.PI\/180,o=this._mRadius\/st.R\/n,t=a.project([r+o,s]),e=a.project([r-o,s]),e=t.add(e).divideBy(2),i=a.unproject(e).lat,n=Math.acos((Math.cos(o*n)-Math.sin(r*n)*Math.sin(i*n))\/(Math.cos(r*n)*Math.cos(i*n)))\/n,!isNaN(n)&&0!==n||(n=o\/Math.cos(Math.PI\/180*r)),this._point=e.subtract(a.getPixelOrigin()),this._radius=isNaN(n)?0:e.x-a.project([i,s-n]).x,this._radiusY=e.y-t.y):(o=h.unproject(h.project(this._latlng).subtract([this._mRadius,0])),this._point=a.latLngToLayerPoint(this._latlng),this._radius=this._point.x-a.latLngToLayerPoint(o).x),this._updateBounds()}});var yi=fi.extend({options:{smoothFactor:1,noClip:!1},initialize:function(t,e){c(this,e),this._setLatLngs(t)},getLatLngs:function(){return this._latlngs},setLatLngs:function(t){return this._setLatLngs(t),this.redraw()},isEmpty:function(){return!this._latlngs.length},closestLayerPoint:function(t){for(var e=1\/0,i=null,n=ri,o=0,s=this._parts.length;o<s;o++)for(var r=this._parts[o],a=1,h=r.length;a<h;a++){var l,u,c=n(t,l=r[a-1],u=r[a],!0);c<e&&(e=c,i=n(t,l,u))}return i&&(i.distance=Math.sqrt(e)),i},getCenter:function(){if(this._map)return hi(this._defaultShape(),this._map.options.crs);throw new Error(\"Must add layer to map before using getCenter()\")},getBounds:function(){return this._bounds},addLatLng:function(t,e){return e=e||this._defaultShape(),t=w(t),e.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new s,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return I(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var e=[],i=I(t),n=0,o=t.length;n<o;n++)i?(e[n]=w(t[n]),this._bounds.extend(e[n])):e[n]=this._convertLatLngs(t[n]);return e},_project:function(){var t=new f;this._rings=[],this._projectLatlngs(this._latlngs,this._rings,t),this._bounds.isValid()&&t.isValid()&&(this._rawPxBounds=t,this._updateBounds())},_updateBounds:function(){var t=this._clickTolerance(),t=new p(t,t);this._rawPxBounds&&(this._pxBounds=new f([this._rawPxBounds.min.subtract(t),this._rawPxBounds.max.add(t)]))},_projectLatlngs:function(t,e,i){var n,o,s=t[0]instanceof v,r=t.length;if(s){for(o=[],n=0;n<r;n++)o[n]=this._map.latLngToLayerPoint(t[n]),i.extend(o[n]);e.push(o)}else for(n=0;n<r;n++)this._projectLatlngs(t[n],e,i)},_clipPoints:function(){var t=this._renderer._bounds;if(this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var e,i,n,o,s=this._parts,r=0,a=0,h=this._rings.length;r<h;r++)for(e=0,i=(o=this._rings[r]).length;e<i-1;e++)(n=ni(o[e],o[e+1],t,e,!0))&&(s[a]=s[a]||[],s[a].push(n[0]),n[1]===o[e+1]&&e!==i-2||(s[a].push(n[1]),a++))},_simplifyPoints:function(){for(var t=this._parts,e=this.options.smoothFactor,i=0,n=t.length;i<n;i++)t[i]=ei(t[i],e)},_update:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),this._updatePath())},_updatePath:function(){this._renderer._updatePoly(this)},_containsPoint:function(t,e){var i,n,o,s,r,a,h=this._clickTolerance();if(this._pxBounds&&this._pxBounds.contains(t))for(i=0,s=this._parts.length;i<s;i++)for(n=0,o=(r=(a=this._parts[i]).length)-1;n<r;o=n++)if((e||0!==n)&&ii(t,a[o],a[n])<=h)return!0;return!1}});yi._flat=ai;var xi=yi.extend({options:{fill:!0},isEmpty:function(){return!this._latlngs.length||!this._latlngs[0].length},getCenter:function(){if(this._map)return $e(this._defaultShape(),this._map.options.crs);throw new Error(\"Must add layer to map before using getCenter()\")},_convertLatLngs:function(t){var t=yi.prototype._convertLatLngs.call(this,t),e=t.length;return 2<=e&&t[0]instanceof v&&t[0].equals(t[e-1])&&t.pop(),t},_setLatLngs:function(t){yi.prototype._setLatLngs.call(this,t),I(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return(I(this._latlngs[0])?this._latlngs:this._latlngs[0])[0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,e=new p(e,e),t=new f(t.min.subtract(e),t.max.add(e));if(this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var i,n=0,o=this._rings.length;n<o;n++)(i=Je(this._rings[n],t,!0)).length&&this._parts.push(i)},_updatePath:function(){this._renderer._updatePoly(this,!0)},_containsPoint:function(t){var e,i,n,o,s,r,a,h,l=!1;if(!this._pxBounds||!this._pxBounds.contains(t))return!1;for(o=0,a=this._parts.length;o<a;o++)for(s=0,r=(h=(e=this._parts[o]).length)-1;s<h;r=s++)i=e[s],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&&(l=!l);return l||yi.prototype._containsPoint.call(this,t,!0)}});var wi=ci.extend({initialize:function(t,e){c(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=d(t)?t:t.features;if(o){for(e=0,i=o.length;e<i;e++)((n=o[e]).geometries||n.geometry||n.features||n.coordinates)&&this.addData(n);return this}var s,r=this.options;return(!r.filter||r.filter(t))&&(s=bi(t,r))?(s.feature=Zi(t),s.defaultOptions=s.options,this.resetStyle(s),r.onEachFeature&&r.onEachFeature(t,s),this.addLayer(s)):this},resetStyle:function(t){return void 0===t?this.eachLayer(this.resetStyle,this):(t.options=l({},t.defaultOptions),this._setLayerStyle(t,this.options.style),this)},setStyle:function(e){return this.eachLayer(function(t){this._setLayerStyle(t,e)},this)},_setLayerStyle:function(t,e){t.setStyle&&(\"function\"==typeof e&&(e=e(t.feature)),t.setStyle(e))}});function bi(t,e){var i,n,o,s,r=\"Feature\"===t.type?t.geometry:t,a=r?r.coordinates:null,h=[],l=e&&e.pointToLayer,u=e&&e.coordsToLatLng||Li;if(!a&&!r)return null;switch(r.type){case\"Point\":return Pi(l,t,i=u(a),e);case\"MultiPoint\":for(o=0,s=a.length;o<s;o++)i=u(a[o]),h.push(Pi(l,t,i,e));return new ci(h);case\"LineString\":case\"MultiLineString\":return n=Ti(a,\"LineString\"===r.type?0:1,u),new yi(n,e);case\"Polygon\":case\"MultiPolygon\":return n=Ti(a,\"Polygon\"===r.type?1:2,u),new xi(n,e);case\"GeometryCollection\":for(o=0,s=r.geometries.length;o<s;o++){var c=bi({geometry:r.geometries[o],type:\"Feature\",properties:t.properties},e);c&&h.push(c)}return new ci(h);case\"FeatureCollection\":for(o=0,s=r.features.length;o<s;o++){var d=bi(r.features[o],e);d&&h.push(d)}return new ci(h);default:throw new Error(\"Invalid GeoJSON object.\")}}function Pi(t,e,i,n){return t?t(e,i):new mi(i,n&&n.markersInheritOptions&&n)}function Li(t){return new v(t[1],t[0],t[2])}function Ti(t,e,i){for(var n,o=[],s=0,r=t.length;s<r;s++)n=e?Ti(t[s],e-1,i):(i||Li)(t[s]),o.push(n);return o}function Mi(t,e){return void 0!==(t=w(t)).alt?[i(t.lng,e),i(t.lat,e),i(t.alt,e)]:[i(t.lng,e),i(t.lat,e)]}function zi(t,e,i,n){for(var o=[],s=0,r=t.length;s<r;s++)o.push(e?zi(t[s],I(t[s])?0:e-1,i,n):Mi(t[s],n));return!e&&i&&0<o.length&&o.push(o[0].slice()),o}function Ci(t,e){return t.feature?l({},t.feature,{geometry:e}):Zi(e)}function Zi(t){return\"Feature\"===t.type||\"FeatureCollection\"===t.type?t:{type:\"Feature\",properties:{},geometry:t}}Tt={toGeoJSON:function(t){return Ci(this,{type:\"Point\",coordinates:Mi(this.getLatLng(),t)})}};function Si(t,e){return new wi(t,e)}mi.include(Tt),vi.include(Tt),gi.include(Tt),yi.include({toGeoJSON:function(t){var e=!I(this._latlngs);return Ci(this,{type:(e?\"Multi\":\"\")+\"LineString\",coordinates:zi(this._latlngs,e?1:0,!1,t)})}}),xi.include({toGeoJSON:function(t){var e=!I(this._latlngs),i=e&&!I(this._latlngs[0]),t=zi(this._latlngs,i?2:e?1:0,!0,t);return Ci(this,{type:(i?\"Multi\":\"\")+\"Polygon\",coordinates:t=e?t:[t]})}}),ui.include({toMultiPoint:function(e){var i=[];return this.eachLayer(function(t){i.push(t.toGeoJSON(e).geometry.coordinates)}),Ci(this,{type:\"MultiPoint\",coordinates:i})},toGeoJSON:function(e){var i,n,t=this.feature&&this.feature.geometry&&this.feature.geometry.type;return\"MultiPoint\"===t?this.toMultiPoint(e):(i=\"GeometryCollection\"===t,n=[],this.eachLayer(function(t){t.toGeoJSON&&(t=t.toGeoJSON(e),i?n.push(t.geometry):\"FeatureCollection\"===(t=Zi(t)).type?n.push.apply(n,t.features):n.push(t))}),i?Ci(this,{geometries:n,type:\"GeometryCollection\"}):{type:\"FeatureCollection\",features:n})}});var Mt=Si,Ei=o.extend({options:{opacity:1,alt:\"\",interactive:!1,crossOrigin:!1,errorOverlayUrl:\"\",zIndex:1,className:\"\"},initialize:function(t,e,i){this._url=t,this._bounds=g(e),c(this,i)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(M(this._image,\"leaflet-interactive\"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){T(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&fe(this._image),this},bringToBack:function(){return this._map&&ge(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=g(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t=\"IMG\"===this._url.tagName,e=this._image=t?this._url:P(\"img\");M(e,\"leaflet-image-layer\"),this._zoomAnimated&&M(e,\"leaflet-zoom-animated\"),this.options.className&&M(e,this.options.className),e.onselectstart=u,e.onmousemove=u,e.onload=a(this.fire,this,\"load\"),e.onerror=a(this._overlayOnError,this,\"error\"),!this.options.crossOrigin&&\"\"!==this.options.crossOrigin||(e.crossOrigin=!0===this.options.crossOrigin?\"\":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),t?this._url=e.src:(e.src=this._url,e.alt=this.options.alt)},_animateZoom:function(t){var e=this._map.getZoomScale(t.zoom),t=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;be(this._image,t,e)},_reset:function(){var t=this._image,e=new f(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),i=e.getSize();Z(t,e.min),t.style.width=i.x+\"px\",t.style.height=i.y+\"px\"},_updateOpacity:function(){C(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire(\"error\");var t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)},getCenter:function(){return this._bounds.getCenter()}}),ki=Ei.extend({options:{autoplay:!0,loop:!0,keepAspectRatio:!0,muted:!1,playsInline:!0},_initImage:function(){var t=\"VIDEO\"===this._url.tagName,e=this._image=t?this._url:P(\"video\");if(M(e,\"leaflet-image-layer\"),this._zoomAnimated&&M(e,\"leaflet-zoom-animated\"),this.options.className&&M(e,this.options.className),e.onselectstart=u,e.onmousemove=u,e.onloadeddata=a(this.fire,this,\"load\"),t){for(var i=e.getElementsByTagName(\"source\"),n=[],o=0;o<i.length;o++)n.push(i[o].src);this._url=0<i.length?n:[e.src]}else{d(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,\"objectFit\")&&(e.style.objectFit=\"fill\"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted,e.playsInline=!!this.options.playsInline;for(var s=0;s<this._url.length;s++){var r=P(\"source\");r.src=this._url[s],e.appendChild(r)}}}});var Oi=Ei.extend({_initImage:function(){var t=this._image=this._url;M(t,\"leaflet-image-layer\"),this._zoomAnimated&&M(t,\"leaflet-zoom-animated\"),this.options.className&&M(t,this.options.className),t.onselectstart=u,t.onmousemove=u}});var Ai=o.extend({options:{interactive:!1,offset:[0,0],className:\"\",pane:void 0,content:\"\"},initialize:function(t,e){t&&(t instanceof v||d(t))?(this._latlng=w(t),c(this,e)):(c(this,t),this._source=e),this.options.content&&(this._content=this.options.content)},openOn:function(t){return(t=arguments.length?t:this._source._map).hasLayer(this)||t.addLayer(this),this},close:function(){return this._map&&this._map.removeLayer(this),this},toggle:function(t){return this._map?this.close():(arguments.length?this._source=t:t=this._source,this._prepareOpen(),this.openOn(t._map)),this},onAdd:function(t){this._zoomAnimated=t._zoomAnimated,this._container||this._initLayout(),t._fadeAnimated&&C(this._container,0),clearTimeout(this._removeTimeout),this.getPane().appendChild(this._container),this.update(),t._fadeAnimated&&C(this._container,1),this.bringToFront(),this.options.interactive&&(M(this._container,\"leaflet-interactive\"),this.addInteractiveTarget(this._container))},onRemove:function(t){t._fadeAnimated?(C(this._container,0),this._removeTimeout=setTimeout(a(T,void 0,this._container),200)):T(this._container),this.options.interactive&&(z(this._container,\"leaflet-interactive\"),this.removeInteractiveTarget(this._container))},getLatLng:function(){return this._latlng},setLatLng:function(t){return this._latlng=w(t),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(t){return this._content=t,this.update(),this},getElement:function(){return this._container},update:function(){this._map&&(this._container.style.visibility=\"hidden\",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility=\"\",this._adjustPan())},getEvents:function(){var t={zoom:this._updatePosition,viewreset:this._updatePosition};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},isOpen:function(){return!!this._map&&this._map.hasLayer(this)},bringToFront:function(){return this._map&&fe(this._container),this},bringToBack:function(){return this._map&&ge(this._container),this},_prepareOpen:function(t){if(!(i=this._source)._map)return!1;if(i instanceof ci){var e,i=null,n=this._source._layers;for(e in n)if(n[e]._map){i=n[e];break}if(!i)return!1;this._source=i}if(!t)if(i.getCenter)t=i.getCenter();else if(i.getLatLng)t=i.getLatLng();else{if(!i.getBounds)throw new Error(\"Unable to get source layer LatLng.\");t=i.getBounds().getCenter()}return this.setLatLng(t),this._map&&this.update(),!0},_updateContent:function(){if(this._content){var t=this._contentNode,e=\"function\"==typeof this._content?this._content(this._source||this):this._content;if(\"string\"==typeof e)t.innerHTML=e;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(e)}this.fire(\"contentupdate\")}},_updatePosition:function(){var t,e,i;this._map&&(e=this._map.latLngToLayerPoint(this._latlng),t=m(this.options.offset),i=this._getAnchor(),this._zoomAnimated?Z(this._container,e.add(i)):t=t.add(e).add(i),e=this._containerBottom=-t.y,i=this._containerLeft=-Math.round(this._containerWidth\/2)+t.x,this._container.style.bottom=e+\"px\",this._container.style.left=i+\"px\")},_getAnchor:function(){return[0,0]}}),Bi=(A.include({_initOverlay:function(t,e,i,n){var o=e;return o instanceof t||(o=new t(n).setContent(e)),i&&o.setLatLng(i),o}}),o.include({_initOverlay:function(t,e,i,n){var o=i;return o instanceof t?(c(o,n),o._source=this):(o=e&&!n?e:new t(n,this)).setContent(i),o}}),Ai.extend({options:{pane:\"popupPane\",offset:[0,7],maxWidth:300,minWidth:50,maxHeight:null,autoPan:!0,autoPanPaddingTopLeft:null,autoPanPaddingBottomRight:null,autoPanPadding:[5,5],keepInView:!1,closeButton:!0,autoClose:!0,closeOnEscapeKey:!0,className:\"\"},openOn:function(t){return!(t=arguments.length?t:this._source._map).hasLayer(this)&&t._popup&&t._popup.options.autoClose&&t.removeLayer(t._popup),t._popup=this,Ai.prototype.openOn.call(this,t)},onAdd:function(t){Ai.prototype.onAdd.call(this,t),t.fire(\"popupopen\",{popup:this}),this._source&&(this._source.fire(\"popupopen\",{popup:this},!0),this._source instanceof fi||this._source.on(\"preclick\",Ae))},onRemove:function(t){Ai.prototype.onRemove.call(this,t),t.fire(\"popupclose\",{popup:this}),this._source&&(this._source.fire(\"popupclose\",{popup:this},!0),this._source instanceof fi||this._source.off(\"preclick\",Ae))},getEvents:function(){var t=Ai.prototype.getEvents.call(this);return(void 0!==this.options.closeOnClick?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(t.preclick=this.close),this.options.keepInView&&(t.moveend=this._adjustPan),t},_initLayout:function(){var t=\"leaflet-popup\",e=this._container=P(\"div\",t+\" \"+(this.options.className||\"\")+\" leaflet-zoom-animated\"),i=this._wrapper=P(\"div\",t+\"-content-wrapper\",e);this._contentNode=P(\"div\",t+\"-content\",i),Ie(e),Be(this._contentNode),S(e,\"contextmenu\",Ae),this._tipContainer=P(\"div\",t+\"-tip-container\",e),this._tip=P(\"div\",t+\"-tip\",this._tipContainer),this.options.closeButton&&((i=this._closeButton=P(\"a\",t+\"-close-button\",e)).setAttribute(\"role\",\"button\"),i.setAttribute(\"aria-label\",\"Close popup\"),i.href=\"#close\",i.innerHTML='<span aria-hidden=\"true\">&#215;<\/span>',S(i,\"click\",function(t){O(t),this.close()},this))},_updateLayout:function(){var t=this._contentNode,e=t.style,i=(e.width=\"\",e.whiteSpace=\"nowrap\",t.offsetWidth),i=Math.min(i,this.options.maxWidth),i=(i=Math.max(i,this.options.minWidth),e.width=i+1+\"px\",e.whiteSpace=\"\",e.height=\"\",t.offsetHeight),n=this.options.maxHeight,o=\"leaflet-popup-scrolled\";(n&&n<i?(e.height=n+\"px\",M):z)(t,o),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var t=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),e=this._getAnchor();Z(this._container,t.add(e))},_adjustPan:function(){var t,e,i,n,o,s,r,a;this.options.autoPan&&(this._map._panAnim&&this._map._panAnim.stop(),this._autopanning?this._autopanning=!1:(t=this._map,e=parseInt(pe(this._container,\"marginBottom\"),10)||0,e=this._container.offsetHeight+e,a=this._containerWidth,(i=new p(this._containerLeft,-e-this._containerBottom))._add(Pe(this._container)),i=t.layerPointToContainerPoint(i),o=m(this.options.autoPanPadding),n=m(this.options.autoPanPaddingTopLeft||o),o=m(this.options.autoPanPaddingBottomRight||o),s=t.getSize(),r=0,i.x+a+o.x>s.x&&(r=i.x+a-s.x+o.x),i.x-r-n.x<(a=0)&&(r=i.x-n.x),i.y+e+o.y>s.y&&(a=i.y+e-s.y+o.y),i.y-a-n.y<0&&(a=i.y-n.y),(r||a)&&(this.options.keepInView&&(this._autopanning=!0),t.fire(\"autopanstart\").panBy([r,a]))))},_getAnchor:function(){return m(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}})),Ii=(A.mergeOptions({closePopupOnClick:!0}),A.include({openPopup:function(t,e,i){return this._initOverlay(Bi,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),o.include({bindPopup:function(t,e){return this._popup=this._initOverlay(Bi,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof ci||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e;this._popup&&this._map&&(Re(t),e=t.layer||t.target,this._popup._source!==e||e instanceof fi?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}}),Ai.extend({options:{pane:\"tooltipPane\",offset:[0,0],direction:\"auto\",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Ai.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire(\"tooltipopen\",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire(\"tooltipopen\",{tooltip:this},!0))},onRemove:function(t){Ai.prototype.onRemove.call(this,t),t.fire(\"tooltipclose\",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire(\"tooltipclose\",{tooltip:this},!0))},getEvents:function(){var t=Ai.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t=\"leaflet-tooltip \"+(this.options.className||\"\")+\" leaflet-zoom-\"+(this._zoomAnimated?\"animated\":\"hide\");this._contentNode=this._container=P(\"div\",t),this._container.setAttribute(\"role\",\"tooltip\"),this._container.setAttribute(\"id\",\"leaflet-tooltip-\"+h(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i=this._map,n=this._container,o=i.latLngToContainerPoint(i.getCenter()),i=i.layerPointToContainerPoint(t),s=this.options.direction,r=n.offsetWidth,a=n.offsetHeight,h=m(this.options.offset),l=this._getAnchor(),i=\"top\"===s?(e=r\/2,a):\"bottom\"===s?(e=r\/2,0):(e=\"center\"===s?r\/2:\"right\"===s?0:\"left\"===s?r:i.x<o.x?(s=\"right\",0):(s=\"left\",r+2*(h.x+l.x)),a\/2);t=t.subtract(m(e,i,!0)).add(h).add(l),z(n,\"leaflet-tooltip-right\"),z(n,\"leaflet-tooltip-left\"),z(n,\"leaflet-tooltip-top\"),z(n,\"leaflet-tooltip-bottom\"),M(n,\"leaflet-tooltip-\"+s),Z(n,t)},_updatePosition:function(){var t=this._map.latLngToLayerPoint(this._latlng);this._setPosition(t)},setOpacity:function(t){this.options.opacity=t,this._container&&C(this._container,t)},_animateZoom:function(t){t=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);this._setPosition(t)},_getAnchor:function(){return m(this._source&&this._source._getTooltipAnchor&&!this.options.sticky?this._source._getTooltipAnchor():[0,0])}})),Ri=(A.include({openTooltip:function(t,e,i){return this._initOverlay(Ii,t,e,i).openOn(this),this},closeTooltip:function(t){return t.close(),this}}),o.include({bindTooltip:function(t,e){return this._tooltip&&this.isTooltipOpen()&&this.unbindTooltip(),this._tooltip=this._initOverlay(Ii,this._tooltip,t,e),this._initTooltipInteractions(),this._tooltip.options.permanent&&this._map&&this._map.hasLayer(this)&&this.openTooltip(),this},unbindTooltip:function(){return this._tooltip&&(this._initTooltipInteractions(!0),this.closeTooltip(),this._tooltip=null),this},_initTooltipInteractions:function(t){var e,i;!t&&this._tooltipHandlersAdded||(e=t?\"off\":\"on\",i={remove:this.closeTooltip,move:this._moveTooltip},this._tooltip.options.permanent?i.add=this._openTooltip:(i.mouseover=this._openTooltip,i.mouseout=this.closeTooltip,i.click=this._openTooltip,this._map?this._addFocusListeners():i.add=this._addFocusListeners),this._tooltip.options.sticky&&(i.mousemove=this._moveTooltip),this[e](i),this._tooltipHandlersAdded=!t)},openTooltip:function(t){return this._tooltip&&(this instanceof ci||(this._tooltip._source=this),this._tooltip._prepareOpen(t)&&(this._tooltip.openOn(this._map),this.getElement?this._setAriaDescribedByOnLayer(this):this.eachLayer&&this.eachLayer(this._setAriaDescribedByOnLayer,this))),this},closeTooltip:function(){if(this._tooltip)return this._tooltip.close()},toggleTooltip:function(){return this._tooltip&&this._tooltip.toggle(this),this},isTooltipOpen:function(){return this._tooltip.isOpen()},setTooltipContent:function(t){return this._tooltip&&this._tooltip.setContent(t),this},getTooltip:function(){return this._tooltip},_addFocusListeners:function(){this.getElement?this._addFocusListenersOnLayer(this):this.eachLayer&&this.eachLayer(this._addFocusListenersOnLayer,this)},_addFocusListenersOnLayer:function(t){var e=\"function\"==typeof t.getElement&&t.getElement();e&&(S(e,\"focus\",function(){this._tooltip._source=t,this.openTooltip()},this),S(e,\"blur\",this.closeTooltip,this))},_setAriaDescribedByOnLayer:function(t){t=\"function\"==typeof t.getElement&&t.getElement();t&&t.setAttribute(\"aria-describedby\",this._tooltip._container.id)},_openTooltip:function(t){var e;this._tooltip&&this._map&&(this._map.dragging&&this._map.dragging.moving()&&!this._openOnceFlag?(this._openOnceFlag=!0,(e=this)._map.once(\"moveend\",function(){e._openOnceFlag=!1,e._openTooltip(t)})):(this._tooltip._source=t.layer||t.target,this.openTooltip(this._tooltip.options.sticky?t.latlng:void 0)))},_moveTooltip:function(t){var e=t.latlng;this._tooltip.options.sticky&&t.originalEvent&&(t=this._map.mouseEventToContainerPoint(t.originalEvent),t=this._map.containerPointToLayerPoint(t),e=this._map.layerPointToLatLng(t)),this._tooltip.setLatLng(e)}}),di.extend({options:{iconSize:[12,12],html:!1,bgPos:null,className:\"leaflet-div-icon\"},createIcon:function(t){var t=t&&\"DIV\"===t.tagName?t:document.createElement(\"div\"),e=this.options;return e.html instanceof Element?(me(t),t.appendChild(e.html)):t.innerHTML=!1!==e.html?e.html:\"\",e.bgPos&&(e=m(e.bgPos),t.style.backgroundPosition=-e.x+\"px \"+-e.y+\"px\"),this._setIconStyles(t,\"icon\"),t},createShadow:function(){return null}}));di.Default=_i;var Ni=o.extend({options:{tileSize:256,opacity:1,updateWhenIdle:b.mobile,updateWhenZooming:!0,updateInterval:200,zIndex:1,bounds:null,minZoom:0,maxZoom:void 0,maxNativeZoom:void 0,minNativeZoom:void 0,noWrap:!1,pane:\"tilePane\",className:\"\",keepBuffer:2},initialize:function(t){c(this,t)},onAdd:function(){this._initContainer(),this._levels={},this._tiles={},this._resetView()},beforeAdd:function(t){t._addZoomLimit(this)},onRemove:function(t){this._removeAllTiles(),T(this._container),t._removeZoomLimit(this),this._container=null,this._tileZoom=void 0},bringToFront:function(){return this._map&&(fe(this._container),this._setAutoZIndex(Math.max)),this},bringToBack:function(){return this._map&&(ge(this._container),this._setAutoZIndex(Math.min)),this},getContainer:function(){return this._container},setOpacity:function(t){return this.options.opacity=t,this._updateOpacity(),this},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},isLoading:function(){return this._loading},redraw:function(){var t;return this._map&&(this._removeAllTiles(),(t=this._clampZoom(this._map.getZoom()))!==this._tileZoom&&(this._tileZoom=t,this._updateLevels()),this._update()),this},getEvents:function(){var t={viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd};return this.options.updateWhenIdle||(this._onMove||(this._onMove=j(this._onMoveEnd,this.options.updateInterval,this)),t.move=this._onMove),this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},createTile:function(){return document.createElement(\"div\")},getTileSize:function(){var t=this.options.tileSize;return t instanceof p?t:new p(t,t)},_updateZIndex:function(){this._container&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(t){for(var e,i=this.getPane().children,n=-t(-1\/0,1\/0),o=0,s=i.length;o<s;o++)e=i[o].style.zIndex,i[o]!==this._container&&e&&(n=t(n,+e));isFinite(n)&&(this.options.zIndex=n+t(-1,1),this._updateZIndex())},_updateOpacity:function(){if(this._map&&!b.ielt9){C(this._container,this.options.opacity);var t,e=+new Date,i=!1,n=!1;for(t in this._tiles){var o,s=this._tiles[t];s.current&&s.loaded&&(o=Math.min(1,(e-s.loaded)\/200),C(s.el,o),o<1?i=!0:(s.active?n=!0:this._onOpaqueTile(s),s.active=!0))}n&&!this._noPrune&&this._pruneTiles(),i&&(r(this._fadeFrame),this._fadeFrame=x(this._updateOpacity,this))}},_onOpaqueTile:u,_initContainer:function(){this._container||(this._container=P(\"div\",\"leaflet-layer \"+(this.options.className||\"\")),this._updateZIndex(),this.options.opacity<1&&this._updateOpacity(),this.getPane().appendChild(this._container))},_updateLevels:function(){var t=this._tileZoom,e=this.options.maxZoom;if(void 0!==t){for(var i in this._levels)i=Number(i),this._levels[i].el.children.length||i===t?(this._levels[i].el.style.zIndex=e-Math.abs(t-i),this._onUpdateLevel(i)):(T(this._levels[i].el),this._removeTilesAtZoom(i),this._onRemoveLevel(i),delete this._levels[i]);var n=this._levels[t],o=this._map;return n||((n=this._levels[t]={}).el=P(\"div\",\"leaflet-tile-container leaflet-zoom-animated\",this._container),n.el.style.zIndex=e,n.origin=o.project(o.unproject(o.getPixelOrigin()),t).round(),n.zoom=t,this._setZoomTransform(n,o.getCenter(),o.getZoom()),u(n.el.offsetWidth),this._onCreateLevel(n)),this._level=n}},_onUpdateLevel:u,_onRemoveLevel:u,_onCreateLevel:u,_pruneTiles:function(){if(this._map){var t,e,i,n=this._map.getZoom();if(n>this.options.maxZoom||n<this.options.minZoom)this._removeAllTiles();else{for(t in this._tiles)(i=this._tiles[t]).retain=i.current;for(t in this._tiles)(i=this._tiles[t]).current&&!i.active&&(e=i.coords,this._retainParent(e.x,e.y,e.z,e.z-5)||this._retainChildren(e.x,e.y,e.z,e.z+2));for(t in this._tiles)this._tiles[t].retain||this._removeTile(t)}}},_removeTilesAtZoom:function(t){for(var e in this._tiles)this._tiles[e].coords.z===t&&this._removeTile(e)},_removeAllTiles:function(){for(var t in this._tiles)this._removeTile(t)},_invalidateAll:function(){for(var t in this._levels)T(this._levels[t].el),this._onRemoveLevel(Number(t)),delete this._levels[t];this._removeAllTiles(),this._tileZoom=void 0},_retainParent:function(t,e,i,n){var t=Math.floor(t\/2),e=Math.floor(e\/2),i=i-1,o=new p(+t,+e),o=(o.z=i,this._tileCoordsToKey(o)),o=this._tiles[o];return o&&o.active?o.retain=!0:(o&&o.loaded&&(o.retain=!0),n<i&&this._retainParent(t,e,i,n))},_retainChildren:function(t,e,i,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*e;s<2*e+2;s++){var r=new p(o,s),r=(r.z=i+1,this._tileCoordsToKey(r)),r=this._tiles[r];r&&r.active?r.retain=!0:(r&&r.loaded&&(r.retain=!0),i+1<n&&this._retainChildren(o,s,i+1,n))}},_resetView:function(t){t=t&&(t.pinch||t.flyTo);this._setView(this._map.getCenter(),this._map.getZoom(),t,t)},_animateZoom:function(t){this._setView(t.center,t.zoom,!0,t.noUpdate)},_clampZoom:function(t){var e=this.options;return void 0!==e.minNativeZoom&&t<e.minNativeZoom?e.minNativeZoom:void 0!==e.maxNativeZoom&&e.maxNativeZoom<t?e.maxNativeZoom:t},_setView:function(t,e,i,n){var o=Math.round(e),o=void 0!==this.options.maxZoom&&o>this.options.maxZoom||void 0!==this.options.minZoom&&o<this.options.minZoom?void 0:this._clampZoom(o),s=this.options.updateWhenZooming&&o!==this._tileZoom;n&&!s||(this._tileZoom=o,this._abortLoading&&this._abortLoading(),this._updateLevels(),this._resetGrid(),void 0!==o&&this._update(t),i||this._pruneTiles(),this._noPrune=!!i),this._setZoomTransforms(t,e)},_setZoomTransforms:function(t,e){for(var i in this._levels)this._setZoomTransform(this._levels[i],t,e)},_setZoomTransform:function(t,e,i){var n=this._map.getZoomScale(i,t.zoom),e=t.origin.multiplyBy(n).subtract(this._map._getNewPixelOrigin(e,i)).round();b.any3d?be(t.el,e,n):Z(t.el,e)},_resetGrid:function(){var t=this._map,e=t.options.crs,i=this._tileSize=this.getTileSize(),n=this._tileZoom,o=this._map.getPixelWorldBounds(this._tileZoom);o&&(this._globalTileRange=this._pxBoundsToTileRange(o)),this._wrapX=e.wrapLng&&!this.options.noWrap&&[Math.floor(t.project([0,e.wrapLng[0]],n).x\/i.x),Math.ceil(t.project([0,e.wrapLng[1]],n).x\/i.y)],this._wrapY=e.wrapLat&&!this.options.noWrap&&[Math.floor(t.project([e.wrapLat[0],0],n).y\/i.x),Math.ceil(t.project([e.wrapLat[1],0],n).y\/i.y)]},_onMoveEnd:function(){this._map&&!this._map._animatingZoom&&this._update()},_getTiledPixelBounds:function(t){var e=this._map,i=e._animatingZoom?Math.max(e._animateToZoom,e.getZoom()):e.getZoom(),i=e.getZoomScale(i,this._tileZoom),t=e.project(t,this._tileZoom).floor(),e=e.getSize().divideBy(2*i);return new f(t.subtract(e),t.add(e))},_update:function(t){var e=this._map;if(e){var i=this._clampZoom(e.getZoom());if(void 0===t&&(t=e.getCenter()),void 0!==this._tileZoom){var n,e=this._getTiledPixelBounds(t),o=this._pxBoundsToTileRange(e),s=o.getCenter(),r=[],e=this.options.keepBuffer,a=new f(o.getBottomLeft().subtract([e,-e]),o.getTopRight().add([e,-e]));if(!(isFinite(o.min.x)&&isFinite(o.min.y)&&isFinite(o.max.x)&&isFinite(o.max.y)))throw new Error(\"Attempted to load an infinite number of tiles\");for(n in this._tiles){var h=this._tiles[n].coords;h.z===this._tileZoom&&a.contains(new p(h.x,h.y))||(this._tiles[n].current=!1)}if(1<Math.abs(i-this._tileZoom))this._setView(t,i);else{for(var l=o.min.y;l<=o.max.y;l++)for(var u=o.min.x;u<=o.max.x;u++){var c,d=new p(u,l);d.z=this._tileZoom,this._isValidTile(d)&&((c=this._tiles[this._tileCoordsToKey(d)])?c.current=!0:r.push(d))}if(r.sort(function(t,e){return t.distanceTo(s)-e.distanceTo(s)}),0!==r.length){this._loading||(this._loading=!0,this.fire(\"loading\"));for(var _=document.createDocumentFragment(),u=0;u<r.length;u++)this._addTile(r[u],_);this._level.el.appendChild(_)}}}}},_isValidTile:function(t){var e=this._map.options.crs;if(!e.infinite){var i=this._globalTileRange;if(!e.wrapLng&&(t.x<i.min.x||t.x>i.max.x)||!e.wrapLat&&(t.y<i.min.y||t.y>i.max.y))return!1}return!this.options.bounds||(e=this._tileCoordsToBounds(t),g(this.options.bounds).overlaps(e))},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),i=n.add(i);return[e.unproject(n,t.z),e.unproject(i,t.z)]},_tileCoordsToBounds:function(t){t=this._tileCoordsToNwSe(t),t=new s(t[0],t[1]);return t=this.options.noWrap?t:this._map.wrapLatLngBounds(t)},_tileCoordsToKey:function(t){return t.x+\":\"+t.y+\":\"+t.z},_keyToTileCoords:function(t){var t=t.split(\":\"),e=new p(+t[0],+t[1]);return e.z=+t[2],e},_removeTile:function(t){var e=this._tiles[t];e&&(T(e.el),delete this._tiles[t],this.fire(\"tileunload\",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){M(t,\"leaflet-tile\");var e=this.getTileSize();t.style.width=e.x+\"px\",t.style.height=e.y+\"px\",t.onselectstart=u,t.onmousemove=u,b.ielt9&&this.options.opacity<1&&C(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),a(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&x(a(this._tileReady,this,t,null,o)),Z(o,i),this._tiles[n]={el:o,coords:t,current:!0},e.appendChild(o),this.fire(\"tileloadstart\",{tile:o,coords:t})},_tileReady:function(t,e,i){e&&this.fire(\"tileerror\",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);(i=this._tiles[n])&&(i.loaded=+new Date,this._map._fadeAnimated?(C(i.el,0),r(this._fadeFrame),this._fadeFrame=x(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(M(i.el,\"leaflet-tile-loaded\"),this.fire(\"tileload\",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire(\"load\"),b.ielt9||!this._map._fadeAnimated?x(this._pruneTiles,this):setTimeout(a(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new p(this._wrapX?H(t.x,this._wrapX):t.x,this._wrapY?H(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new f(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var Di=Ni.extend({options:{minZoom:0,maxZoom:18,subdomains:\"abc\",errorTileUrl:\"\",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=c(this,e)).detectRetina&&b.retina&&0<e.maxZoom?(e.tileSize=Math.floor(e.tileSize\/2),e.zoomReverse?(e.zoomOffset--,e.minZoom=Math.min(e.maxZoom,e.minZoom+1)):(e.zoomOffset++,e.maxZoom=Math.max(e.minZoom,e.maxZoom-1)),e.minZoom=Math.max(0,e.minZoom)):e.zoomReverse?e.minZoom=Math.min(e.maxZoom,e.minZoom):e.maxZoom=Math.max(e.minZoom,e.maxZoom),\"string\"==typeof e.subdomains&&(e.subdomains=e.subdomains.split(\"\")),this.on(\"tileunload\",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&void 0===e&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var i=document.createElement(\"img\");return S(i,\"load\",a(this._tileOnLoad,this,e,i)),S(i,\"error\",a(this._tileOnError,this,e,i)),!this.options.crossOrigin&&\"\"!==this.options.crossOrigin||(i.crossOrigin=!0===this.options.crossOrigin?\"\":this.options.crossOrigin),\"string\"==typeof this.options.referrerPolicy&&(i.referrerPolicy=this.options.referrerPolicy),i.alt=\"\",i.src=this.getTileUrl(t),i},getTileUrl:function(t){var e={r:b.retina?\"@2x\":\"\",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};return this._map&&!this._map.options.crs.infinite&&(t=this._globalTileRange.max.y-t.y,this.options.tms&&(e.y=t),e[\"-y\"]=t),q(this._url,l(e,this.options))},_tileOnLoad:function(t,e){b.ielt9?setTimeout(a(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&e.getAttribute(\"src\")!==n&&(e.src=n),t(i,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom;return(t=this.options.zoomReverse?e-t:t)+this.options.zoomOffset},_getSubdomain:function(t){t=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[t]},_abortLoading:function(){var t,e,i;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&((i=this._tiles[t].el).onload=u,i.onerror=u,i.complete||(i.src=K,e=this._tiles[t].coords,T(i),delete this._tiles[t],this.fire(\"tileabort\",{tile:i,coords:e})))},_removeTile:function(t){var e=this._tiles[t];if(e)return e.el.setAttribute(\"src\",K),Ni.prototype._removeTile.call(this,t)},_tileReady:function(t,e,i){if(this._map&&(!i||i.getAttribute(\"src\")!==K))return Ni.prototype._tileReady.call(this,t,e,i)}});function ji(t,e){return new Di(t,e)}var Hi=Di.extend({defaultWmsParams:{service:\"WMS\",request:\"GetMap\",layers:\"\",styles:\"\",format:\"image\/jpeg\",transparent:!1,version:\"1.1.1\"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var i,n=l({},this.defaultWmsParams);for(i in e)i in this.options||(n[i]=e[i]);var t=(e=c(this,e)).detectRetina&&b.retina?2:1,o=this.getTileSize();n.width=o.x*t,n.height=o.y*t,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=1.3<=this._wmsVersion?\"crs\":\"srs\";this.wmsParams[e]=this._crs.code,Di.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),i=this._crs,i=_(i.project(e[0]),i.project(e[1])),e=i.min,i=i.max,e=(1.3<=this._wmsVersion&&this._crs===li?[e.y,e.x,i.y,i.x]:[e.x,e.y,i.x,i.y]).join(\",\"),i=Di.prototype.getTileUrl.call(this,t);return i+U(this.wmsParams,i,this.options.uppercase)+(this.options.uppercase?\"&BBOX=\":\"&bbox=\")+e},setParams:function(t,e){return l(this.wmsParams,t),e||this.redraw(),this}});Di.WMS=Hi,ji.wms=function(t,e){return new Hi(t,e)};var Wi=o.extend({options:{padding:.1},initialize:function(t){c(this,t),h(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),M(this._container,\"leaflet-zoom-animated\")),this.getPane().appendChild(this._container),this._update(),this.on(\"update\",this._updatePaths,this)},onRemove:function(){this.off(\"update\",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),n=this._map.getSize().multiplyBy(.5+this.options.padding),o=this._map.project(this._center,e),n=n.multiplyBy(-i).add(o).subtract(this._map._getNewPixelOrigin(t,e));b.any3d?be(this._container,n,i):Z(this._container,n)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new f(i,i.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),Fi=Wi.extend({options:{tolerance:0},getEvents:function(){var t=Wi.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){Wi.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement(\"canvas\");S(t,\"mousemove\",this._onMouseMove,this),S(t,\"click dblclick mousedown mouseup contextmenu\",this._onClick,this),S(t,\"mouseout\",this._handleMouseOut,this),t._leaflet_disable_events=!0,this._ctx=t.getContext(\"2d\")},_destroyContainer:function(){r(this._redrawRequest),delete this._ctx,T(this._container),k(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){var t,e,i,n;this._map._animatingZoom&&this._bounds||(Wi.prototype._update.call(this),t=this._bounds,e=this._container,i=t.getSize(),n=b.retina?2:1,Z(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+\"px\",e.style.height=i.y+\"px\",b.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire(\"update\"))},_reset:function(){Wi.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t);t=(this._layers[h(t)]=t)._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=t),this._drawLast=t,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,e=e.prev;i?i.prev=e:this._drawLast=e,e?e.next=i:this._drawFirst=i,delete t._order,delete this._layers[h(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if(\"string\"==typeof t.options.dashArray){for(var e,i=t.options.dashArray.split(\/[, ]+\/),n=[],o=0;o<i.length;o++){if(e=Number(i[o]),isNaN(e))return;n.push(e)}t.options._dashArray=n}else t.options._dashArray=t.options.dashArray},_requestRedraw:function(t){this._map&&(this._extendRedrawBounds(t),this._redrawRequest=this._redrawRequest||x(this._redraw,this))},_extendRedrawBounds:function(t){var e;t._pxBounds&&(e=(t.options.weight||0)+1,this._redrawBounds=this._redrawBounds||new f,this._redrawBounds.extend(t._pxBounds.min.subtract([e,e])),this._redrawBounds.extend(t._pxBounds.max.add([e,e])))},_redraw:function(){this._redrawRequest=null,this._redrawBounds&&(this._redrawBounds.min._floor(),this._redrawBounds.max._ceil()),this._clear(),this._draw(),this._redrawBounds=null},_clear:function(){var t,e=this._redrawBounds;e?(t=e.getSize(),this._ctx.clearRect(e.min.x,e.min.y,t.x,t.y)):(this._ctx.save(),this._ctx.setTransform(1,0,0,1,0,0),this._ctx.clearRect(0,0,this._container.width,this._container.height),this._ctx.restore())},_draw:function(){var t,e,i=this._redrawBounds;this._ctx.save(),i&&(e=i.getSize(),this._ctx.beginPath(),this._ctx.rect(i.min.x,i.min.y,e.x,e.y),this._ctx.clip()),this._drawing=!0;for(var n=this._drawFirst;n;n=n.next)t=n.layer,(!i||t._pxBounds&&t._pxBounds.intersects(i))&&t._updatePath();this._drawing=!1,this._ctx.restore()},_updatePoly:function(t,e){if(this._drawing){var i,n,o,s,r=t._parts,a=r.length,h=this._ctx;if(a){for(h.beginPath(),i=0;i<a;i++){for(n=0,o=r[i].length;n<o;n++)s=r[i][n],h[n?\"lineTo\":\"moveTo\"](s.x,s.y);e&&h.closePath()}this._fillStroke(h,t)}}},_updateCircle:function(t){var e,i,n,o;this._drawing&&!t._empty()&&(e=t._point,i=this._ctx,n=Math.max(Math.round(t._radius),1),1!=(o=(Math.max(Math.round(t._radiusY),1)||n)\/n)&&(i.save(),i.scale(1,o)),i.beginPath(),i.arc(e.x,e.y\/o,n,0,2*Math.PI,!1),1!=o&&i.restore(),this._fillStroke(i,t))},_fillStroke:function(t,e){var i=e.options;i.fill&&(t.globalAlpha=i.fillOpacity,t.fillStyle=i.fillColor||i.color,t.fill(i.fillRule||\"evenodd\")),i.stroke&&0!==i.weight&&(t.setLineDash&&t.setLineDash(e.options&&e.options._dashArray||[]),t.globalAlpha=i.opacity,t.lineWidth=i.weight,t.strokeStyle=i.color,t.lineCap=i.lineCap,t.lineJoin=i.lineJoin,t.stroke())},_onClick:function(t){for(var e,i,n=this._map.mouseEventToLayerPoint(t),o=this._drawFirst;o;o=o.next)(e=o.layer).options.interactive&&e._containsPoint(n)&&((\"click\"===t.type||\"preclick\"===t.type)&&this._map._draggableMoved(e)||(i=e));this._fireEvent(!!i&&[i],t)},_onMouseMove:function(t){var e;!this._map||this._map.dragging.moving()||this._map._animatingZoom||(e=this._map.mouseEventToLayerPoint(t),this._handleMouseHover(t,e))},_handleMouseOut:function(t){var e=this._hoveredLayer;e&&(z(this._container,\"leaflet-interactive\"),this._fireEvent([e],t,\"mouseout\"),this._hoveredLayer=null,this._mouseHoverThrottled=!1)},_handleMouseHover:function(t,e){if(!this._mouseHoverThrottled){for(var i,n,o=this._drawFirst;o;o=o.next)(i=o.layer).options.interactive&&i._containsPoint(e)&&(n=i);n!==this._hoveredLayer&&(this._handleMouseOut(t),n&&(M(this._container,\"leaflet-interactive\"),this._fireEvent([n],t,\"mouseover\"),this._hoveredLayer=n)),this._fireEvent(!!this._hoveredLayer&&[this._hoveredLayer],t),this._mouseHoverThrottled=!0,setTimeout(a(function(){this._mouseHoverThrottled=!1},this),32)}},_fireEvent:function(t,e,i){this._map._fireDOMEvent(e,i||e.type,t)},_bringToFront:function(t){var e,i,n=t._order;n&&(e=n.next,i=n.prev,e&&((e.prev=i)?i.next=e:e&&(this._drawFirst=e),n.prev=this._drawLast,(this._drawLast.next=n).next=null,this._drawLast=n,this._requestRedraw(t)))},_bringToBack:function(t){var e,i,n=t._order;n&&(e=n.next,(i=n.prev)&&((i.next=e)?e.prev=i:i&&(this._drawLast=i),n.prev=null,n.next=this._drawFirst,this._drawFirst.prev=n,this._drawFirst=n,this._requestRedraw(t)))}});function Ui(t){return b.canvas?new Fi(t):null}var Vi=function(){try{return document.namespaces.add(\"lvml\",\"urn:schemas-microsoft-com:vml\"),function(t){return document.createElement(\"<lvml:\"+t+' class=\"lvml\">')}}catch(t){}return function(t){return document.createElement(\"<\"+t+' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"lvml\">')}}(),zt={_initContainer:function(){this._container=P(\"div\",\"leaflet-vml-container\")},_update:function(){this._map._animatingZoom||(Wi.prototype._update.call(this),this.fire(\"update\"))},_initPath:function(t){var e=t._container=Vi(\"shape\");M(e,\"leaflet-vml-shape \"+(this.options.className||\"\")),e.coordsize=\"1 1\",t._path=Vi(\"path\"),e.appendChild(t._path),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;T(e),t.removeInteractiveTarget(e),delete this._layers[h(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e=e||(t._stroke=Vi(\"stroke\")),o.appendChild(e),e.weight=n.weight+\"px\",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=d(n.dashArray)?n.dashArray.join(\" \"):n.dashArray.replace(\/( *, *)\/g,\" \"):e.dashStyle=\"\",e.endcap=n.lineCap.replace(\"butt\",\"flat\"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i=i||(t._fill=Vi(\"fill\")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?\"M0 0\":\"AL \"+e.x+\",\"+e.y+\" \"+i+\",\"+n+\" 0,23592600\")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){fe(t._container)},_bringToBack:function(t){ge(t._container)}},qi=b.vml?Vi:ct,Gi=Wi.extend({_initContainer:function(){this._container=qi(\"svg\"),this._container.setAttribute(\"pointer-events\",\"none\"),this._rootGroup=qi(\"g\"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){T(this._container),k(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){var t,e,i;this._map._animatingZoom&&this._bounds||(Wi.prototype._update.call(this),e=(t=this._bounds).getSize(),i=this._container,this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute(\"width\",e.x),i.setAttribute(\"height\",e.y)),Z(i,t.min),i.setAttribute(\"viewBox\",[t.min.x,t.min.y,e.x,e.y].join(\" \")),this.fire(\"update\"))},_initPath:function(t){var e=t._path=qi(\"path\");t.options.className&&M(e,t.options.className),t.options.interactive&&M(e,\"leaflet-interactive\"),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){T(t._path),t.removeInteractiveTarget(t._path),delete this._layers[h(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,t=t.options;e&&(t.stroke?(e.setAttribute(\"stroke\",t.color),e.setAttribute(\"stroke-opacity\",t.opacity),e.setAttribute(\"stroke-width\",t.weight),e.setAttribute(\"stroke-linecap\",t.lineCap),e.setAttribute(\"stroke-linejoin\",t.lineJoin),t.dashArray?e.setAttribute(\"stroke-dasharray\",t.dashArray):e.removeAttribute(\"stroke-dasharray\"),t.dashOffset?e.setAttribute(\"stroke-dashoffset\",t.dashOffset):e.removeAttribute(\"stroke-dashoffset\")):e.setAttribute(\"stroke\",\"none\"),t.fill?(e.setAttribute(\"fill\",t.fillColor||t.color),e.setAttribute(\"fill-opacity\",t.fillOpacity),e.setAttribute(\"fill-rule\",t.fillRule||\"evenodd\")):e.setAttribute(\"fill\",\"none\"))},_updatePoly:function(t,e){this._setPath(t,dt(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n=\"a\"+i+\",\"+(Math.max(Math.round(t._radiusY),1)||i)+\" 0 1,0 \",e=t._empty()?\"M0 0\":\"M\"+(e.x-i)+\",\"+e.y+n+2*i+\",0 \"+n+2*-i+\",0 \";this._setPath(t,e)},_setPath:function(t,e){t._path.setAttribute(\"d\",e)},_bringToFront:function(t){fe(t._path)},_bringToBack:function(t){ge(t._path)}});function Ki(t){return b.svg||b.vml?new Gi(t):null}b.vml&&Gi.include(zt),A.include({getRenderer:function(t){t=(t=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer)||(this._renderer=this._createRenderer());return this.hasLayer(t)||this.addLayer(t),t},_getPaneRenderer:function(t){var e;return\"overlayPane\"!==t&&void 0!==t&&(void 0===(e=this._paneRenderers[t])&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e)},_createRenderer:function(t){return this.options.preferCanvas&&Ui(t)||Ki(t)}});var Yi=xi.extend({initialize:function(t,e){xi.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=g(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});Gi.create=qi,Gi.pointsToPath=dt,wi.geometryToLayer=bi,wi.coordsToLatLng=Li,wi.coordsToLatLngs=Ti,wi.latLngToCoords=Mi,wi.latLngsToCoords=zi,wi.getFeature=Ci,wi.asFeature=Zi,A.mergeOptions({boxZoom:!0});var _t=n.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on(\"unload\",this._destroy,this)},addHooks:function(){S(this._container,\"mousedown\",this._onMouseDown,this)},removeHooks:function(){k(this._container,\"mousedown\",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){T(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),re(),Le(),this._startPoint=this._map.mouseEventToContainerPoint(t),S(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=P(\"div\",\"leaflet-zoom-box\",this._container),M(this._container,\"leaflet-crosshair\"),this._map.fire(\"boxzoomstart\")),this._point=this._map.mouseEventToContainerPoint(t);var t=new f(this._point,this._startPoint),e=t.getSize();Z(this._box,t.min),this._box.style.width=e.x+\"px\",this._box.style.height=e.y+\"px\"},_finish:function(){this._moved&&(T(this._box),z(this._container,\"leaflet-crosshair\")),ae(),Te(),k(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){1!==t.which&&1!==t.button||(this._finish(),this._moved&&(this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(a(this._resetState,this),0),t=new s(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point)),this._map.fitBounds(t).fire(\"boxzoomend\",{boxZoomBounds:t})))},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}}),Ct=(A.addInitHook(\"addHandler\",\"boxZoom\",_t),A.mergeOptions({doubleClickZoom:!0}),n.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(),n=e.options.zoomDelta,i=t.originalEvent.shiftKey?i-n:i+n;\"center\"===e.options.doubleClickZoom?e.setZoom(i):e.setZoomAround(t.containerPoint,i)}})),Zt=(A.addInitHook(\"addHandler\",\"doubleClickZoom\",Ct),A.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1\/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0}),n.extend({addHooks:function(){var t;this._draggable||(t=this._map,this._draggable=new Xe(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on(\"predrag\",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on(\"predrag\",this._onPreDragWrap,this),t.on(\"zoomend\",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))),M(this._map._container,\"leaflet-grab leaflet-touch-drag\"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){z(this._map._container,\"leaflet-grab\"),z(this._map._container,\"leaflet-touch-drag\"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t,e=this._map;e._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity?(t=g(this._map.options.maxBounds),this._offsetLimit=_(this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(t.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))):this._offsetLimit=null,e.fire(\"movestart\").fire(\"dragstart\"),e.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){var e,i;this._map.options.inertia&&(e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos,this._positions.push(i),this._times.push(e),this._prunePositions(e)),this._map.fire(\"move\",t).fire(\"drag\",t)},_prunePositions:function(t){for(;1<this._positions.length&&50<t-this._times[0];)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){var t,e;this._viscosity&&this._offsetLimit&&(t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit,t.x<e.min.x&&(t.x=this._viscousLimit(t.x,e.min.x)),t.y<e.min.y&&(t.y=this._viscousLimit(t.y,e.min.y)),t.x>e.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t))},_onPreDragWrap: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,n=(n+e+i)%t-e-i,t=Math.abs(o+i)<Math.abs(n+i)?o:n;this._draggable._absPos=this._draggable._newPos.clone(),this._draggable._newPos.x=t},_onDragEnd:function(t){var e,i,n,o,s=this._map,r=s.options,a=!r.inertia||t.noInertia||this._times.length<2;s.fire(\"dragend\",t),!a&&(this._prunePositions(+new Date),t=this._lastPos.subtract(this._positions[0]),a=(this._lastTime-this._times[0])\/1e3,e=r.easeLinearity,a=(t=t.multiplyBy(e\/a)).distanceTo([0,0]),i=Math.min(r.inertiaMaxSpeed,a),t=t.multiplyBy(i\/a),n=i\/(r.inertiaDeceleration*e),(o=t.multiplyBy(-n\/2).round()).x||o.y)?(o=s._limitOffset(o,s.options.maxBounds),x(function(){s.panBy(o,{duration:n,easeLinearity:e,noMoveStart:!0,animate:!0})})):s.fire(\"moveend\")}})),St=(A.addInitHook(\"addHandler\",\"dragging\",Zt),A.mergeOptions({keyboard:!0,keyboardPanDelta:80}),n.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,54,173]},initialize:function(t){this._map=t,this._setPanDelta(t.options.keyboardPanDelta),this._setZoomDelta(t.options.zoomDelta)},addHooks:function(){var t=this._map._container;t.tabIndex<=0&&(t.tabIndex=\"0\"),S(t,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.on({focus:this._addHooks,blur:this._removeHooks},this)},removeHooks:function(){this._removeHooks(),k(this._map._container,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.off({focus:this._addHooks,blur:this._removeHooks},this)},_onMouseDown:function(){var t,e,i;this._focused||(i=document.body,t=document.documentElement,e=i.scrollTop||t.scrollTop,i=i.scrollLeft||t.scrollLeft,this._map._container.focus(),window.scrollTo(i,e))},_onFocus:function(){this._focused=!0,this._map.fire(\"focus\")},_onBlur:function(){this._focused=!1,this._map.fire(\"blur\")},_setPanDelta:function(t){for(var e=this._panKeys={},i=this.keyCodes,n=0,o=i.left.length;n<o;n++)e[i.left[n]]=[-1*t,0];for(n=0,o=i.right.length;n<o;n++)e[i.right[n]]=[t,0];for(n=0,o=i.down.length;n<o;n++)e[i.down[n]]=[0,t];for(n=0,o=i.up.length;n<o;n++)e[i.up[n]]=[0,-1*t]},_setZoomDelta:function(t){for(var e=this._zoomKeys={},i=this.keyCodes,n=0,o=i.zoomIn.length;n<o;n++)e[i.zoomIn[n]]=t;for(n=0,o=i.zoomOut.length;n<o;n++)e[i.zoomOut[n]]=-t},_addHooks:function(){S(document,\"keydown\",this._onKeyDown,this)},_removeHooks:function(){k(document,\"keydown\",this._onKeyDown,this)},_onKeyDown:function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var e,i,n=t.keyCode,o=this._map;if(n in this._panKeys)o._panAnim&&o._panAnim._inProgress||(i=this._panKeys[n],t.shiftKey&&(i=m(i).multiplyBy(3)),o.options.maxBounds&&(i=o._limitOffset(m(i),o.options.maxBounds)),o.options.worldCopyJump?(e=o.wrapLatLng(o.unproject(o.project(o.getCenter()).add(i))),o.panTo(e)):o.panBy(i));else if(n in this._zoomKeys)o.setZoom(o.getZoom()+(t.shiftKey?3:1)*this._zoomKeys[n]);else{if(27!==n||!o._popup||!o._popup.options.closeOnEscapeKey)return;o.closePopup()}Re(t)}}})),Et=(A.addInitHook(\"addHandler\",\"keyboard\",St),A.mergeOptions({scrollWheelZoom:!0,wheelDebounceTime:40,wheelPxPerZoomLevel:60}),n.extend({addHooks:function(){S(this._map._container,\"wheel\",this._onWheelScroll,this),this._delta=0},removeHooks:function(){k(this._map._container,\"wheel\",this._onWheelScroll,this)},_onWheelScroll:function(t){var e=He(t),i=this._map.options.wheelDebounceTime,e=(this._delta+=e,this._lastMousePos=this._map.mouseEventToContainerPoint(t),this._startTime||(this._startTime=+new Date),Math.max(i-(+new Date-this._startTime),0));clearTimeout(this._timer),this._timer=setTimeout(a(this._performZoom,this),e),Re(t)},_performZoom:function(){var t=this._map,e=t.getZoom(),i=this._map.options.zoomSnap||0,n=(t._stop(),this._delta\/(4*this._map.options.wheelPxPerZoomLevel)),n=4*Math.log(2\/(1+Math.exp(-Math.abs(n))))\/Math.LN2,i=i?Math.ceil(n\/i)*i:n,n=t._limitZoom(e+(0<this._delta?i:-i))-e;this._delta=0,this._startTime=null,n&&(\"center\"===t.options.scrollWheelZoom?t.setZoom(e+n):t.setZoomAround(this._lastMousePos,e+n))}})),kt=(A.addInitHook(\"addHandler\",\"scrollWheelZoom\",Et),A.mergeOptions({tapHold:b.touchNative&&b.safari&&b.mobile,tapTolerance:15}),n.extend({addHooks:function(){S(this._map._container,\"touchstart\",this._onDown,this)},removeHooks:function(){k(this._map._container,\"touchstart\",this._onDown,this)},_onDown:function(t){var e;clearTimeout(this._holdTimeout),1===t.touches.length&&(e=t.touches[0],this._startPos=this._newPos=new p(e.clientX,e.clientY),this._holdTimeout=setTimeout(a(function(){this._cancel(),this._isTapValid()&&(S(document,\"touchend\",O),S(document,\"touchend touchcancel\",this._cancelClickPrevent),this._simulateEvent(\"contextmenu\",e))},this),600),S(document,\"touchend touchcancel contextmenu\",this._cancel,this),S(document,\"touchmove\",this._onMove,this))},_cancelClickPrevent:function t(){k(document,\"touchend\",O),k(document,\"touchend touchcancel\",t)},_cancel:function(){clearTimeout(this._holdTimeout),k(document,\"touchend touchcancel contextmenu\",this._cancel,this),k(document,\"touchmove\",this._onMove,this)},_onMove:function(t){t=t.touches[0];this._newPos=new p(t.clientX,t.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(t,e){t=new MouseEvent(t,{bubbles:!0,cancelable:!0,view:window,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY});t._simulated=!0,e.target.dispatchEvent(t)}})),Ot=(A.addInitHook(\"addHandler\",\"tapHold\",kt),A.mergeOptions({touchZoom:b.touch,bounceAtZoomLimits:!0}),n.extend({addHooks:function(){M(this._map._container,\"leaflet-touch-zoom\"),S(this._map._container,\"touchstart\",this._onTouchStart,this)},removeHooks:function(){z(this._map._container,\"leaflet-touch-zoom\"),k(this._map._container,\"touchstart\",this._onTouchStart,this)},_onTouchStart:function(t){var e,i,n=this._map;!t.touches||2!==t.touches.length||n._animatingZoom||this._zooming||(e=n.mouseEventToContainerPoint(t.touches[0]),i=n.mouseEventToContainerPoint(t.touches[1]),this._centerPoint=n.getSize()._divideBy(2),this._startLatLng=n.containerPointToLatLng(this._centerPoint),\"center\"!==n.options.touchZoom&&(this._pinchStartLatLng=n.containerPointToLatLng(e.add(i)._divideBy(2))),this._startDist=e.distanceTo(i),this._startZoom=n.getZoom(),this._moved=!1,this._zooming=!0,n._stop(),S(document,\"touchmove\",this._onTouchMove,this),S(document,\"touchend touchcancel\",this._onTouchEnd,this),O(t))},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),o=i.distanceTo(n)\/this._startDist;if(this._zoom=e.getScaleZoom(o,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoom<e.getMinZoom()&&o<1||this._zoom>e.getMaxZoom()&&1<o)&&(this._zoom=e._limitZoom(this._zoom)),\"center\"===e.options.touchZoom){if(this._center=this._startLatLng,1==o)return}else{i=i._add(n)._divideBy(2)._subtract(this._centerPoint);if(1==o&&0===i.x&&0===i.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(i),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),r(this._animRequest);n=a(e._move,e,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=x(n,this,!0),O(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,r(this._animRequest),k(document,\"touchmove\",this._onTouchMove,this),k(document,\"touchend touchcancel\",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}})),Xi=(A.addInitHook(\"addHandler\",\"touchZoom\",Ot),A.BoxZoom=_t,A.DoubleClickZoom=Ct,A.Drag=Zt,A.Keyboard=St,A.ScrollWheelZoom=Et,A.TapHold=kt,A.TouchZoom=Ot,t.Bounds=f,t.Browser=b,t.CRS=ot,t.Canvas=Fi,t.Circle=vi,t.CircleMarker=gi,t.Class=et,t.Control=B,t.DivIcon=Ri,t.DivOverlay=Ai,t.DomEvent=mt,t.DomUtil=pt,t.Draggable=Xe,t.Evented=it,t.FeatureGroup=ci,t.GeoJSON=wi,t.GridLayer=Ni,t.Handler=n,t.Icon=di,t.ImageOverlay=Ei,t.LatLng=v,t.LatLngBounds=s,t.Layer=o,t.LayerGroup=ui,t.LineUtil=vt,t.Map=A,t.Marker=mi,t.Mixin=ft,t.Path=fi,t.Point=p,t.PolyUtil=gt,t.Polygon=xi,t.Polyline=yi,t.Popup=Bi,t.PosAnimation=Fe,t.Projection=wt,t.Rectangle=Yi,t.Renderer=Wi,t.SVG=Gi,t.SVGOverlay=Oi,t.TileLayer=Di,t.Tooltip=Ii,t.Transformation=at,t.Util=tt,t.VideoOverlay=ki,t.bind=a,t.bounds=_,t.canvas=Ui,t.circle=function(t,e,i){return new vi(t,e,i)},t.circleMarker=function(t,e){return new gi(t,e)},t.control=Ue,t.divIcon=function(t){return new Ri(t)},t.extend=l,t.featureGroup=function(t,e){return new ci(t,e)},t.geoJSON=Si,t.geoJson=Mt,t.gridLayer=function(t){return new Ni(t)},t.icon=function(t){return new di(t)},t.imageOverlay=function(t,e,i){return new Ei(t,e,i)},t.latLng=w,t.latLngBounds=g,t.layerGroup=function(t,e){return new ui(t,e)},t.map=function(t,e){return new A(t,e)},t.marker=function(t,e){return new mi(t,e)},t.point=m,t.polygon=function(t,e){return new xi(t,e)},t.polyline=function(t,e){return new yi(t,e)},t.popup=function(t,e){return new Bi(t,e)},t.rectangle=function(t,e){return new Yi(t,e)},t.setOptions=c,t.stamp=h,t.svg=Ki,t.svgOverlay=function(t,e,i){return new Oi(t,e,i)},t.tileLayer=ji,t.tooltip=function(t,e){return new Ii(t,e)},t.transformation=ht,t.version=\"1.9.4\",t.videoOverlay=function(t,e,i){return new ki(t,e,i)},window.L);t.noConflict=function(){return window.L=Xi,this},window.L=t});\r\n\/\/# sourceMappingURL=leaflet.js.map\r\n<\/script>\r\n<script>\r\n\/* ===== Real interactive map (Leaflet + free CARTO\/OSM basemap) ===== *\/\r\n(function(){\r\n  var LEAFLET_JS='https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js';\r\n  var LEAFLET_CSS='https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css';\r\n  var ONTARIO=[\r\n    {n:\"Oshawa\",lat:43.897,lon:-78.866,hub:1,u:\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-in-oshawa-whitby\/\"},\r\n    {n:\"Whitby\",lat:43.897,lon:-78.943,u:\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-in-oshawa-whitby\/\"},\r\n    {n:\"Ajax\",lat:43.851,lon:-79.020,u:\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-services-in-ajax\/\"},\r\n    {n:\"Pickering\",lat:43.836,lon:-79.089,u:\"https:\/\/blueguard.ca\/service-areas\/commercial-duct-cleaning-in-pickering\/\"},\r\n    {n:\"Ottawa\",lat:45.421,lon:-75.697,hub:1,u:\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-services-in-ottawa\/\"},\r\n    {n:\"Orl\u00e9ans\",lat:45.457,lon:-75.520,u:\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-service-orleans\/\"},\r\n    {n:\"Nepean\",lat:45.347,lon:-75.727,u:\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-service-in-nepean\/\"},\r\n    {n:\"Kanata\",lat:45.313,lon:-75.898,u:\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-in-kanata\/\"},\r\n    {n:\"Stittsville\",lat:45.262,lon:-75.918,u:\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-service-stittsville\/\"},\r\n    {n:\"Barrhaven\",lat:45.273,lon:-75.744,u:\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-service-in-barrhaven\/\"},\r\n    {n:\"Manotick\",lat:45.225,lon:-75.683,u:\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-service-in-manotick\/\"},\r\n    {n:\"Carp\",lat:45.349,lon:-76.043,u:\"https:\/\/blueguard.ca\/service-areas\/dryer-vent-cleaning-service-in-carp\/\"},\r\n    {n:\"Kemptville\",lat:45.017,lon:-75.638,u:\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-service-in-kemptville\/\"},\r\n    {n:\"Carleton Place\",lat:45.140,lon:-76.144,u:\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-services-in-carleton\/\"},\r\n    {n:\"Almonte\",lat:45.229,lon:-76.195,u:\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-in-almonte\/\"},\r\n    {n:\"Arnprior\",lat:45.433,lon:-76.353,u:\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-services-in-arnprior\/\"}\r\n  ];\r\n  var QUEBEC=[\r\n    {n:\"Gatineau\",lat:45.477,lon:-75.701,hub:1,u:\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-services-in-gatineau\/\"},\r\n    {n:\"Montreal\",lat:45.502,lon:-73.567,hub:1,u:\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-service-in-montreal\/\"},\r\n    {n:\"Laval\",lat:45.606,lon:-73.712,u:\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-service-in-laval\/\"},\r\n    {n:\"Longueuil\",lat:45.531,lon:-73.518,u:\"https:\/\/blueguard.ca\/service-areas\/air-duct-cleaning-service-in-longueuil\/\"}\r\n  ];\r\n\r\n  function icon(color, hub){\r\n    var sc = hub ? 1.18 : 1;\r\n    var w = Math.round(30*sc), h = Math.round(40*sc);\r\n    var html = '<div class=\"bgm-pin-ico\"><svg width=\"'+w+'\" height=\"'+h+'\" viewBox=\"0 0 30 40\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">'\r\n      + '<path d=\"M15 0.5 C6.99 0.5 0.5 6.99 0.5 15 C0.5 25.4 15 39.5 15 39.5 C15 39.5 29.5 25.4 29.5 15 C29.5 6.99 23.01 0.5 15 0.5 Z\" fill=\"'+color+'\" stroke=\"#ffffff\" stroke-width=\"2.5\"\/>'\r\n      + '<circle cx=\"15\" cy=\"15\" r=\"5.6\" fill=\"#ffffff\"\/><circle cx=\"15\" cy=\"15\" r=\"2.6\" fill=\"'+color+'\"\/><\/svg><\/div>';\r\n    return L.divIcon({ className:'bgm-divicon', html:html, iconSize:[w,h], iconAnchor:[w\/2,h], popupAnchor:[0,-h+6] });\r\n  }\r\n\r\n  function build(id, cities, opts){\r\n    if(!document.getElementById(id)) return null;\r\n    var map = L.map(id, { scrollWheelZoom:false, zoomControl:true, attributionControl:true });\r\n    map.zoomControl.setPosition('topright');\r\n    L.tileLayer('https:\/\/{s}.basemaps.cartocdn.com\/rastertiles\/voyager\/{z}\/{x}\/{y}{r}.png', {\r\n      attribution:'&copy; <a href=\"https:\/\/www.openstreetmap.org\/copyright\">OpenStreetMap<\/a> &copy; <a href=\"https:\/\/carto.com\/attributions\">CARTO<\/a>',\r\n      subdomains:'abcd', maxZoom:19\r\n    }).addTo(map);\r\n    var pts=[];\r\n    cities.forEach(function(c){\r\n      var col = c.hub ? '#f4a72c' : opts.base;\r\n      if(c.hub){\r\n        L.circle([c.lat,c.lon], { radius:opts.radius, color:opts.base, weight:1.3, opacity:0.4, fillColor:opts.base, fillOpacity:0.07 }).addTo(map);\r\n      }\r\n      var mk = L.marker([c.lat,c.lon], { icon:icon(col,c.hub), title:c.n, riseOnHover:true }).addTo(map);\r\n      mk.bindPopup('<div class=\"bgm-pop\"><b>'+c.n+'<\/b><a href=\"'+c.u+'\" target=\"_blank\" rel=\"noopener\">Open service page &rarr;<\/a><\/div>');\r\n      if(c.hub){ mk.bindTooltip(c.n, { permanent:true, direction:'right', offset:[6,-15], className:'bgm-tip bgm-tip-hub' }); }\r\n      else { mk.bindTooltip(c.n, { direction:'top', offset:[0,-38], className:'bgm-tip' }); }\r\n      pts.push([c.lat,c.lon]);\r\n    });\r\n    map.fitBounds(pts, { padding:[50,50] });\r\n    return { map:map, pts:pts };\r\n  }\r\n\r\n  var mOn, mQc;\r\n  function init(){\r\n    if(!window.L || window.__bgMapInit) return;\r\n    window.__bgMapInit = true;\r\n    mOn = build('bgmap-on', ONTARIO, { base:'#4b9b1e', radius:26000 });\r\n    mQc = build('bgmap-qc', QUEBEC,  { base:'#0aa8df', radius:24000 });\r\n    window.bgRefresh = function(w){\r\n      var m = (w==='on') ? mOn : mQc;\r\n      if(m && m.map){ setTimeout(function(){ m.map.invalidateSize(); m.map.fitBounds(m.pts, { padding:[50,50] }); }, 80); }\r\n    };\r\n    \/\/ make sure the initially-visible map paints at full size\r\n    setTimeout(function(){ if(mOn && mOn.map){ mOn.map.invalidateSize(); mOn.map.fitBounds(mOn.pts, { padding:[50,50] }); } }, 250);\r\n  }\r\n  var tries=0;\r\n  function start(){\r\n    if(window.L){ init(); return; }\r\n    if(tries++ < 60){ setTimeout(start, 100); }   \/\/ wait for inlined Leaflet to be ready\r\n  }\r\n  if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', start); }\r\n  else { start(); }\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-49436787 e-con-full e-flex e-con e-parent\" data-id=\"49436787\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2cab254c elementor-widget elementor-widget-html\" data-id=\"2cab254c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n.com-s9*{box-sizing:border-box;margin:0;padding:0}\r\n.com-s9{--blue:#0aa8df;--green:#a8cf45;--dark:#0d1117;--text:#2d3748;--muted:#718096;--light:#f0f4f8;font-family:'Nunito',sans-serif;background:var(--light);}\r\n.com-s9-inner{max-width:1280px;margin:0 auto;padding:70px 0;}\r\n.com-s9-label{display:inline-flex;align-items:center;gap:8px;background:rgba(10,168,223,.08);border:1px solid rgba(10,168,223,.2);border-radius:4px;padding:5px 12px;margin-bottom:16px;}\r\n.com-s9-label-text{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--blue);}\r\n.com-s9 h2{font-family:'Barlow Condensed',sans-serif;font-size:clamp(26px,4vw,42px);font-weight:800;line-height:1.1;color:var(--dark);margin-bottom:10px;}\r\n.com-s9-accent{background:linear-gradient(90deg,var(--blue),var(--green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}\r\n.com-s9-divider{width:50px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--blue),var(--green));margin-bottom:24px;}\r\n.com-s9 p{font-size:15.5px;line-height:1.82;color:var(--text);margin-bottom:20px;}\r\n.com-s9 strong{color:var(--dark);font-weight:800;}\r\n.com-s9-hl{color:#2e9e3b;font-weight:800;}\r\n.com-s9-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-top:8px;}\r\n.com-s9-item{background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:14px;padding:22px 18px;text-align:center;box-shadow:0 1px 6px rgba(0,0,0,.04);}\r\n.com-s9-num{font-family:'Barlow Condensed',sans-serif;font-size:40px;font-weight:800;background:linear-gradient(90deg,var(--blue),var(--green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;margin-bottom:8px;}\r\n.com-s9-label2{font-size:13.5px;font-weight:800;color:var(--dark);line-height:1.3;}\r\n.com-s9-sub{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.4;}\r\n@media only screen and (max-width:768px){.com-s9-inner{padding:50px 15px;}}\r\n@media only screen and (max-width:1024px){.com-s9{padding:0 60px;}.com-s9-inner{padding:60px 0;}}\r\n@media screen and (max-width:480px){.com-s9{padding:0 15px;}}\r\n<\/style>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\/>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Barlow+Condensed:wght@700;800&family=Nunito:wght@400;600;700;800&display=swap\" rel=\"stylesheet\"\/>\r\n<div class=\"com-s9\">\r\n  <div class=\"com-s9-inner\">\r\n    <div class=\"com-s9-label\"><span class=\"com-s9-label-text\">Maintenance Schedule<\/span><\/div>\r\n    <h2>How Often Should Oshawa Apartment Buildings <span class=\"com-s9-accent\">Clean Their Dryer Vents?<\/span><\/h2>\r\n    <div class=\"com-s9-divider\"><\/div>\r\n    <p><strong>Commercial dryer vents in multi-unit buildings should be cleaned at least once a year.<\/strong> High-use laundry facilities may require cleaning every 6 months. Buildings that have never had professional dryer vent cleaning should <span class=\"com-s9-hl\">schedule a full building cleaning immediately<\/span>.<\/p>\r\n    <div class=\"com-s9-grid\">\r\n      <div class=\"com-s9-item\"><div class=\"com-s9-num\">1\u00d7<\/div><div class=\"com-s9-label2\">Per Year \u2014 Minimum<\/div><div class=\"com-s9-sub\">Standard multi-unit residential buildings<\/div><\/div>\r\n      <div class=\"com-s9-item\"><div class=\"com-s9-num\">2\u00d7<\/div><div class=\"com-s9-label2\">Per Year<\/div><div class=\"com-s9-sub\">High-use shared laundry facilities<\/div><\/div>\r\n      <div class=\"com-s9-item\"><div class=\"com-s9-num\">Now<\/div><div class=\"com-s9-label2\">Never Been Done?<\/div><div class=\"com-s9-sub\">Schedule full building cleaning immediately<\/div><\/div>\r\n      <div class=\"com-s9-item\"><div class=\"com-s9-num\">ASAP<\/div><div class=\"com-s9-label2\">Signs of Blockage<\/div><div class=\"com-s9-sub\">Tenant complaints, long dry times, hot dryers<\/div><\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ea60efd e-flex e-con-boxed e-con e-parent\" data-id=\"ea60efd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-fed49a5 e-con-full e-flex e-con e-child\" data-id=\"fed49a5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-eac0ca4 elementor-widget elementor-widget-heading\" data-id=\"eac0ca4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Frequently Ask Qestions<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a4ad295 elementor-widget elementor-widget-n-accordion\" data-id=\"a4ad295\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;default_state&quot;:&quot;expanded&quot;,&quot;max_items_expended&quot;:&quot;one&quot;,&quot;n_accordion_animation_duration&quot;:{&quot;unit&quot;:&quot;ms&quot;,&quot;size&quot;:400,&quot;sizes&quot;:[]}}\" data-widget_type=\"nested-accordion.default\">\n\t\t\t\t\t\t\t<div class=\"e-n-accordion\" aria-label=\"Accordion. Open links with Enter or Space, close with Escape, and navigate with Arrow Keys\">\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-1720\" class=\"e-n-accordion-item\" open>\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"1\" tabindex=\"0\" aria-expanded=\"true\" aria-controls=\"e-n-accordion-item-1720\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> How is commercial dryer vent cleaning priced in Oshawa? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-minus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-plus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-1720\" class=\"elementor-element elementor-element-104e89b e-con-full e-flex e-con e-child\" data-id=\"104e89b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9cd0e46 elementor-widget elementor-widget-text-editor\" data-id=\"9cd0e46\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Commercial pricing is based on\u00a0<strong>number of units and vent configuration<\/strong>. We provide a free estimate before any work begins. Call\u00a0<a href=\"tel:+18444988364\">+1-844-498-8364<\/a>\u00a0or fill out the quote form.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-1721\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"2\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-1721\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> Can you clean all dryer vents in our apartment building in one day? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-minus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-plus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-1721\" class=\"elementor-element elementor-element-0697c92 e-con-full e-flex e-con e-child\" data-id=\"0697c92\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-df374f0 elementor-widget elementor-widget-text-editor\" data-id=\"df374f0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>For most apartment buildings in Oshawa, yes.\u00a0<strong>We bring a full crew and equipment<\/strong>\u00a0to complete multi-unit jobs efficiently. Contact us for a timeline estimate for your specific building.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-1722\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"3\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-1722\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> Do you provide documentation for insurance purposes? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-minus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-plus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-1722\" class=\"elementor-element elementor-element-0570102 e-con-full e-flex e-con e-child\" data-id=\"0570102\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0011d83 elementor-widget elementor-widget-text-editor\" data-id=\"0011d83\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Yes. Every commercial dryer vent cleaning job includes\u00a0<strong>before and after photos and a written record of all units cleaned<\/strong>\u00a0\u2014 suitable for insurance and property management files.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6ec6fadf e-con-full e-flex e-con e-parent\" data-id=\"6ec6fadf\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f414a71 elementor-widget elementor-widget-html\" data-id=\"f414a71\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n.com-s11*{box-sizing:border-box;margin:0;padding:0}\r\n.com-s11{--blue:#0aa8df;--green:#a8cf45;--dark:#0d1117;font-family:'Nunito',sans-serif;background:linear-gradient(135deg,#0d1117 0%,#0f1923 100%);position:relative;overflow:hidden;padding:70px 0;}\r\n.com-s11-pattern{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(10,168,223,.07) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;z-index:0;}\r\n.com-s11-blob1{position:absolute;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(10,168,223,.1),transparent 70%);filter:blur(80px);top:-120px;left:-80px;z-index:0;pointer-events:none;}\r\n.com-s11-blob2{position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(168,207,69,.08),transparent 70%);filter:blur(60px);bottom:-80px;right:-60px;z-index:0;pointer-events:none;}\r\n.com-s11-inner{position:relative;z-index:1;max-width:1280px;margin:0 auto;text-align:center;}\r\n.com-s11 h2{font-family:'Barlow Condensed',sans-serif;font-size:clamp(28px,5vw,50px);font-weight:800;line-height:1.08;color:#fff;margin-bottom:14px;}\r\n.com-s11-accent{background:linear-gradient(90deg,var(--blue),var(--green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}\r\n.com-s11-sub{font-size:clamp(15px,1.5vw,16px);color:rgba(255,255,255,.65);line-height:1.7;margin-bottom:36px;max-width:520px;margin-left:auto;margin-right:auto;}\r\n.com-s11-sub strong{color:#fff;}\r\n.com-s11-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-bottom:36px;}\r\n.com-s11-btn-primary{display:inline-flex;align-items:center;gap:9px;background:linear-gradient(135deg,var(--blue),#0891c4);color:#ffffff !important;font-family:'Nunito',sans-serif;font-size:15px;font-weight:800;border-radius:8px;padding:15px 30px;text-decoration:none;box-shadow:0 4px 20px rgba(10,168,223,.35);transition:transform .2s,box-shadow .2s;}\r\n.com-s11-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(10,168,223,.45);}\r\n.com-s11-btn-secondary{display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);color:#ffffff !important;font-family:'Nunito',sans-serif;font-size:15px;font-weight:700;border-radius:8px;padding:14px 30px;text-decoration:none;transition:background .2s;}\r\n.com-s11-btn-secondary:hover{background:rgba(255,255,255,.12);}\r\n.com-s11-btn-primary svg,.com-s11-btn-secondary svg{width:17px;height:17px;}\r\n.com-s11-contacts{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;}\r\n.com-s11-contact-item{display:flex;align-items:center;gap:8px;font-size:13.5px;color:rgba(255,255,255,.6);font-weight:600;}\r\n.com-s11-contact-item a{color:rgba(255,255,255,.75);text-decoration:none;transition:color .2s;}\r\n.com-s11-contact-item a:hover{color:#fff;}\r\n.com-s11-contact-dot{width:5px;height:5px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--green));flex-shrink:0;}\r\n.com-s11-note{margin-top:20px;font-size:12px;color:rgba(255,255,255,.35);letter-spacing:.5px;}\r\n@media only screen and (max-width:1024px){.com-s11{padding:60px 60px;}}\r\n@media only screen and (max-width:768px){.com-s11{padding:40px 60px;}}\r\n@media screen and (max-width:480px){.com-s11{padding:40px 15px;}}\r\n<\/style>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\/>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Barlow+Condensed:wght@700;800&family=Nunito:wght@400;600;700;800&display=swap\" rel=\"stylesheet\"\/>\r\n<div class=\"com-s11\">\r\n  <div class=\"com-s11-pattern\"><\/div>\r\n  <div class=\"com-s11-blob1\"><\/div>\r\n  <div class=\"com-s11-blob2\"><\/div>\r\n  <div class=\"com-s11-inner\">\r\n    <h2>Get a Free Commercial Dryer Vent Estimate for Your <span class=\"com-s11-accent\">Oshawa<\/span> Property<\/h2>\r\n    <p class=\"com-s11-sub\">We respond within <strong>2 business hours<\/strong>. Upfront pricing \u2014 no surprises.<\/p>\r\n    <div class=\"com-s11-actions\">\r\n      <a class=\"com-s11-btn-primary\" href=\"https:\/\/blueguard.ca\/book-now-get-quote\/\" target=\"_blank\" rel=\"noopener\">\r\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"\/><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"\/><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"\/><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"\/><\/svg>\r\n        Request Free Estimate\r\n      <\/a>\r\n      <a class=\"com-s11-btn-secondary\" href=\"tel:+18444988364\">\r\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07A19.5 19.5 0 013.07 10.8a19.79 19.79 0 01-3.07-8.72A2 2 0 012 0h3a2 2 0 012 1.72c.127.96.361 1.903.7 2.81a2 2 0 01-.45 2.11L6.91 7.91a16 16 0 006.18 6.18l1.27-1.27a2 2 0 012.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0122 16.92z\"\/><\/svg>\r\n        +1-844-498-8364\r\n      <\/a>\r\n    <\/div>\r\n    <div class=\"com-s11-contacts\">\r\n      <div class=\"com-s11-contact-item\"><span class=\"com-s11-contact-dot\"><\/span><a href=\"mailto:sales@blueguard.ca\">sales@blueguard.ca<\/a><\/div>\r\n      <div class=\"com-s11-contact-item\"><span class=\"com-s11-contact-dot\"><\/span><a href=\"https:\/\/blueguard.ca\" target=\"_blank\" rel=\"noopener\">blueguard.ca<\/a><\/div>\r\n    <\/div>\r\n    <div class=\"com-s11-note\">Last updated: May 2026 \u00b7 Oshawa \u00b7 BlueGuard Duct Cleaning<\/div>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Commercial \u00b7 Oshawa \u00b7 Durham Region You Need BlueGuard&#8217;s Commercial Dryer Vent Cleaning in Oshawa. Because a Blocked Vent Is a Liability Your Business Cannot Afford Every Commercial Dryer in Your Oshawa Facility Produces Lint That Travels Beyond the Trap and Deep Into Your Vent Line Ignored Long Enough, That Buildup Becomes a Fire Code [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":31,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-20407","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blueguard.ca\/fr\/wp-json\/wp\/v2\/pages\/20407","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blueguard.ca\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blueguard.ca\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blueguard.ca\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blueguard.ca\/fr\/wp-json\/wp\/v2\/comments?post=20407"}],"version-history":[{"count":5,"href":"https:\/\/blueguard.ca\/fr\/wp-json\/wp\/v2\/pages\/20407\/revisions"}],"predecessor-version":[{"id":23450,"href":"https:\/\/blueguard.ca\/fr\/wp-json\/wp\/v2\/pages\/20407\/revisions\/23450"}],"up":[{"embeddable":true,"href":"https:\/\/blueguard.ca\/fr\/wp-json\/wp\/v2\/pages\/31"}],"wp:attachment":[{"href":"https:\/\/blueguard.ca\/fr\/wp-json\/wp\/v2\/media?parent=20407"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}