PageSourceSearch

https://www.govserv.org/US/Chicago-IL/211818/genre/175838732461622/Post+office

html govserv.org collected 2026-09-24 21:51:19 UTC 91,524 bytes, 2,064 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3  <head>
4        <link rel="canonical" href="https://www.govserv.org/US/Chicago-IL/211818/genre/175838732461622/Post+office">
5        <meta name="robots" content="max-image-preview:standard">
6                  
7    <title>Post offices in Chicago, IL</title>
8        <meta name="Description" content="Find Post offices in Chicago, IL. Listings include My Mail Center, The UPS Store 5608, Snail Mail Is My Therapy, Fata new yesetey and Jewelry by Kim handmade glass. Click on each in the list below the map for more information.">
9        
10    <meta charset="utf-8">
11    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
12          <meta name="referrer" content="strict-origin-when-cross-origin">
13        <meta http-equiv="x-ua-compatible" content="ie=edge">
14
15    
16<meta name="msvalidate.01" content="D49109743A3942DA9C7A030378CF0421" />
17
18<meta name="guestpostlinks-verification" content="guestpostlinks-verification-code-12785">
19
20        
21    <link rel="shortcut icon" href="/img/govserv/favicon.ico" type="image/x-icon">
22
23    <!-- Prefetch DNS for external assets -->
24        <link rel="dns-prefetch" href="//graph.facebook.com">
25    <link rel="preconnect" href="//graph.facebook.com">
26    <link rel="dns-prefetch" href="https://www.google-analytics.com">
27                <link rel="preconnect" href="https://pagead2.googlesyndication.com" crossorigin>
28        <link rel="preconnect" href="https://googleads.g.doubleclick.net" crossorigin>
29        
30    <link rel="preload" href="/assets/vendor/icon-line/css/simple-line-icons.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
31    <noscript><link rel="stylesheet" href="/assets/vendor/icon-line/css/simple-line-icons.css"></noscript>
32
33    <link rel="preload" href="/assets/vendor/icon-hs/style.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
34    <noscript><link rel="stylesheet" href="/assets/vendor/icon-hs/style.css"></noscript>
35
36    
37    <link rel="preload" href="/assets/vendor/icon-hs/fonts/hs-icons.ttf?xa77py" as="font" type="font/ttf" crossorigin>
38
39    
40        
41    
42    
42<script data-cfasync="false">
43    var userCountryCode='US';
44    </script>
44
45    
45<script data-cfasync="false" defer src="/js/adsense-unfilled-collapse.js?v=20260830-3"></script>
vendor: 1 bytes, line 45
45
46<script data-cfasync="false">
47(function () {
48    var consentGate = {
49        enabled: false,
50        requestPauseEnabled: true,
51        diagnosticsEnabled: true,
52        regulated: false,
53        ready: false,
54        startedAt: Date.now(),
55        queue: [],
56        surfaceQueued: {},
57        surfaceReleased: {},
58        requestPauseArmed: false,
59        requestPauseReleased: false,
60        requestPauseTimedOut: false,
61        requestPauseOutcomeRecorded: false,
62        telemetryEnabled: true,
63        telemetryToken: 'YWR0MXwxNzkwMjg2Njc5fDM1fHB2X2NjYzkzYmRjMzc3NmQzZGQ2ZmIxNDkzMjk1NzQzYmUzfDEwMA.kHhyPz69_et6oYr611bLgfGl5xnt3aNlweOFDm1WtuQ',
64        telemetryPageviewId: 'pv_ccc93bdc3776d3dd6fb1493295743be3',
65        telemetryRate: 100,
66        pageType: 'genre'
67    };
68    consentGate.requestPauseActive = consentGate.requestPauseEnabled && consentGate.regulated;
69    consentGate.active = (consentGate.enabled || consentGate.requestPauseEnabled) && consentGate.regulated;
70    consentGate.diagnosticsActive = consentGate.active || (consentGate.diagnosticsEnabled && consentGate.regulated);
71    var consentGatePublicState = {
72        enabled: consentGate.enabled,
73        requestPauseEnabled: consentGate.requestPauseEnabled,
74        requestPauseActive: consentGate.requestPauseActive,
75        requestPauseArmed: false,
76        requestPauseReleased: false,
77        requestPauseTimedOut: false,
78        diagnosticsEnabled: consentGate.diagnosticsEnabled,
79        regulated: consentGate.regulated,
80        active: consentGate.active,
81        diagnosticsActive: consentGate.diagnosticsActive,
82        ready: false,
83        queuedSurfaces: 0,
84        releasedSurfaces: 0,
85        abandonedSurfaces: 0,
86        autoRequestObserved: false,
87        autoDomObserved: false,
88        autoFilledObserved: false,
89        autoUnfilledObserved: false
90    };
91    window.fglConsentReadyGateState = consentGatePublicState;
92
93    // This partial is emitted before every AdSense loader on Unify01. Arming
94    // synchronously here prevents both account-configured Auto Ads and manual
95    // slots from issuing requests before Funding Choices is ready.
96    if (consentGate.requestPauseActive) {
97        window.adsbygoogle = window.adsbygoogle || [];
98        window.adsbygoogle.pauseAdRequests = 1;
99        consentGate.requestPauseArmed = true;
100        consentGatePublicState.requestPauseArmed = true;
101    }
102
103    function consentGateSampled() {
104        var hash = 2166136261;
105        if (!consentGate.telemetryEnabled || !consentGate.telemetryToken ||
106                !consentGate.telemetryPageviewId || consentGate.telemetryRate < 1) return false;
107        for (var i = 0; i < consentGate.telemetryPageviewId.length; i++) {
108            hash ^= consentGate.telemetryPageviewId.charCodeAt(i);
109            hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);
110        }
111        return ((hash >>> 0) % 1000) < consentGate.telemetryRate;
112    }
113    consentGate.sampled = consentGateSampled();
114
115    function consentGateBrowserFamily() {
116        var ua = String(navigator && navigator.userAgent || '').toLowerCase();
117        if (ua.indexOf('edg/') !== -1 || ua.indexOf('edge/') !== -1) return 'edge';
118        if (ua.indexOf('opr/') !== -1 || ua.indexOf('opera') !== -1) return 'opera';
119        if (ua.indexOf('firefox/') !== -1 || ua.indexOf('fxios/') !== -1) return 'firefox';
120        if (ua.indexOf('chrome/') !== -1 || ua.indexOf('crios/') !== -1) return 'chrome';
121        if (ua.indexOf('safari/') !== -1) return 'safari';
122        return 'other';
123    }
124
125    function consentGateTrafficSource() {
126        var referrer = String(document.referrer || ''), parser, host, current;
127        if (!referrer) return 'direct';
128        try {
129            parser = document.createElement('a'); parser.href = referrer;
130            host = String(parser.hostname || '').toLowerCase();
131            current = String(window.location.hostname || '').toLowerCase();
132        } catch (e) { return 'unknown'; }
133        if (!host) return 'unknown';
134        if (host === current || host.slice(-(current.length + 1)) === '.' + current) return 'internal';
135        if (/(^|\.)google\./.test(host)) return 'google';
136        if (/(^|\.)(bing\.com|yahoo\.[a-z.]+)$/.test(host) || host.indexOf('search.yahoo.') !== -1) return 'bing_yahoo';
137        if (/(^|\.)(duckduckgo\.com|ecosia\.org|yandex\.[a-z.]+|baidu\.com)$/.test(host)) return 'other_search';
138        if (/(^|\.)(facebook\.com|instagram\.com|twitter\.com|t\.co|linkedin\.com|pinterest\.[a-z.]+)$/.test(host)) return 'social';
139        return 'other_referral';
140    }
141
142    function recordConsentGateEvent(eventType, surface, elapsedMs, diagnostic, placement) {
143        var body, event, xhr;
144        if (!consentGate.sampled) return;
145        diagnostic = diagnostic || {};
146        event = {
147            event_type: eventType,
148            placement: placement || '',
149            elapsed_ms: Math.max(0, elapsedMs || 0),
150            layout: 'unify01',
151            page_type: consentGate.pageType,
152            browser_family: consentGateBrowserFamily(),
153            loader_source: diagnostic.loader_source || 'adsbygoogle',
154            visibility_state: document.visibilityState || 'unknown',
155            failure_class: 'none',
156            client_profile: 'unknown',
157            resource_entry_state: diagnostic.resource_entry_state || 'unknown',
158            traffic_source_family: consentGateTrafficSource(),
159            delivery_surface: surface,
160            tcf_probe_stage: diagnostic.tcf_probe_stage || 'none',
161            tcf_observation_phase: diagnostic.tcf_observation_phase || 'none',
162            tcf_api_state: diagnostic.tcf_api_state || 'not_probed',
163            tcf_cmp_family: diagnostic.tcf_cmp_family || 'unknown',
164            tcf_cmp_status: diagnostic.tcf_cmp_status || 'unknown',
165            tcf_event_status: diagnostic.tcf_event_status || 'unknown',
166            tcf_string_state: diagnostic.tcf_string_state || 'unknown',
167            gdpr_applies_state: diagnostic.gdpr_applies_state || 'unknown'
168        };
169        body = JSON.stringify({
170            token: consentGate.telemetryToken,
171            pageview_id: consentGate.telemetryPageviewId,
172            sample_rate_permille: consentGate.telemetryRate,
173            events: [event]
174        });
175        try {
176            if (navigator.sendBeacon && window.Blob && navigator.sendBeacon('/adt', new Blob([body], {type: 'application/json'}))) return;
177        } catch (e) {}
178        try {
179            if (window.fetch) {
180                window.fetch('/adt', {method: 'POST', body: body, credentials: 'same-origin', keepalive: true,
181                    headers: {'Content-Type': 'application/json'}}).catch(function () {});
182                return;
183            }
184            if (window.XMLHttpRequest) {
185                xhr = new XMLHttpRequest();
186                xhr.open('POST', '/adt', true);
187                xhr.setRequestHeader('Content-Type', 'application/json');
188                xhr.send(body);
189            }
190        } catch (e) {}
191    }
192
193    function recordRequestPauseOutcome(outcome, elapsedMs, diagnostic) {
194        var placement;
195        if (!consentGate.requestPauseArmed || consentGate.requestPauseOutcomeRecorded) return;
196        consentGate.requestPauseOutcomeRecorded = true;
197        placement = 'request_pause_v3_' + outcome +
198            (consentGate.requestPauseTimedOut ? '_after_timeout' : '_before_timeout');
199        recordConsentGateEvent(
200            outcome === 'released' ? 'adsense_request_pause_released' : 'adsense_request_pause_abandoned',
201            'unknown',
202            elapsedMs,
203            diagnostic,
204            placement
205        );
206    }
207
208    if (consentGate.requestPauseArmed) {
209        recordConsentGateEvent('adsense_request_pause_armed', 'unknown', 0, null, 'request_pause_v3_armed');
210    }
211
212    var autoConsentTrace = {
213        consentReadyAt: null,
214        consentReadyDiagnostic: null,
215        tcfSnapshots: [],
216        listenerId: null,
217        applicationPushAt: null,
218        requestRecorded: false,
219        requestBeforeRecorded: false,
220        boundaryOutcomeRecorded: false,
221        boundaryTimer: null,
222        domRecorded: false,
223        filledRecorded: false,
224        unfilledRecorded: false,
225        statusOutcomeRecorded: false,
226        statusWindowClosed: false,
227        statusWindowTimer: null,
228        resourceObserverStarted: false,
229        domObserverStarted: false,
230        domObserver: null,
231        tcfListenerStarted: false,
232        prePushRecorded: {}
233    };
234
235    function autoTraceNow() {
236        try {
237            if (window.performance && typeof window.performance.now === 'function') return window.performance.now();
238        } catch (e) {}
239        return Date.now() - consentGate.startedAt;
240    }
241
242    function autoTraceBoundedSnapshot(data) {
243        var cmpId = data && parseInt(data.cmpId, 10), tcString;
244        if (data && typeof data.tcString === 'string') tcString = data.tcString.length ? 'present' : 'absent';
245        else tcString = 'unknown';
246        return {
247            observedAt: autoTraceNow(),
248            cmpFamily: cmpId === 300 ? 'google' : (cmpId > 0 ? 'other' : 'unknown'),
249            cmpStatus: String(data && data.cmpStatus || 'unknown').toLowerCase(),
250            eventStatus: String(data && data.eventStatus || 'unknown').toLowerCase(),
251            stringState: tcString,
252            gdprState: data && data.gdprApplies === true ? 'yes' :
253                (data && data.gdprApplies === false ? 'no' : 'unknown')
254        };
255    }
256
257    function autoTraceSnapshotAt(observedAt) {
258        var snapshots = autoConsentTrace.tcfSnapshots, i;
259        for (i = snapshots.length - 1; i >= 0; i--) {
260            if (snapshots[i].observedAt <= observedAt) {
261                return snapshots[i];
262            }
263        }
264        return null;
265    }
266
267    function autoTraceDiagnosticAt(observedAt, resourceState) {
268        var snapshot = autoTraceSnapshotAt(observedAt);
269        if (snapshot) {
270            return {
271                resource_entry_state: resourceState || 'present',
272                tcf_observation_phase: 'first',
273                tcf_api_state: 'responded',
274                tcf_cmp_family: snapshot.cmpFamily,
275                tcf_cmp_status: snapshot.cmpStatus,
276                tcf_event_status: snapshot.eventStatus,
277                tcf_string_state: snapshot.stringState,
278                gdpr_applies_state: snapshot.gdprState
279            };
280        }
281        return {
282            resource_entry_state: resourceState || 'present',
283            tcf_observation_phase: 'first',
284            tcf_api_state: typeof window.__tcfapi === 'function' ? 'not_probed' : 'absent',
285            tcf_string_state: 'unknown',
286            gdpr_applies_state: 'unknown'
287        };
288    }
289
290    function autoTraceRecord(kind, observedAt, placement) {
291        var afterConsent = autoConsentTrace.consentReadyAt !== null && observedAt >= autoConsentTrace.consentReadyAt;
292        var eventType = kind === 'request'
293            ? 'adsense_auto_request_before_consent'
294            : (afterConsent ? 'adsense_auto_dom_after_consent' : 'adsense_auto_dom_before_consent');
295        recordConsentGateEvent(
296            eventType,
297            'auto_ads',
298            observedAt,
299            autoTraceDiagnosticAt(observedAt),
300            placement || (kind === 'request' ? 'auto_request' : 'auto_dom')
301        );
302        return afterConsent;
303    }
304
305    function autoTraceIsGoogleAdRequest(resourceName) {
306        var parser, host, path;
307        try {
308            parser = document.createElement('a');
309            parser.href = String(resourceName || '');
310            host = String(parser.hostname || '').toLowerCase();
311            path = String(parser.pathname || '').toLowerCase();
312        } catch (e) { return false; }
313        return (host === 'pagead2.googlesyndication.com' || host === 'googleads.g.doubleclick.net') &&
314            path.indexOf('/pagead/ads') === 0;
315    }
316
317    function autoTraceQueryValue(resourceName, parameterName) {
318        var parser, query, parts, i, pair, key, value;
319        try {
320            parser = document.createElement('a');
321            parser.href = String(resourceName || '');
322            query = String(parser.search || '').replace(/^\?/, '');
323            if (!query) return null;
324            parts = query.split('&');
325            for (i = 0; i < parts.length; i++) {
326                pair = parts[i].split('=');
327                key = decodeURIComponent(String(pair.shift() || '').replace(/\+/g, ' '));
328                if (key !== parameterName) continue;
329                value = decodeURIComponent(String(pair.join('=') || '').replace(/\+/g, ' '));
330                return value;
331            }
332        } catch (e) {}
333        return null;
334    }
335
336    function autoTraceRequestClassification(resourceName) {
337        var gdpr = autoTraceQueryValue(resourceName, 'gdpr');
338        var tcString = autoTraceQueryValue(resourceName, 'gdpr_consent');
339        var signal = tcString ? 'tc_present' :
340            (gdpr === '1' ? 'gdpr_without_tc' : (gdpr === '0' ? 'gdpr_not_applicable' : 'no_url_signal'));
341        var mode = autoTraceQueryValue(resourceName, 'ltd') === '1' ? 'limited' :
342            (autoTraceQueryValue(resourceName, 'npa') === '1' ? 'non_personalized' :
343                (autoTraceQueryValue(resourceName, 'rdp') === '1' ? 'restricted' : 'no_url_marker'));
344        return 'req_' + signal + '_' + mode;
345    }
346
347    function autoTraceResourceEntry(entry) {
348        var observedAt;
349        if (autoConsentTrace.requestRecorded || autoConsentTrace.boundaryOutcomeRecorded ||
350                !autoTraceIsGoogleAdRequest(entry && entry.name)) return;
351        observedAt = typeof entry.startTime === 'number' ? entry.startTime : autoTraceNow();
352        if (autoConsentTrace.applicationPushAt !== null && observedAt >= autoConsentTrace.applicationPushAt) return;
353        if (autoConsentTrace.consentReadyAt !== null && observedAt >= autoConsentTrace.consentReadyAt) return;
354        autoConsentTrace.requestRecorded = true;
355        autoTraceRecord('request', observedAt, autoTraceRequestClassification(entry.name));
356        autoConsentTrace.requestBeforeRecorded = true;
357        autoConsentTrace.boundaryOutcomeRecorded = true;
358        if (autoConsentTrace.boundaryTimer !== null) window.clearTimeout(autoConsentTrace.boundaryTimer);
359        autoConsentTrace.boundaryTimer = null;
360        consentGatePublicState.autoRequestObserved = true;
361    }
362
363    function autoTraceDrainResourceEntries() {
364        var resources, i;
365        try {
366            if (!window.performance || !window.performance.getEntriesByType) return;
367            resources = window.performance.getEntriesByType('resource');
368            for (i = 0; i < resources.length && !autoConsentTrace.requestRecorded; i++) {
369                autoTraceResourceEntry(resources[i]);
370            }
371        } catch (e) {}
372    }
373
374    function autoTraceStartResourceObserver() {
375        var observer;
376        if (!consentGate.diagnosticsActive || !consentGate.sampled || autoConsentTrace.resourceObserverStarted) return;
377        autoConsentTrace.resourceObserverStarted = true;
378        try {
379            autoTraceDrainResourceEntries();
380            if (window.PerformanceObserver) {
381                observer = new PerformanceObserver(function (list) {
382                    var entries = list.getEntries(), j;
383                    for (j = 0; j < entries.length; j++) autoTraceResourceEntry(entries[j]);
384                });
385                try { observer.observe({type: 'resource', buffered: true}); }
386                catch (bufferedError) { observer.observe({entryTypes: ['resource']}); }
387            }
388        } catch (e) {}
389    }
390
391    function autoTraceIsInjectedAdNode(node) {
392        if (!node || node.nodeType !== 1) return false;
393        try {
394            if (node.closest && node.closest('[data-fgl-adsense-manual="1"]')) return false;
395            if (node.matches && node.matches('.adsbygoogle, iframe[id^="google_ads_iframe_"]')) return true;
396            return String(node.id || '').toLowerCase().indexOf('google_vignette') === 0;
397        } catch (e) { return false; }
398    }
399
400    function autoTraceRecordAdStatus(status, observedAt) {
401        var afterConsent, eventType, placement;
402        if (autoConsentTrace.statusWindowClosed || (status !== 'filled' && status !== 'unfilled')) return;
403        afterConsent = autoConsentTrace.consentReadyAt !== null && observedAt >= autoConsentTrace.consentReadyAt;
404        if (!autoConsentTrace.statusOutcomeRecorded) {
405            autoConsentTrace.statusOutcomeRecorded = true;
406            recordConsentGateEvent(
407                'adsense_auto_status_observed_' + (afterConsent ? 'after' : 'before') + '_consent',
408                'auto_ads',
409                observedAt,
410                autoTraceDiagnosticAt(observedAt),
411                status === 'filled' ? 'auto_status_filled' : 'auto_status_unfilled'
412            );
413        }
414        if (status === 'filled') {
415            if (autoConsentTrace.filledRecorded) return;
416            autoConsentTrace.filledRecorded = true;
417            consentGatePublicState.autoFilledObserved = true;
418            placement = 'auto_window_filled';
419        } else if (status === 'unfilled') {
420            if (autoConsentTrace.unfilledRecorded) return;
421            autoConsentTrace.unfilledRecorded = true;
422            consentGatePublicState.autoUnfilledObserved = true;
423            placement = 'auto_window_unfilled';
424        }
425        eventType = 'adsense_auto_' + status + '_' + (afterConsent ? 'after' : 'before') + '_consent';
426        recordConsentGateEvent(eventType, 'auto_ads', observedAt,
427            autoTraceDiagnosticAt(observedAt), placement);
428    }
429
430    function autoTraceInspectAdStatusNode(node) {
431        var candidates, i, status;
432        if (!node || node.nodeType !== 1) return;
433        try {
434            if (node.closest && node.closest('[data-fgl-adsense-manual="1"]')) return;
435            if (node.matches && node.matches('.adsbygoogle[data-ad-status]')) {
436                status = String(node.getAttribute('data-ad-status') || '').toLowerCase();
437                autoTraceRecordAdStatus(status, autoTraceNow());
438            }
439            if (!node.querySelectorAll) return;
440            candidates = node.querySelectorAll('.adsbygoogle[data-ad-status]');
441            for (i = 0; i < candidates.length; i++) {
442                if (candidates[i].closest && candidates[i].closest('[data-fgl-adsense-manual="1"]')) continue;
443                status = String(candidates[i].getAttribute('data-ad-status') || '').toLowerCase();
444                autoTraceRecordAdStatus(status, autoTraceNow());
445            }
446        } catch (e) {}
447    }
448
449    function autoTraceInspectDomNode(node) {
450        var candidates, i;
451        if (autoConsentTrace.domRecorded || autoConsentTrace.applicationPushAt !== null || !node || node.nodeType !== 1) return;
452        if (autoTraceIsInjectedAdNode(node)) {
453            autoConsentTrace.domRecorded = true;
454            autoTraceRecord('dom', autoTraceNow());
455            consentGatePublicState.autoDomObserved = true;
456            return;
457        }
458        if (!node.querySelectorAll) return;
459        candidates = node.querySelectorAll('.adsbygoogle, iframe[id^="google_ads_iframe_"], [id^="google_vignette"]');
460        for (i = 0; i < candidates.length && !autoConsentTrace.domRecorded; i++) {
461            if (autoTraceIsInjectedAdNode(candidates[i])) {
462                autoConsentTrace.domRecorded = true;
463                autoTraceRecord('dom', autoTraceNow());
464                consentGatePublicState.autoDomObserved = true;
465            }
466        }
467    }
468
469    function autoTraceStartDomObserver() {
470        var observer, root = document.documentElement || document.body;
471        if (!consentGate.diagnosticsActive || !consentGate.sampled || autoConsentTrace.domObserverStarted || !root) return;
472        autoConsentTrace.domObserverStarted = true;
473        autoTraceInspectDomNode(root);
474        autoTraceInspectAdStatusNode(root);
475        if (!window.MutationObserver) return;
476        observer = new MutationObserver(function (records) {
477            var i, j;
478            for (i = 0; i < records.length; i++) {
479                if (records[i].type === 'attributes') autoTraceInspectAdStatusNode(records[i].target);
480                for (j = 0; j < records[i].addedNodes.length; j++) {
481                    autoTraceInspectDomNode(records[i].addedNodes[j]);
482                    autoTraceInspectAdStatusNode(records[i].addedNodes[j]);
483                }
484            }
485        });
486        observer.observe(root, {childList: true, subtree: true, attributes: true, attributeFilter: ['data-ad-status']});
487        autoConsentTrace.domObserver = observer;
488    }
489
490    function autoTraceDrainDomRecords() {
491        var records, i, j;
492        if (!autoConsentTrace.domObserver || !autoConsentTrace.domObserver.takeRecords) return;
493        try {
494            records = autoConsentTrace.domObserver.takeRecords();
495            for (i = 0; i < records.length; i++) {
496                if (records[i].type === 'attributes') autoTraceInspectAdStatusNode(records[i].target);
497                for (j = 0; j < records[i].addedNodes.length; j++) {
498                    autoTraceInspectDomNode(records[i].addedNodes[j]);
499                    autoTraceInspectAdStatusNode(records[i].addedNodes[j]);
500                }
501            }
502        } catch (e) {}
503    }
504
505    function autoTraceStartTcfListener() {
506        var api = window.__tcfapi;
507        if (!consentGate.diagnosticsActive || !consentGate.sampled || autoConsentTrace.tcfListenerStarted ||
508                typeof api !== 'function') return;
509        try {
510            api('addEventListener', 2, function (data, success) {
511                if (!success || !data) return;
512                autoConsentTrace.listenerId = data.listenerId || autoConsentTrace.listenerId;
513                autoConsentTrace.tcfSnapshots.push(autoTraceBoundedSnapshot(data));
514                if (autoConsentTrace.tcfSnapshots.length > 8) autoConsentTrace.tcfSnapshots.shift();
515            });
516            autoConsentTrace.tcfListenerStarted = true;
517        } catch (e) {}
518    }
519
520    function autoTraceFinalizeBoundary(fallbackBoundaryAt) {
521        var boundaryAt, boundaryDiagnostic;
522        if (!consentGate.diagnosticsActive || !consentGate.sampled || autoConsentTrace.boundaryOutcomeRecorded) return;
523        boundaryAt = autoConsentTrace.consentReadyAt !== null
524            ? autoConsentTrace.consentReadyAt
525            : (typeof fallbackBoundaryAt === 'number' ? fallbackBoundaryAt : null);
526        if (boundaryAt === null) return;
527        autoTraceDrainResourceEntries();
528        if (autoConsentTrace.requestBeforeRecorded || autoConsentTrace.boundaryOutcomeRecorded) return;
529        autoConsentTrace.boundaryOutcomeRecorded = true;
530        autoConsentTrace.boundaryTimer = null;
531        boundaryDiagnostic = autoConsentTrace.consentReadyAt !== null
532            ? autoConsentTrace.consentReadyDiagnostic
533            : autoTraceDiagnosticAt(boundaryAt, 'missing');
534        recordConsentGateEvent(
535            'adsense_auto_no_request_before_consent',
536            'auto_ads',
537            boundaryAt,
538            boundaryDiagnostic || autoTraceDiagnosticAt(boundaryAt, 'missing'),
539            'auto_request'
540        );
541    }
542
543    function autoTraceFinalizeStatusWindow(fallbackBoundaryAt) {
544        var boundaryAt, boundaryDiagnostic;
545        if (!consentGate.diagnosticsActive || !consentGate.sampled || autoConsentTrace.statusWindowClosed) return;
546        autoConsentTrace.statusWindowClosed = true;
547        if (autoConsentTrace.statusWindowTimer !== null) window.clearTimeout(autoConsentTrace.statusWindowTimer);
548        autoConsentTrace.statusWindowTimer = null;
549        if (autoConsentTrace.statusOutcomeRecorded) return;
550        autoConsentTrace.statusOutcomeRecorded = true;
551        boundaryAt = autoConsentTrace.consentReadyAt !== null
552            ? autoTraceNow()
553            : (typeof fallbackBoundaryAt === 'number' ? fallbackBoundaryAt : autoTraceNow());
554        boundaryDiagnostic = autoTraceDiagnosticAt(boundaryAt, 'missing');
555        recordConsentGateEvent(
556            'adsense_auto_no_status_observed',
557            'auto_ads',
558            boundaryAt,
559            boundaryDiagnostic,
560            'auto_status_none'
561        );
562    }
563
564    function autoTraceMarkApplicationPush() {
565        if (autoConsentTrace.applicationPushAt !== null) return;
566        autoTraceDrainResourceEntries();
567        autoTraceDrainDomRecords();
568        autoConsentTrace.applicationPushAt = autoTraceNow();
569    }
570
571    function autoTraceManualSlot(elem) {
572        var slot = elem && elem.getAttribute ? String(elem.getAttribute('data-ad-slot') || '') : '';
573        return /^\d{1,20}$/.test(slot) ? 'slot_' + slot : '';
574    }
575
576    function autoTraceRecordPrePush(surface, placement) {
577        var observedAt, snapshot;
578        if (!consentGate.diagnosticsActive || !consentGate.sampled ||
579                autoConsentTrace.prePushRecorded[surface]) return;
580        autoConsentTrace.prePushRecorded[surface] = true;
581        observedAt = autoTraceNow();
582        snapshot = autoTraceSnapshotAt(observedAt);
583        recordConsentGateEvent(
584            'adsense_tcf_probe',
585            surface,
586            snapshot ? Math.max(0, observedAt - snapshot.observedAt) : 0,
587            autoTraceDiagnosticAt(observedAt, 'missing'),
588            placement || ''
589        );
590    }
591
592    autoTraceStartResourceObserver();
593    autoTraceStartDomObserver();
594    if (!autoConsentTrace.domObserverStarted && document.readyState === 'loading') {
595        document.addEventListener('DOMContentLoaded', autoTraceStartDomObserver);
596    }
597
598    function queueConsentGatePush(surface, action) {
599        if (!consentGate.active || consentGate.ready) return false;
600        consentGate.queue.push({surface: surface, action: action});
601        if (!consentGate.surfaceQueued[surface]) {
602            consentGate.surfaceQueued[surface] = true;
603            consentGatePublicState.queuedSurfaces++;
604            recordConsentGateEvent('adsense_consent_push_queued', surface, Date.now() - consentGate.startedAt);
605        }
606        return true;
607    }
608
609    function releaseConsentGatePushes() {
610        var queued, item, i, elapsed;
611        if (!consentGate.diagnosticsActive || consentGate.ready) return;
612        autoTraceDrainDomRecords();
613        if (autoConsentTrace.consentReadyAt === null) autoConsentTrace.consentReadyAt = autoTraceNow();
614        autoConsentTrace.consentReadyDiagnostic = autoTraceDiagnosticAt(autoConsentTrace.consentReadyAt, 'missing');
615        autoConsentTrace.boundaryTimer = window.setTimeout(autoTraceFinalizeBoundary, 10000);
616        autoConsentTrace.statusWindowTimer = window.setTimeout(autoTraceFinalizeStatusWindow, 10000);
617        consentGate.ready = true;
618        consentGatePublicState.ready = true;
619        elapsed = Date.now() - consentGate.startedAt;
620        if (consentGate.requestPauseArmed && !consentGate.requestPauseReleased) {
621            recordRequestPauseOutcome('released', elapsed, autoConsentTrace.consentReadyDiagnostic);
622            window.adsbygoogle = window.adsbygoogle || [];
623            window.adsbygoogle.pauseAdRequests = 0;
624            consentGate.requestPauseReleased = true;
625            consentGatePublicState.requestPauseReleased = true;
626        }
627        queued = consentGate.queue.slice(0);
628        consentGate.queue = [];
629        for (i = 0; i < queued.length; i++) {
630            item = queued[i];
631            if (!consentGate.surfaceReleased[item.surface]) {
632                consentGate.surfaceReleased[item.surface] = true;
633                consentGatePublicState.releasedSurfaces++;
634                recordConsentGateEvent('adsense_consent_push_released', item.surface, elapsed);
635            }
636            try { item.action(); } catch (e) {}
637        }
638    }
639
640    if (consentGate.diagnosticsActive) {
641        window.googlefc = window.googlefc || {};
642        window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
643        window.googlefc.callbackQueue.push({'CONSENT_API_READY': autoTraceStartTcfListener});
644        window.googlefc.callbackQueue.push({'CONSENT_DATA_READY': releaseConsentGatePushes});
645        autoTraceStartTcfListener();
646        if (consentGate.requestPauseArmed) {
647            window.setTimeout(function () {
648                if (consentGate.requestPauseReleased || consentGate.requestPauseTimedOut) return;
649                consentGate.requestPauseTimedOut = true;
650                consentGatePublicState.requestPauseTimedOut = true;
651                recordConsentGateEvent(
652                    'adsense_request_pause_timeout',
653                    'unknown',
654                    Date.now() - consentGate.startedAt,
655                    autoTraceDiagnosticAt(autoTraceNow(), 'missing'),
656                    'request_pause_v3_timeout_checkpoint'
657                );
658            }, 10000);
659        }
660        window.addEventListener('pagehide', function (event) {
661            var seen = {}, i, surface;
662            if (event && event.persisted) return;
663            if (consentGate.requestPauseArmed && !consentGate.requestPauseReleased) {
664                recordRequestPauseOutcome(
665                    'abandoned',
666                    Date.now() - consentGate.startedAt,
667                    autoTraceDiagnosticAt(autoTraceNow(), 'missing')
668                );
669            }
670            autoTraceFinalizeBoundary(autoTraceNow());
671            autoTraceFinalizeStatusWindow(autoTraceNow());
672            if (!consentGate.active || consentGate.ready || !consentGate.queue.length) return;
673            for (i = 0; i < consentGate.queue.length; i++) {
674                surface = consentGate.queue[i].surface;
675                if (!seen[surface]) {
676                    seen[surface] = true;
677                    consentGatePublicState.abandonedSurfaces++;
678                    recordConsentGateEvent('adsense_consent_push_abandoned', surface, Date.now() - consentGate.startedAt);
679                }
680            }
681        });
682    }
683
684    function getBrowserTimeZone() {
685        try {
686            return String(Intl.DateTimeFormat().resolvedOptions().timeZone || '');
687        } catch (e) {
688            return '';
689        }
690    }
691
692    function clientMatchesSuspiciousAdsenseProfile() {
693        var scr = window.screen || {};
694        if (scr.width === 1280 && scr.height === 1200) {
695            var browserTimeZone = getBrowserTimeZone();
696            return browserTimeZone.indexOf('Asia/') === 0;
697        }
698
699        return false;
700    }
701
702    function sendTarpitGaEvent(name) {
703        try {
704            if (window.fglGtagConfigured && typeof window.gtag === 'function') {
705                window.gtag('event', name, {
706                    'event_category': 'scraper_tarpit',
707                    'event_label': '1280x1200_asia_timezone',
708                    'non_interaction': true
709                });
710                return;
711            }
712
713            window.fglPendingTarpitGaEvents = window.fglPendingTarpitGaEvents || [];
714            window.fglPendingTarpitGaEvents.push({
715                name: name,
716                params: {
717                    'event_category': 'scraper_tarpit',
718                    'event_label': '1280x1200_asia_timezone',
719                    'non_interaction': true
720                }
721            });
722        } catch (e) {
723        }
724    }
725
726    window.fglFlushTarpitGaEvents = function () {
727        if (typeof window.gtag !== 'function') {
728            return;
729        }
730
731        var events = window.fglPendingTarpitGaEvents || [];
732        window.fglPendingTarpitGaEvents = [];
733        for (var i = 0; i < events.length; i++) {
734            window.gtag('event', events[i].name, events[i].params);
735        }
736    };
737
738    function runClientTarpit(durationMs) {
739        var endAt = Date.now() + durationMs;
740        var sink = 0;
741        while (Date.now() < endAt) {
742            sink += Math.sqrt((Date.now() % 997) + Math.random());
743        }
744        window.fglTarpitSink = sink;
745    }
746
747    function runSuspiciousClientTarpit() {
748        var waitStartedAt = Date.now();
749
750        sendTarpitGaEvent('fgl_tarpit_start_20260610_a');
751
752        function runAfterGaStartFlush() {
753            if (!window.fglGtagConfigured && Date.now() - waitStartedAt < 3000) {
754                window.setTimeout(runAfterGaStartFlush, 50);
755                return;
756            }
757
758            if (window.fglFlushTarpitGaEvents) {
759                window.fglFlushTarpitGaEvents();
760            }
761
762            window.setTimeout(function () {
763                runClientTarpit(25000);
764                sendTarpitGaEvent('fgl_tarpit_end_25s_20260610_a');
765                if (window.fglFlushTarpitGaEvents) {
766                    window.fglFlushTarpitGaEvents();
767                }
768
769                window.setTimeout(function () {
770                    runClientTarpit(30000);
771                    sendTarpitGaEvent('fgl_tarpit_end_55s_20260610_a');
772                    if (window.fglFlushTarpitGaEvents) {
773                        window.fglFlushTarpitGaEvents();
774                    }
775                }, 0);
776            }, 3000);
777        }
778
779        window.setTimeout(runAfterGaStartFlush, 0);
780    }
781
782    if (clientMatchesSuspiciousAdsenseProfile()) {
783        runSuspiciousClientTarpit();
784    }
785
786    window.fglShouldBlockAdsenseClient = function () {
787        return clientMatchesSuspiciousAdsenseProfile();
788    };
789
790    window.fglCanLoadAdsenseClient = function () {
791        return !window.fglShouldBlockAdsenseClient();
792    };
793
794    function pushAdsenseElementNow(elem) {
795        if (!window.fglCanLoadAdsenseClient() || !elem) {
796            return false;
797        }
798
799        if (elem.getAttribute('data-adsbygoogle-status') || elem.getAttribute('data-fgl-adsbygoogle-pushed')) {
800            return false;
801        }
802
803        autoTraceRecordPrePush('manual_placement', autoTraceManualSlot(elem));
804        autoTraceMarkApplicationPush();
805        elem.setAttribute('data-fgl-adsbygoogle-pushed', '1');
806        try {
807            (window.adsbygoogle = window.adsbygoogle || []).push({});
808        } catch (e) {
809            if (String(e && e.message || '').indexOf('already have ads') !== -1) {
810                return false;
811            }
812            elem.removeAttribute('data-fgl-adsbygoogle-pushed');
813            throw e;
814        }
815        return true;
816    }
817
818    window.fglPushAdsenseElement = function (elem) {
819        if (!window.fglCanLoadAdsenseClient() || !elem) return false;
820        if (elem.getAttribute('data-adsbygoogle-status') || elem.getAttribute('data-fgl-adsbygoogle-pushed') ||
821                elem.getAttribute('data-fgl-adsbygoogle-consent-queued')) return false;
822        elem.setAttribute('data-fgl-adsense-manual', '1');
823        if (queueConsentGatePush('manual_placement', function () {
824            elem.removeAttribute('data-fgl-adsbygoogle-consent-queued');
825            if (document.documentElement.contains(elem)) pushAdsenseElementNow(elem);
826        })) {
827            elem.setAttribute('data-fgl-adsbygoogle-consent-queued', '1');
828            return true;
829        }
830        return pushAdsenseElementNow(elem);
831    };
832
833    function pushAdsenseOptionsNow(opts) {
834        if (!window.fglCanLoadAdsenseClient() || window.fglAdsenseOptionsPushed) {
835            return false;
836        }
837
838        if (document.querySelector('.adsbygoogle')) {
839            return false;
840        }
841
842        autoTraceRecordPrePush('auto_ads');
843        autoTraceMarkApplicationPush();
844        window.fglAdsenseOptionsPushed = true;
845        try {
846            (window.adsbygoogle = window.adsbygoogle || []).push(opts);
847        } catch (e) {
848            if (String(e && e.message || '').indexOf('already have ads') !== -1) {
849                return false;
850            }
851            window.fglAdsenseOptionsPushed = false;
852            throw e;
853        }
854        return true;
855    }
856
857    window.fglPushAdsenseOptions = function (opts) {
858        if (!window.fglCanLoadAdsenseClient() || window.fglAdsenseOptionsPushed || window.fglAdsenseOptionsConsentQueued) return false;
859        if (document.querySelector('.adsbygoogle')) return false;
860        if (queueConsentGatePush('auto_ads', function () {
861            window.fglAdsenseOptionsConsentQueued = false;
862            pushAdsenseOptionsNow(opts);
863        })) {
864            window.fglAdsenseOptionsConsentQueued = true;
865            return true;
866        }
867        return pushAdsenseOptionsNow(opts);
868    };
869
870    window.fglLoadAdsenseScript = function (src, anon, callback) {
871        if (!window.fglCanLoadAdsenseClient()) {
872            return false;
873        }
874
875        var scriptKey = src.indexOf('/adsbygoogle.js') !== -1 ? 'adsbygoogle' : src;
876        window.fglLoadedAdScripts = window.fglLoadedAdScripts || {};
877        if (window.fglLoadedAdScripts[scriptKey]) {
878            return false;
879        }
880        window.fglLoadedAdScripts[scriptKey] = true;
881
882        var script = document.createElement('script');
883        script.type = 'text/javascript';
884        script.async = true;
885        if (src.indexOf('/adsbygoogle.js') === -1) {
886            script.setAttribute('data-cfasync', 'false');
887        } else {
888            script.setAttribute('fetchpriority', 'high');
889        }
890        script.src = src;
891        if (anon) {
892            script.crossOrigin = 'anonymous';
893        }
894        if (callback) {
895            script.onload = callback;
896        }
897        document.head.appendChild(script);
898        return true;
899    };
900
901}());
902</script>
902
903
904    
905        
906        
906<script data-cfasync="false">
907
908        var _errsLogged=0;
909        function _logErr(err) {
910            if (_errsLogged>=5) {
911                return;
912            }
913            _errsLogged++;
914            var client = new XMLHttpRequest();
915            client.open('POST', '/err');
916            client.setRequestHeader('Content-Type', 'text/plain;charset=UTF-8');
917            client.send(err);
918        }
919
920        function loadScript(jsFile, anon, callback) {
921            const script = document.createElement('script');
922            script.type = 'text/javascript';
923            script.async = true;
924            script.onerror = function() {
925                console.log("Error loading " + this.src);
926                if ((this.src.search("addthis") === -1) && (this.src.search("cse.google") === -1) && !navigator.userAgent.includes("Googlebot") && !navigator.userAgent.includes("bingbot")) {
927                    _logErr(['loadScript error ' + jsFile,
928                        'Loc: ' + window.location.href,
929                        'Country: ' + userCountryCode,
930                        'UA: ' + navigator.userAgent,
931                        this.src].join('\n'));
932                }
933            };
934            script.src = jsFile;
935            if (anon) {
936                script.crossOrigin = 'anonymous';
937            }
938            if (callback) {
939                script.onload=callback;
940            }
941
942            document.head.appendChild(script);
943        }
944        </script>
944
945        
946                    
946<script data-cfasync="false">
947              window.dataLayer = window.dataLayer || [];
948              function gtag(){ dataLayer.push(arguments); }
949
950              gtag('consent','default',{
951                ad_storage:'denied',
952                analytics_storage:'denied',
953                ad_user_data:'denied',
954                ad_personalization:'denied'
955              },{
956                region:[
957                  'AT','BE','BG','HR','CY','CZ','DK','EE','FI','FR','DE','GR','HU','IE','IT',
958                  'LV','LT','LU','MT','NL','PL','PT','RO','SK','SI','ES','SE','IS','LI','NO',
959                  'GB','CH'
960                ]
961              });
962
963              gtag('consent','default',{
964                ad_storage:'granted',
965                analytics_storage:'granted',
966                ad_user_data:'granted',
967                ad_personalization:'granted'
968              });
969            </script>
969
970                    
971                    
971<script data-cfasync="false">
972            window.fglLoadAdsenseScript("https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4665502378458953", true);
973            </script>
973
974                
975                
976        
977  <link rel="stylesheet" type="text/css" href="/css/font-awesome.4.7.0.min.css" />
978<link rel="stylesheet" type="text/css" href="/assets/css.css" />
979<link rel="stylesheet" href="/css/directory-shared.css?v=13">
980<script data-cfasync="false" src="/js/jquery.3.7.1.min.js"></script>
vendor: 1 bytes, line 980
980
981<script data-cfasync="false" src="/assets/js.js?v=2"></script>
981
982
983
984    
984<script data-cfasync="false">var FbInited = false;</script>
984
985    
986                                
986<script data-cfasync="false">
987            
988            </script>
988
989                    
989<script data-cfasync="false">
990(function () {
991  try {
992    var nav = window.navigator || {};
993    var scr = window.screen || {};
994    var lang = String(nav.language || '');
995    var langs = nav.languages || [];
996    var firstLang = langs && langs.length ? String(langs[0] || '') : lang;
997    var ref = String(document.referrer || '');
998
999    if (scr.width !== 1280 || scr.height !== 1200) {
1000      return;
1001    }
1002
1003    var payload = {
1004      sw: scr.width || 0,
1005      sh: scr.height || 0,
1006      aw: scr.availWidth || 0,
1007      ah: scr.availHeight || 0,
1008      iw: window.innerWidth || 0,
1009      ih: window.innerHeight || 0,
1010      dpr: window.devicePixelRatio || 0,
1011      lang: lang,
1012      langs: Array.prototype.slice.call(langs || []).slice(0, 8),
1013      ref: ref,
1014      uri: window.location.pathname + window.location.search
1015    };
1016    var body = JSON.stringify(payload);
1017    var endpoint = '/asvl';
1018
1019    if (nav.sendBeacon) {
1020      nav.sendBeacon(endpoint, new Blob([body], {type: 'application/json'}));
1021      return;
1022    }
1023
1024    if (window.fetch) {
1025      window.fetch(endpoint, {
1026        method: 'POST',
1027        body: body,
1028        headers: {'Content-Type': 'application/json'},
1029        keepalive: true,
1030        credentials: 'same-origin'
1031      });
1032    }
1033  } catch (e) {
1034  }
1035}());
1036</script>
1036
1037        
1038                
1039    
1040
1041    
1042        
1042<script data-cfasync="false">
1043    var configuredWebsiteHost = 'www.govserv.org';
1044    var configuredAccountHost = 'account.' + configuredWebsiteHost.replace(/^www\./, '');
1045    if ((window.location.hostname !== configuredWebsiteHost) && (window.location.hostname !== configuredAccountHost) && (window.location.hostname.indexOf('localhost') === -1)) {
1046        window.top.location.href = 'http://www.govserv.org' + window.location.pathname; 
1047    }
1048    </script>
1048
1049    
1050
1051    <link rel="stylesheet" href="/css/listing-picture-initials.css?v=1" />
1052    
1052<script data-cfasync="false" defer src="/js/facebook-picture-placeholder.js?v=6"></script>
1052
1053  </head>
1054
1055  <body class="page-genre">
1056    <main >
1057        
1058
1059
1060<!-- Header -->
1061    <header id="js-header" class="u-header u-header--sticky-top u-header--toggle-section u-header--change-appearance" data-header-fix-moment="300">
1062      <div class="u-header__section u-header__section--dark g-bg-primary g-transition-0_3 g-py-10" data-header-fix-moment-exclude="g-py-10" data-header-fix-moment-classes="g-py-0">        
1063        
1064        <nav class="navbar navbar-expand-lg">
1065            <div class="container">
1066                <!-- Responsive Toggle Button -->
1067                <button class="navbar-toggler navbar-toggler-right btn g-line-height-1 g-brd-none g-pa-0 g-pos-abs g-top-3 g-right-0" type="button" 
1068                        aria-label="Toggle navigation" aria-expanded="false" aria-controls="navBar" data-toggle="collapse" data-target="#navBar">
1069                    <span class="hamburger hamburger--slider">
1070                        <span class="hamburger-box">
1071                            <span class="hamburger-inner">
1072                            </span>
1073                        </span>
1074                    </span>
1075                </button>
1076                <!-- End Responsive Toggle Button -->
1077
1078                <!-- Logo -->
1079                <a href="https://www.govserv.org/" class="navbar-brand">
1080                    <img src="/img/govserv/h30/logo.png" height="30" alt="GovServ">
1081                </a>
1082                <!-- End Logo -->
1083
1084                <!-- Navigation -->
1085                <div class="collapse navbar-collapse align-items-center flex-sm-row g-pt-10 g-pt-5--lg" id="navBar">
1086                    <ul class="navbar-nav text-uppercase g-font-weight-600 ml-auto">
1087                        
1088                                                
1089                        <li class="nav-item g-mx-20--lg ">
1090                            <a href="https://www.govserv.org/" class="nav-link px-0" data-google-interstitial="false">
1091                                Home                            </a>
1092                        </li>
1093                                                <li class="nav-item g-mx-20--lg ">
1094                            <a href="https://www.govserv.org/US" class="nav-link px-0"><i class='fa fa-map-marker'></i> Cities</a>
1095                        </li>
1096                                                <li class="nav-item g-mx-20--lg ">
1097                            <a href="https://www.govserv.org/countries" class="nav-link px-0"><i class='fa fa-globe'></i> Countries<span class='sr-only'>(current)</span></a>
1098                        </li>
1099                        
1100                                                    <li class="nav-item g-mx-20--lg">
1101                                                                    <a href="/login" class="nav-link px-0" data-google-interstitial="false">Login<span class='sr-only'>(current)</span></a>                                                            </li>
1102                                                
1103                    </ul>
1104                </div>
1105                <!-- End Navigation -->
1106            </div>
1107        </nav>
1108    </div>
1109 </header>
1110 <!-- End Header -->
1111
1112<script type="application/ld+json">
1113{
1114  "@context": "http://schema.org",
1115  "@type": "BreadcrumbList",
1116  "itemListElement": [{
1117    "@type": "ListItem",
1118    "position": 1,
1119    "item": {
1120      "@id": "https:\/\/www.govserv.org\/US",
1121      "name": "United States"    }
1122  },{
1123    "@type": "ListItem",
1124    "position": 2,
1125    "item": {
1126      "@id": "https:\/\/www.govserv.org\/US\/Chicago-IL\/211818",
1127      "name": "Chicago, IL"    }
1128  },{
1129    "@type": "ListItem",
1130    "position": 3,
1131    "item": {
1132      "@id": "https:\/\/www.govserv.org\/US\/Chicago-IL\/211818\/genre\/175838732461622\/Post+offices",
1133      "name": "Government Services"    }
1134  }]
1135}
1136</script>
1136
1137
1138
1139<div class="g-pt-85">
1140    
1141  <section class="g-bg-size-cover g-bg-pos-center g-bg-cover g-bg-black-opacity-0_5--after g-color-white g-py-50 g-mb-20" style="background-image: url(/img/directory/1920x800/cities/211818-chicago.jpg);">
1142    <div class="container g-bg-cover__inner">
1143      <header class="g-mb-20">
1144        <h1 class="h1 g-font-weight-300 text-uppercase">Post offices in Chicago, IL</h1>
1145      </header>
1146
1147      <ul class="u-list-inline">
1148        <li class="list-inline-item g-mr-7">
1149          <a href="/" class="u-link-v5 g-color-white g-color-primary--hover">Home</a>          <i class="fa fa-angle-right g-ml-7"></i>
1150        </li>
1151        <li class="list-inline-item g-mr-7">
1152          <a href="/US" class="u-link-v5 g-color-white g-color-primary--hover">United States</a>          <i class="fa fa-angle-right g-ml-7"></i>
1153        </li>
1154                                <li class="list-inline-item g-mr-7">
1155          <a href="/US/Chicago-IL/211818" class="u-link-v5 g-color-white g-color-primary--hover">Chicago</a>          <i class="fa fa-angle-right g-ml-7"></i>
1156        </li>
1157        <li class="list-inline-item g-color-primary">
1158          <span>Post offices in Chicago, IL</span>
1159        </li>
1160      </ul>
1161    </div>
1162  </section>
1163    
1164</div>
1165
1166
1167
1168<!-- Blog Minimal Blocks -->
1169<div class="container g-pt-10 g-pb-20">
1170    <div class="row justify-content-between">
1171        <div class="col-lg-9 order-lg-2 order-xs-2 g-mb-80">
1172            <div class="g-pr-20--lg">
1173                
1174                <div class="row g-mb-12">
1175                    <div class="col-md-12">
1176                        <p class="lead">Find Post offices in Chicago, IL. Listings include My Mail Center, The UPS Store 5608, Snail Mail Is My Therapy, Fata new yesetey and Jewelry by Kim handmade glass. Click on each in the list below the map for more information.</p>
1177                    </div>
1178                </div>
1179
1180                                <div class="row g-mb-20">
1181                    <div class="col-md-12">
1182                                                    <ins class="adsbygoogle" data-fgl-adsense-manual="1"
1183         style="display:block; min-height:280px"
1184         data-ad-channel="8320389820"
1185         data-ad-slot="9736270279"
1186         data-ad-format="auto"
1187         data-full-width-responsive="true"></ins>
1188                                </div>
1189                </div>
1190                                
1191                <div class="row g-mb-20">
1192                    <div class="col-md-12">
1193                        
1194<div id="map" style="height: 400px; width: 100%;"></div>
1195
1196
1197<script data-cfasync="false">
1198    
1199function trunc20(str) {
1200    if (str.length > 20) {
1201        return str.substring(0,20) + "...";
1202    } else {
1203        return str;
1204    }
1205}
1206
1207
1208
1209var map;
1210
1211document.addEventListener("DOMContentLoaded", function(){
1212
1213    setTimeout(function (){
1214        loadCss("https://unpkg.com/[email protected]/dist/leaflet.css", false);
1215        loadScript("https://unpkg.com/[email protected]/dist/leaflet.js", false, function () {
1216        
1217            map = L.map('map').setView([41.8854, -87.6803], 11);
1218            var markersLayer = new L.LayerGroup();
1219            markersLayer.addTo(map);
1220            var osmAttrib='&copy; <a href="https://maptiler.com">MapTiler</a> &copy; <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
1221            var locations = [
1222                                    {id:100420081573394,lat:41.8773,lng:-87.6248,title:'My Mail Center',popupHtml:'<center><a href="/US/Chicago/100420081573394/My-Mail-Center"><img height="100" width="100" src="https://graph.facebook.com/100420081573394/picture?type=square"/><h5>My Mail Center</h5></a></center>',urlPath:'US/Chicago/100420081573394/My-Mail-Center',pictureUrl:'https://graph.facebook.com/100420081573394/picture?type=square',label:'A'},
1223                                    {id:133417020032580,lat:41.8692,lng:-87.6557,title:'The UPS Store 5608',popupHtml:'<center><a href="/US/Chicago/133417020032580/The-UPS-Store-5608"><img height="100" width="100" src="https://graph.facebook.com/133417020032580/picture?type=square"/><h5>The UPS Store 5608</h5></a></center>',urlPath:'US/Chicago/133417020032580/The-UPS-Store-5608',pictureUrl:'https://graph.facebook.com/133417020032580/picture?type=square',label:'B'},
1224                                    {id:105163008033859,lat:41.9096,lng:-87.7604,title:'Fata new yesetey',popupHtml:'<center><a href="/US/Chicago/105163008033859/Fata-new-yesetey"><img height="100" width="100" src="https://graph.facebook.com/105163008033859/picture?type=square"/><h5>Fata new yesetey</h5></a></center>',urlPath:'US/Chicago/105163008033859/Fata-new-yesetey',pictureUrl:'https://graph.facebook.com/105163008033859/picture?type=square',label:'C'},
1225                            ];
1226            var locationIds = [100420081573394,133417020032580,105163008033859,];
1227            var gettingMore = false;
1228
1229            map.on('moveend', function(e) {
1230                //getMore();
1231            });
1232
1233            map.on('zoomend', function(e) {
1234                //getMore();
1235            });
1236
1237            map._addMarker = function(loc) {
1238                var marker = L.marker([loc.lat,loc.lng], {
1239                                    title: loc.title,
1240                                    riseOnHover: true,
1241                                                                        icon: loc.label ? new L.DivIcon({
1242                                        className: 'directory-map-marker',
1243                                        html: '<span aria-hidden="true">' + loc.label + '</span>',
1244                                        iconSize: [34, 34],
1245                                        iconAnchor: [17, 34],
1246                                        popupAnchor: [0, -34]
1247                                    }) : new L.Icon.Default()
1248                                                                    })
1249                                                                .bindTooltip('<a href="/' + loc.urlPath + '">' + loc.title + '</a>', {
1250                                    permanent: false,
1251                                    direction: 'top',
1252                                    offset: L.point(0, -30),
1253                                    opacity: 0.88,
1254                                    interactive: true
1255                                })
1256                                .bindPopup(loc.popupHtml);
1257                                                markersLayer.addLayer(marker);
1258            }
1259
1260            var mapPopulated = false;
1261            function populateMap() {
1262                if (mapPopulated) {
1263                    return;
1264                }
1265                mapPopulated = true;
1266                locations.forEach(function(loc) {
1267                    map._addMarker(loc);
1268                });
1269                L.tileLayer('https://map.govserv.org/api/maps/bright/{z}/{x}/{y}.png', {
1270                    attribution: osmAttrib,
1271                    tileSize: 512,
1272                    zoomOffset: -1
1273                }).addTo(map);
1274            }
1275
1276                            if ("IntersectionObserver" in window) {
1277                    let lazyMapObserver = new IntersectionObserver(function(entries, observer) {
1278                        entries.forEach(function(entry) {
1279                            if (entry.isIntersecting) {
1280                                lazyMapObserver.unobserve(entry.target);
1281                                populateMap();
1282                            }
1283                        });
1284                    });
1285                    lazyMapObserver.observe(document.querySelector("#map"));
1286                } else {
1287                    populateMap();
1288                }
1289            
1290            map._addMarker2 = function(label, name, latitude, longitude) {
1291            
1292            
1293                var marker = L.marker([latitude,longitude], {
1294                                    //title: loc.title,
1295                                                                        icon: label ? new L.DivIcon({
1296                                        className: 'directory-map-marker',
1297                                        html: '<span aria-hidden="true">' + label + '</span>',
1298                                        iconSize: [34, 34],
1299                                        iconAnchor: [17, 34],
1300                                        popupAnchor: [0, -34]
1301                                    }) : new L.Icon.Default()
1302                                                
1303                                        //className: 'my-div-icon',
1304                                        //iconUrl: "https://graph.facebook.com/" + loc.id + "/picture?type=square",
1305                                        //iconSize: [32, 32],
1306                                        //html: '<span class="my-div-span"><img height="24" width="24" border="2" src="https://graph.facebook.com/' + loc.id + '/picture?type=square" /></span>'
1307            
1308                                })
1309            
1310                                .bindTooltip(name, {
1311                                    //permanent: true, 
1312                                    direction: 'bottom',
1313                                    //offset: L.point(12, 25),
1314                                    //opacity: 0.88,
1315                                    interactive: true
1316                                })
1317                                .bindPopup(name);
1318                markersLayer.addLayer(marker);
1319
1320            }
1321
1322            function getMore() {
1323                if (gettingMore) {
1324                    return;
1325                }
1326                gettingMore = true;
1327                var center = map.getCenter();
1328
1329                $.ajax({
1330                    url: "/vicinitysearch",
1331                    data: { lat: center.lat, lng: center.lng, country: "UNITED STATES" , genre_id:175838732461622 }
1332                })
1333                .done(function(data) {
1334                    var added = 0;
1335                    data.forEach(function(loc) {
1336                        if (!locationIds.includes(loc.id)) {
1337                            var mapLoc = {id:loc.id,lat:loc.latitude,lng:loc.longitude,title:trunc20(loc.name),popupHtml:loc.popupHtml,urlPath:loc.urlPath,pictureUrl:loc.pictureUrl};
1338                            locations.push(mapLoc);
1339                            locationIds.push(loc.id);
1340                            map._addMarker(mapLoc);
1341                            added++;
1342                        }
1343                    });
1344                })
1345                .always(function() {
1346                    gettingMore = false;
1347                });
1348            }
1349            
1350            map._clearMarkers = function() {
1351                markersLayer.clearLayers();
1352            }
1353
1354        });
1355
1356    }, 1);
1357        
1358
1359});
1360
1361 </script>
1361
1362  
1363  
1364                    </div>
1365                </div>
1366
1367                <div class="row g-mb-12">
1368                    
1369                                                        
1370<div class="col-md-6 g-mb-30">
1371    <article class="directory-promotion d-flex justify-content-between align-items-center u-shadow-v19 g-bg-primary rounded g-pa-20">
1372        <img class="directory-promotion-image g-max-width-120 g-mr-20" alt="" src="/img/feature.jpg" />
1373
1374        <div class="directory-result-content">
1375            <header>
1376                <h3 class="g-color-black g-font-weight-700 g-font-size-13 text-uppercase">
1377                    Want your organization to be the top-listed Post office in Chicago, IL?                </h3>
1378                <p class="directory-promotion-action mb-0">
1379                                                    <a rel="nofollow" href="/US/Chicago-IL/211818/genre/175838732461622/Post+offices/feature/start?exp=1790290279" class="directory-promotion-link g-color-black" data-google-interstitial="false">Click here to claim your Sponsored Listing.</a>                                        </p>
1380            </header>
1381        </div>
1382    </article>
1383</div>
1384
1385                                        
1386                                            <div class="col-md-6 g-mb-30">
1387    <article class="d-flex justify-content-between align-items-center u-shadow-v19 g-bg-primary rounded g-pa-20">
1388                                            <a href="/US/Chicago/49690408710/Chicago-Park-District" class="d-block g-max-width-100 g-mr-20"><img data-listing-initials width="100" class="g-rounded-50x" alt="Chicago Park District" src="https://graph.facebook.com/49690408710/picture?type=large" onerror="this.onerror=null;this.src=&#39;/img/govserv/logo.png&#39;" /></a>        
1389        <div class="directory-result-content g-mr-20">
1390            <header>
1391                                <h3 class="g-color-black g-font-weight-700 g-font-size-13 text-uppercase">
1392                    <a href="/US/Chicago/49690408710/Chicago-Park-District" class="u-link-v5 g-color-black g-color-white--hover">Chicago Park District</a>                </h3>
1393                <h4 class="g-font-size-12 text-uppercase g-mb-15">
1394                                          4830 S. Western Avenue                                                            </h4>
1395            </header>
1396        </div>
1397    </article>
1398</div>
1399 
1400                    
1401                                        
1402                                                                    <div class="col-md-6 g-mb-30">
1403    <!-- Article -->
1404    <article class="d-flex align-items-start u-shadow-v19 g-bg-white rounded g-pa-20">
1405        <!-- Article Image -->
1406                <a href="/US/Chicago/100420081573394/My-Mail-Center" class="d-block g-max-width-100 g-mr-20"><img data-listing-initials class="w-100 g-rounded-50x" alt="My Mail Center" src="https://graph.facebook.com/100420081573394/picture?type=large" onerror="this.onerror=null;this.src=&#39;/img/govserv/logo.png&#39;" /></a>        <!-- End Article Image -->
1407
1408        <div class="directory-result-content g-mr-20">
1409            <!-- Article Header -->
1410            <header>
1411                <h3 class="g-color-black g-font-weight-700 g-font-size-13 text-uppercase">
1412                    <a href="/US/Chicago/100420081573394/My-Mail-Center" class="u-link-v5 g-color-black g-color-primary--hover">My Mail Center</a>                </h3>
1413                <h4 class="g-font-size-12 text-uppercase g-mb-15">
1414                    <i class="align-middle g-font-size-18 g-mr-7 icon-hotel-restaurant-235"></i>
1415                        332 S. Michigan Avenue STE 121, Chicago 60                </h4>
1416            </header>
1417            <!-- End Article Header -->
1418
1419            <!-- Article Content -->
1420<!--            <p>Serving entrepreneurs, business firms (large ...</p>-->
1421        </div>
1422        <div class="directory-result-marker d-block">
1423                            <strong class="d-block ml-auto g-color-white g-bg-primary g-font-weight-700 g-font-size-13 rounded g-py-4 g-px-12" aria-label="Map marker A" title="Map marker A">A</strong>
1424                    </div>
1425        <!-- End Article Content -->
1426    </article>
1427    <!-- End Article -->
1428</div>
1429 
1430                        
1431                                                                                            <div class="col-md-6 g-mb-30">
1432    <!-- Article -->
1433    <article class="d-flex align-items-start u-shadow-v19 g-bg-white rounded g-pa-20">
1434        <!-- Article Image -->
1435                <a href="/US/Chicago/133417020032580/The-UPS-Store-5608" class="d-block g-max-width-100 g-mr-20"><img data-listing-initials class="w-100 g-rounded-50x" alt="The UPS Store 5608" src="https://graph.facebook.com/133417020032580/picture?type=large" onerror="this.onerror=null;this.src=&#39;/img/govserv/logo.png&#39;" /></a>        <!-- End Article Image -->
1436
1437        <div class="directory-result-content g-mr-20">
1438            <!-- Article Header -->
1439            <header>
1440                <h3 class="g-color-black g-font-weight-700 g-font-size-13 text-uppercase">
1441                    <a href="/US/Chicago/133417020032580/The-UPS-Store-5608" class="u-link-v5 g-color-black g-color-primary--hover">The UPS Store 5608</a>                </h3>
1442                <h4 class="g-font-size-12 text-uppercase g-mb-15">
1443                    <i class="align-middle g-font-size-18 g-mr-7 icon-hotel-restaurant-235"></i>
1444                        1137 W Taylor St, Chicago 60607                </h4>
1445            </header>
1446            <!-- End Article Header -->
1447
1448            <!-- Article Content -->
1449<!--            <p></p>-->
1450        </div>
1451        <div class="directory-result-marker d-block">
1452                            <strong class="d-block ml-auto g-color-white g-bg-primary g-font-weight-700 g-font-size-13 rounded g-py-4 g-px-12" aria-label="Map marker B" title="Map marker B">B</strong>
1453                    </div>
1454        <!-- End Article Content -->
1455    </article>
1456    <!-- End Article -->
1457</div>
1458 
1459                        
1460                                                                                            <div class="col-md-6 g-mb-30">
1461    <!-- Article -->
1462    <article class="d-flex align-items-start u-shadow-v19 g-bg-white rounded g-pa-20">
1463        <!-- Article Image -->
1464                <a href="/US/Chicago/177478458772811/Snail-Mail-Is-My-Therapy" class="d-block g-max-width-100 g-mr-20"><img data-listing-initials class="w-100 g-rounded-50x" alt="Snail Mail Is My Therapy" src="https://graph.facebook.com/177478458772811/picture?type=large" onerror="this.onerror=null;this.src=&#39;/img/govserv/logo.png&#39;" /></a>        <!-- End Article Image -->
1465
1466        <div class="directory-result-content g-mr-20">
1467            <!-- Article Header -->
1468            <header>
1469                <h3 class="g-color-black g-font-weight-700 g-font-size-13 text-uppercase">
1470                    <a href="/US/Chicago/177478458772811/Snail-Mail-Is-My-Therapy" class="u-link-v5 g-color-black g-color-primary--hover">Snail Mail Is My Therapy</a>                </h3>
1471                <h4 class="g-font-size-12 text-uppercase g-mb-15">
1472                    <i class="align-middle g-font-size-18 g-mr-7 icon-hotel-restaurant-235"></i>
1473                        Chicago                 </h4>
1474            </header>
1475            <!-- End Article Header -->
1476
1477            <!-- Article Content -->
1478<!--            <p>Snail mail has been my passion for the past 6...</p>-->
1479        </div>
1480        <div class="directory-result-marker d-block">
1481                    </div>
1482        <!-- End Article Content -->
1483    </article>
1484    <!-- End Article -->
1485</div>
1486 
1487                        
1488                                                                                            <div class="col-md-6 g-mb-30">
1489    <!-- Article -->
1490    <article class="d-flex align-items-start u-shadow-v19 g-bg-white rounded g-pa-20">
1491        <!-- Article Image -->
1492                <a href="/US/Chicago/105163008033859/Fata-new-yesetey" class="d-block g-max-width-100 g-mr-20"><img data-listing-initials class="w-100 g-rounded-50x" alt="Fata new yesetey" src="https://graph.facebook.com/105163008033859/picture?type=large" onerror="this.onerror=null;this.src=&#39;/img/govserv/logo.png&#39;" /></a>        <!-- End Article Image -->
1493
1494        <div class="directory-result-content g-mr-20">
1495            <!-- Article Header -->
1496            <header>
1497                <h3 class="g-color-black g-font-weight-700 g-font-size-13 text-uppercase">
1498                    <a href="/US/Chicago/105163008033859/Fata-new-yesetey" class="u-link-v5 g-color-black g-color-primary--hover">Fata new yesetey</a>                </h3>
1499                <h4 class="g-font-size-12 text-uppercase g-mb-15">
1500                    <i class="align-middle g-font-size-18 g-mr-7 icon-hotel-restaurant-235"></i>
1501                        Egypt, Chicago                 </h4>
1502            </header>
1503            <!-- End Article Header -->
1504
1505            <!-- Article Content -->
1506<!--            <p></p>-->
1507        </div>
1508        <div class="directory-result-marker d-block">
1509                            <strong class="d-block ml-auto g-color-white g-bg-primary g-font-we
1509ight-700 g-font-size-13 rounded g-py-4 g-px-12" aria-label="Map marker C" title="Map marker C">C</strong>
1510                    </div>
1511        <!-- End Article Content -->
1512    </article>
1513    <!-- End Article -->
1514</div>
1515 
1516                        
1517                                                                                            <div class="col-md-6 g-mb-30">
1518    <!-- Article -->
1519    <article class="d-flex align-items-start u-shadow-v19 g-bg-white rounded g-pa-20">
1520        <!-- Article Image -->
1521                <a href="/US/Chicago/1978960485702698/Jewelry-by-Kim-handmade-glass" class="d-block g-max-width-100 g-mr-20"><img data-listing-initials class="w-100 g-rounded-50x" alt="Jewelry by Kim handmade glass" src="https://graph.facebook.com/1978960485702698/picture?type=large" onerror="this.onerror=null;this.src=&#39;/img/govserv/logo.png&#39;" /></a>        <!-- End Article Image -->
1522
1523        <div class="directory-result-content g-mr-20">
1524            <!-- Article Header -->
1525            <header>
1526                <h3 class="g-color-black g-font-weight-700 g-font-size-13 text-uppercase">
1527                    <a href="/US/Chicago/1978960485702698/Jewelry-by-Kim-handmade-glass" class="u-link-v5 g-color-black g-color-primary--hover">Jewelry by Kim handmade glass</a>                </h3>
1528                <h4 class="g-font-size-12 text-uppercase g-mb-15">
1529                    <i class="align-middle g-font-size-18 g-mr-7 icon-hotel-restaurant-235"></i>
1530                        5512 Common Street. Chicago Ill, Chicago                 </h4>
1531            </header>
1532            <!-- End Article Header -->
1533
1534            <!-- Article Content -->
1535<!--            <p></p>-->
1536        </div>
1537        <div class="directory-result-marker d-block">
1538                    </div>
1539        <!-- End Article Content -->
1540    </article>
1541    <!-- End Article -->
1542</div>
1543 
1544                        
1545                                                            </div>
1546
1547                <!-- Pagination -->
1548                                
1549                
1550                                <div class="row g-mb-20">
1551                    <div class="col-md-12">
1552                                                                                </div>
1553                </div>
1554                           </div>
1555        </div>
1556
1557        <div class="col-lg-3 order-lg-1 order-xs-1 g-brd-right--lg g-brd-gray-light-v4 g-mb-40">
1558            
1559                        
1560                            <div class="g-pr-1--lg">
1561                    <div class="g-mb-50">
1562                                                                            </div>
1563                </div>
1564                        
1565        </div>
1566    </div>
1567</div>
1568<!-- End Blog Minimal Blocks -->
1569
1570
1571      <!-- Footer -->
1572  <footer class="g-bg-black-opacity-0_9 g-color-white-opacity-0_6 g-py-60">
1573    <div class="container">
1574      <div class="row">
1575        <!-- Footer Content -->
1576        <div class="col-lg-4 g-mb-50 g-mb-0--lg">
1577          <h6 class="h6 g-color-white text-uppercase g-font-weight-700 g-mb-20">About GovServ</h6>
1578          <div class="g-mb-25">
1579              <p>
1580                  One of the largest resources on the Internet for finding government services and related businesses, worldwide.              </p>
1581          </div>
1582
1583        </div>
1584        <!-- End Footer Content -->
1585
1586        <!-- Footer Content -->
1587        <div class="col-lg-4 g-mb-30 g-mb-0--lg">
1588          <h6 class="h6 g-color-white text-uppercase g-font-weight-700 g-mb-20">Useful Links</h6>
1589          <div class="row">
1590            <div class="col-sm-6">
1591              <ul class="list-unstyled g-mb-30 g-mb-0--md">
1592                <li class="d-flex g-mb-12">
1593                  <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i>
1594                  <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="https://www.govserv.org/about" data-google-interstitial="false">
1595                      About GovServ</a>
1596                </li>
1597                <li class="d-flex g-mb-12">
1598                  <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i>
1599                  <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="https://www.govserv.org/terms" data-google-interstitial="false">
1600                      Terms</a>
1601                </li>
1602                <li class="d-flex g-mb-12">
1603                  <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i>
1604                  <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="https://www.govserv.org/privacy" data-google-interstitial="false">
1605                    Privacy Policy</a>
1606                </li>
1607                <li class="d-flex">
1608                  <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i>
1609                  <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="https://www.govserv.org/faq" data-google-interstitial="false">
1610                      FAQ</a>
1611                </li>
1612              </ul>
1613            </div>
1614
1615            <div class="col-sm-6">
1616              <ul class="list-unstyled mb-0">
1617                                <li class="d-flex g-mb-12">
1618                  <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i>
1619                  <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="https://www.govserv.org/advertise" data-google-interstitial="false">
1620                      Advertise</a>
1621                </li>
1622                                <li class="d-flex g-mb-12">
1623                  <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i>
1624                  <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="https://www.govserv.org/login/start" data-google-interstitial="false">
1625                      Add listing</a>
1626                </li>
1627                                    <li class="d-flex">
1628                        <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i>
1629                                                    <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="/login" data-google-interstitial="false">
1630                                Login</a>
1631                                            </li>
1632                              </ul>
1633            </div>
1634          </div>
1635        </div>
1636        <!-- End Footer Content -->
1637
1638        <!-- Footer Content -->
1639        <div class="col-lg-4">
1640          <h6 class="h6 g-color-white text-uppercase g-font-weight-700 g-mb-20">Subscribe</h6>
1641          
1642          <p> We will notify you when anything happens in Chicago. </p>
1643
1644          <form class="g-mt-25" onsubmit="event.preventDefault(); subscribe(211818,null);" >
1645            <div class="row">
1646              <div class="col-md-8 col-lg-12">
1647                
1648                <div class="form-group g-mb-20">
1649                    <label class="sr-only" for="email">Your Email</label>
1650                    <input id="email" class="form-control g-color-white g-bg-transparent g-bg-transparent--focus g-brd-white-opacity-0_1 g-brd-primary--focus g-px-20 g-py-12" type="email" placeholder="Your Email">
1651                </div>
1652              </div>
1653
1654              <div class="col-md-4 col-lg-12">
1655                <button id="submit" class="btn btn-md u-btn-primary g-font-size-12 text-uppercase rounded g-py-11 g-px-30" type="submit">Subscribe</button>
1656              </div>
1657            </div>
1658          </form>
1659        </div>
1660        <!-- End Footer Content -->
1661      </div>
1662    </div>
1663  </footer>
1664  <!-- End Footer -->
1665  <div class="container" id="google-consent-footer"></div>
1666  
1666<script data-cfasync="false" defer src="/js/google-consent-footer.js?v=20260917-1"></script>
1666
1667
1668<script>
1669    function subscribe(city, page) {
1670        var email;
1671        if (page === null) {
1672            email = $("#email").val();
1673            $("#email").prop('disabled', true);
1674            $("#submit").hide(300);
1675        } else {
1676            email = $("#alert_email").val();
1677            $("#alert_email").prop('disabled', true);
1678            $("#alert_submit").hide(300);
1679        }
1680        
1681        $.ajax({
1682            method: "POST",
1683            contentType : 'application/json',
1684            url: "/subscribe",
1685            data: JSON.stringify({email: email, city: city, page: page})
1686        }).done(function(response) {
1687            console.log(response);
1688        })            
1689        .fail(function( jqXHR, textStatus) {
1690            console.log(textStatus);
1691        });
1692        
1693        return false;
1694    }
1695</script>
1695
1696
1697
1698<!--
1698<script async type="text/javascript" src="https://www.google.com/coop/cse/brand?form=cse-search-box&amp;lang=en"></script>
1698-->
1699    </main>
1700    
1701
1702
1703    
1703<script data-cfasync="false">
1704
1705/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */
1706(function(w){
1707	"use strict";
1708	/* exported loadCSS */
1709	var loadCSS = function( href, before, media ){
1710		// Arguments explained:
1711		// `href` [REQUIRED] is the URL for your CSS file.
1712		// `before` [OPTIONAL] is the element the script should use as a reference for injecting our stylesheet <link> before
1713		// By default, loadCSS attempts to inject the link after the last stylesheet or script in the DOM. However, you might desire a more specific location in your document.
1714		// `media` [OPTIONAL] is the media type or query of the stylesheet. By default it will be 'all'
1715		var doc = w.document;
1716		var ss = doc.createElement( "link" );
1717		var ref;
1718		if( before ){
1719			ref = before;
1720		}
1721		else {
1722			var refs = ( doc.body || doc.getElementsByTagName( "head" )[ 0 ] ).childNodes;
1723			ref = refs[ refs.length - 1];
1724		}
1725
1726		var sheets = doc.styleSheets;
1727		ss.rel = "stylesheet";
1728		ss.href = href;
1729		// temporarily set media to something inapplicable to ensure it'll fetch without blocking render
1730		ss.media = "only x";
1731
1732		// wait until body is defined before injecting link. This ensures a non-blocking load in IE11.
1733		function ready( cb ){
1734			if( doc.body ){
1735				return cb();
1736			}
1737			setTimeout(function(){
1738				ready( cb );
1739			});
1740		}
1741		// Inject link
1742			// Note: the ternary preserves the existing behavior of "before" argument, but we could choose to change the argument to "after" in a later release and standardize on ref.nextSibling for all refs
1743			// Note: `insertBefore` is used instead of `appendChild`, for safety re: http://www.paulirish.com/2011/surefire-dom-element-insertion/
1744		ready( function(){
1745			ref.parentNode.insertBefore( ss, ( before ? ref : ref.nextSibling ) );
1746		});
1747		// A method (exposed on return object for external use) that mimics onload by polling document.styleSheets until it includes the new sheet.
1748		var onloadcssdefined = function( cb ){
1749			var resolvedHref = ss.href;
1750			var i = sheets.length;
1751			while( i-- ){
1752				if( sheets[ i ].href === resolvedHref ){
1753					return cb();
1754				}
1755			}
1756			setTimeout(function() {
1757				onloadcssdefined( cb );
1758			});
1759		};
1760
1761		function loadCB(){
1762			if( ss.addEventListener ){
1763				ss.removeEventListener( "load", loadCB );
1764			}
1765			ss.media = media || "all";
1766		}
1767
1768		// once loaded, set link's media back to `all` so that the stylesheet applies once it loads
1769		if( ss.addEventListener ){
1770			ss.addEventListener( "load", loadCB);
1771		}
1772		ss.onloadcssdefined = onloadcssdefined;
1773		onloadcssdefined( loadCB );
1774		return ss;
1775	};
1776	// commonjs
1777	if( typeof exports !== "undefined" ){
1778		exports.loadCSS = loadCSS;
1779	}
1780	else {
1781		w.loadCSS = loadCSS;
1782	}
1783}( typeof global !== "undefined" ? global : this ));
1784  </script>
1784
1785
1786    
1787            
1788<script data-cfasync="false">
1789
1790var $grid, $grid2;
1791$(function () {
1792
1793    $grid = $('.masonry-grid').masonry({
1794        columnWidth: '.masonry-grid-item',
1795        itemSelector: '.masonry-grid-item',
1796        transitionDuration: 0,
1797    });
1798
1799    $grid2 = $('.masonry-grid2').masonry({
1800        columnWidth: '.masonry-grid-item',
1801        itemSelector: '.masonry-grid-item',
1802        transitionDuration: 0,
1803    });
1804
1805    var layoutPending = false;
1806    function scheduleLayout() {
1807        if (layoutPending) return;
1808        layoutPending = true;
1809        requestAnimationFrame(function () {
1810            layoutPending = false;
1811            $grid.masonry('layout');
1812            $grid2.masonry('layout');
1813        });
1814    }
1815    var grids = document.querySelectorAll('.masonry-grid, .masonry-grid2');
1816    // Lazy images, failed images and embedded media can change size after load.
1817    // Observe item dimensions, not container height, to avoid layout feedback.
1818    if (window.ResizeObserver) {
1819        var sizeObserver = new ResizeObserver(scheduleLayout);
1820        grids.forEach(function (grid) {
1821            grid.querySelectorAll('.masonry-grid-item').forEach(function (item) {
1822                sizeObserver.observe(item);
1823            });
1824        });
1825    }
1826    grids.forEach(function (grid) {
1827        grid.addEventListener('load', scheduleLayout, true);
1828        grid.addEventListener('error', scheduleLayout, true);
1829    });
1830    $(window).on('resize', scheduleLayout);
1831    if (document.fonts && document.fonts.ready) document.fonts.ready.then(scheduleLayout);
1832    scheduleLayout();
1833
1834});
1835$(window).on('load', function () {
1836    if ($grid !== undefined) {
1837        $grid.masonry('layout');
1838    }
1839});
1840</script>
1840
1841    
1842    
1842<script data-cfasync="false">
1843    var documentReady=false, carouselInit=false;
1844    </script>
1844
1845    
1845<script src="https://cdnjs.cloudflare.com/polyfill/v2/polyfill.min.js?features=IntersectionObserver"></script>
vendor: 1 bytes, line 1845
1845
1846<script data-cfasync="false">
1847
1848document.addEventListener("DOMContentLoaded", function() {
1849
1850    var lazyImages = [].slice.call(document.querySelectorAll("img[data-src]"));
1851    var lazyVideos = [].slice.call(document.querySelectorAll("div.fb-video-lazy"));
1852    var captchaDivs = [].slice.call(document.querySelectorAll("div.g-recaptcha"));
1853
1854    if ("IntersectionObserver" in window) {
1855
1856      
1857
1858        let lazyImageObserver = new IntersectionObserver(function(entries, observer) {
1859            entries.forEach(function(entry) {
1860                if (entry.isIntersecting) {
1861
1862                    let lazyImage = entry.target;
1863                    if (typeof lazyImage.dataset.src !== 'undefined') {
1864                        lazyImage.src = lazyImage.dataset.src;
1865                    }
1866                    lazyImageObserver.unobserve(lazyImage);
1867
1868                                            if ($grid !== undefined) {
1869                            $grid.masonry('layout');
1870                        }
1871                    
1872                    if (typeof addthis !== 'undefined') {
1873                        if (typeof addthis.layers.refresh !== 'undefined' && $.isFunction(addthis.layers.refresh)) {
1874                            addthis.layers.refresh();
1875                        } 
1876                    } 
1877
1878                    if (documentReady && !carouselInit) {
1879                        // initialization of carousel
1880                        carouselInit = true;
1881                        $.HSCore.components.HSCarousel.init('.js-carousel');
1882                    }
1883                }
1884        });
1885    }, {
1886          rootMargin: "0px 0px 600px 0px"
1887    });
1888
1889    lazyImages.forEach(function(lazyImage) {
1890        lazyImageObserver.observe(lazyImage);
1891    });
1892
1893    
1894
1895    let lazyVideoObserver = new IntersectionObserver(function(entries, observer) {
1896        entries.forEach(function(entry) {
1897            if (entry.isIntersecting) {
1898
1899                var timerId;
1900                var renderVid = function() {
1901                    if (FbInited) {
1902                        clearInterval(timerId);
1903                        let lazyVideo = entry.target;
1904                        observer.unobserve(lazyVideo);
1905                        lazyVideo.classList.add('fb-video');
1906                        lazyVideo.classList.remove('fb-video-lazy');
1907                        FB.XFBML.parse(lazyVideo.parentNode);
1908
1909                                                    if ($grid !== undefined) {
1910                                $grid.masonry('layout');
1911                            }
1912                                            }
1913                };
1914
1915                if (!FbInited) {
1916                    timerId = setInterval(renderVid, 500);
1917                } else {
1918                    renderVid();
1919                }
1920            }
1921        });
1922    }, {
1923        rootMargin: "0px 0px 600px 0px"
1924    });
1925
1926    lazyVideos.forEach(function(lazyVideo) {
1927        lazyVideoObserver.observe(lazyVideo);
1928    });
1929
1930    
1931
1932    let captchaObserver = new IntersectionObserver(function(entries, observer) {
1933        entries.forEach(function(entry) {
1934            if (entry.isIntersecting) {
1935                observer.unobserve(entry.target);
1936                if (!document.querySelector('script[src*="/recaptcha/api.js"]')) {
1937                    var rc = document.createElement('script');
1938                    rc.setAttribute('src','https://www.google.com/recaptcha/api.js');
1939                    document.head.appendChild(rc);
1940                }
1941            }
1942        });
1943    }, {
1944        rootMargin: "0px 0px 256px 0px"
1945    });
1946
1947    captchaDivs.forEach(function(captchaDiv) {
1948        captchaObserver.observe(captchaDiv);
1949    });
1950
1951    } else {
1952          }
1953  });        
1954</script>
1954
1955    
1956        
1957    
1958    
1958<script data-cfasync="false">
1959      
1960    $(function () {
1961        
1962        documentReady = true;
1963
1964        // initialization of go to
1965        $.HSCore.components.HSGoTo.init('.js-go-to');
1966
1967        // initialization of header
1968        $.HSCore.components.HSHeader.init($('#js-header'));
1969        $.HSCore.helpers.HSHamburgers.init('.hamburger');
1970
1971        // initialization of rating
1972        $.HSCore.components.HSRating.init($('.js-rating'), {
1973          spacing: 4
1974        });
1975
1976        
1977        
1978        
1979              
1980    });
1981    </script>
1981
1982
1983                
1984        
1985        
1986    
1987    <br/>
1988    <br/>
1989    <br/>
1990
1991
1992            
1993                                                                            
1993<script data-cfasync="false">
1994                        if (!window.fglCanLoadAdsenseClient || window.fglCanLoadAdsenseClient()) {
1995                        var google_ad_client = atob("Y2EtcHViLTQ2NjU1MDIzNzg0NTg5NTNHb3ZTZXJ2").substring(0,23);
1996                        var opts = {google_ad_client: google_ad_client  };
1997                        [].forEach.call(document.querySelectorAll('.adsbygoogle'), function(elem){
1998                            elem.setAttribute("data-ad-client", google_ad_client);
1999                            window.fglPushAdsenseElement(elem);
2000                        });
2001                        if (window.fglLoadAdsenseScript) {
2002                            window.fglLoadAdsenseScript("//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=" + google_ad_client, true);
2003                        } else {
2004                            loadScript("//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=" + google_ad_client, true);
2005                        }
2006                        }
2007                    </script>
2007
2008                                                    
2009        
2009<script data-cfasync="false">
2010        document.addEventListener('DOMContentLoaded', () => {
2011
2012            [].forEach.call(document.querySelectorAll('.js-directory-results-toggle'), function (button) {
2013                var results = document.getElementById(button.getAttribute('aria-controls'));
2014                if (!results) return;
2015                button.addEventListener('click', function () {
2016                    var expanded = button.getAttribute('aria-expanded') === 'true';
2017                    results.classList.toggle('is-expanded', !expanded);
2018                    button.setAttribute('aria-expanded', expanded ? 'false' : 'true');
2019                    button.textContent = expanded ? button.getAttribute('data-collapsed-label') : button.getAttribute('data-expanded-label');
2020                });
2021                results.classList.add('is-collapsible');
2022                button.classList.add('is-enhanced');
2023            });
2024            [].forEach.call(document.querySelectorAll('.js-directory-list-toggle'), function (button) {
2025                var list = document.getElementById(button.getAttribute('aria-controls'));
2026                if (!list) return;
2027                button.addEventListener('click', function () {
2028                    var expanded = button.getAttribute('aria-expanded') === 'true';
2029                    list.classList.toggle('is-expanded', !expanded);
2030                    button.setAttribute('aria-expanded', expanded ? 'false' : 'true');
2031                    button.textContent = expanded ? button.getAttribute('data-collapsed-label') : button.getAttribute('data-expanded-label');
2032                });
2033                list.classList.add('is-collapsible');
2034                button.classList.add('is-enhanced');
2035            });
2036
2037                    
2038            setTimeout(function (){
2039                loadScript("https://cdnjs.cloudflare.com/polyfill/v2/polyfill.min.js?features=IntersectionObserver");
2040
2041                                    
2042                                        
2043                    
2044                                            loadScript("https://s.skimresources.com/js/117608X1595507.skimlinks.js");
2045                    
2046                                                }, 3500);
2047        });
2048
2049        function loadCss(cssFile) {
2050            var head  = document.getElementsByTagName('head')[0];
2051            var link  = document.createElement('link');
2052            link.rel  = 'stylesheet';
2053            link.type = 'text/css';
2054            link.href = cssFile;
2055            link.media = 'all';
2056            head.appendChild(link);
2057        }    
2058        </script>
2058
2059    
2060
2061    
2062  
2062<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"b974df09a7c64f9682a2c351c44babc5","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 2062
2062
2063<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a4050280ba95e819',t:'MTc5MDI4NjY3OQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
2063</body>
2064</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.