diff --git a/python-recipes/recommendation-systems/00_content_filtering.ipynb b/python-recipes/recommendation-systems/00_content_filtering.ipynb
index 9f43214..1a2f0c2 100644
--- a/python-recipes/recommendation-systems/00_content_filtering.ipynb
+++ b/python-recipes/recommendation-systems/00_content_filtering.ipynb
@@ -1,1122 +1,1119 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "lzVKwB8Vy4oO"
- },
- "source": [
- "\n",
- "\n",
- "# Recommendation Systems: Content Filtering with RedisVL\n",
- "\n",
- "Recommendation systems are a common application of machine learning and serve many industries from e-commerce to music streaming platforms. However, there are many different architechtures that can be used.\n",
- "\n",
- "In this notebook we'll demonstrate how to build a **[content filtering](https://en.wikipedia.org/wiki/Recommender_system#:~:text=of%20hybrid%20systems.-,Content%2Dbased%20filtering,-%5Bedit%5D)**\n",
- "recommender from scratch using `redisvl` and an IMDB movies dataset.\n",
- "\n",
- "## What is content filtering?\n",
- "Content filtering recommender systems are built on the premise that a person will want to be recommended things that are similar to things they already like.\n",
- "\n",
- "In the case of movies, if a person watches and enjoys a nature documentary we should recommend other nature documentaries. Or if they like classic black & white horror films we should recommend more of those.\n",
- "\n",
- "The question we need to answer is, 'what does it mean for movies to be similar?'. There are exact matching strategies, like using a movie's labelled genre like 'Horror', or 'Sci Fi', but that can lock people in to only a few genres. Or what if it's not the genre that a person likes, but certain story arcs that are common among many genres?\n",
- "\n",
- "For our content filtering recommender we'll measure similarity between movies as semantic similarity of their descriptions and keywords.\n",
- "\n",
- "## Let's Begin!\n",
- " "
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "_iw74d6SzA5i"
- },
- "source": [
- "## Environment Setup\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "WVau8LK81pJN"
- },
- "source": [
- "### Install Python Dependencies"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "id": "HSWpCEdOzHyb"
- },
- "outputs": [],
- "source": [
- "# NBVAL_SKIP\n",
- "!pip install -q redis redisvl sentence_transformers pandas requests"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "bEYZp90izwmZ"
- },
- "source": [
- "### Install Redis Stack\n",
- "\n",
- "Later in this tutorial, Redis will be used to store, index, and query vector\n",
- "embeddings. **We need to make sure we have a Redis instance available.**"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "y04FGPfO0FNp"
- },
- "source": [
- "#### Redis in Colab\n",
- "Use the shell script below to download, extract, and install [Redis Stack](https://redis.io/docs/getting-started/install-stack/) directly from the Redis package archive."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "SJD6uOnHz0Oq",
- "outputId": "5b79aef9-fe3a-413c-c2b2-c73d370f3f46"
- },
- "outputs": [],
- "source": [
- "# NBVAL_SKIP\n",
- "%%sh\n",
- "curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg\n",
- "echo \"deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main\" | sudo tee /etc/apt/sources.list.d/redis.list\n",
- "sudo apt-get update > /dev/null 2>&1\n",
- "sudo apt-get install redis-stack-server > /dev/null 2>&1\n",
- "redis-stack-server --daemonize yes"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "lX6eei__z9AK"
- },
- "source": [
- "#### Other ways to get Redis\n",
- "There are many ways to get the necessary redis-stack instance running\n",
- "1. On cloud, deploy a [FREE instance of Redis in the cloud](https://redis.io/try-free/). Or, if you have your\n",
- "own version of Redis Enterprise running, that works too!\n",
- "2. Per OS, [see the docs](https://redis.io/docs/latest/operate/oss_and_stack/install/install-stack/)\n",
- "3. With docker: `docker run -d --name redis-stack-server -p 6379:6379 redis/redis-stack-server:latest`"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "skN74dq-1YqO"
- },
- "source": [
- "### Define the Redis Connection URL\n",
- "\n",
- "By default this notebook connects to the local instance of Redis Stack. **If you have your own Redis Enterprise instance** - replace REDIS_PASSWORD, REDIS_HOST and REDIS_PORT values with your own."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {
- "id": "eKDuyN0ky4oP"
- },
- "outputs": [],
- "source": [
- "import ast\n",
- "import os\n",
- "import pandas as pd\n",
- "import pickle\n",
- "import requests\n",
- "import warnings\n",
- "warnings.filterwarnings('ignore')\n",
- "\n",
- "# Replace values below with your own if using Redis Cloud instance\n",
- "REDIS_HOST = os.getenv(\"REDIS_HOST\", \"localhost\") # ex: \"redis-18374.c253.us-central1-1.gce.cloud.redislabs.com\"\n",
- "REDIS_PORT = os.getenv(\"REDIS_PORT\", \"6379\") # ex: 18374\n",
- "REDIS_PASSWORD = os.getenv(\"REDIS_PASSWORD\", \"\") # ex: \"1TNxTEdYRDgIDKM2gDfasupCADXXXX\"\n",
- "\n",
- "# If SSL is enabled on the endpoint, use rediss:// as the URL prefix\n",
- "REDIS_URL = f\"redis://:{REDIS_PASSWORD}@{REDIS_HOST}:{REDIS_PORT}\""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "aRqr7Um3y4oP"
- },
- "source": [
- "## Prepare The Dataset"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "naSiAmZBy4oP"
- },
- "source": [
- "Start by downloading the movies data and doing a quick inspection of it."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 293
- },
- "id": "vVyYhgoly4oP",
- "outputId": "51bfe86a-95fd-416c-a629-ab43cda9531d"
- },
- "outputs": [
- {
- "data": {
- "application/vnd.google.colaboratory.intrinsic+json": {
- "summary": "{\n \"name\": \"df\",\n \"rows\": 23922,\n \"fields\": [\n {\n \"column\": \"title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 23922,\n \"samples\": [\n \"The Graduate\",\n \"Ayngaran\",\n \"Acting Ka Bhoot\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"runtime\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1526,\n \"samples\": [\n \"\\u20b93,500,000,000 (estimated)\",\n \"57 minutes\",\n \"$21,471,047\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"rating\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.9521543600532218,\n \"min\": 0.0,\n \"max\": 9.9,\n \"num_unique_values\": 91,\n \"samples\": [\n 4.6,\n 0.0,\n 2.1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"rating_count\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 107222,\n \"min\": 0,\n \"max\": 2600000,\n \"num_unique_values\": 1681,\n \"samples\": [\n 783000,\n 959,\n 3100\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"genres\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 741,\n \"samples\": [\n \"['Adventure', 'Comedy', 'Romance']\",\n \"['Adventure', 'Comedy', 'Film-Noir']\",\n \"['Adventure', 'Comedy', 'History']\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"overview\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 23485,\n \"samples\": [\n \"A young cavalry doctor, against orders, treats very sick Indians who are forced to stay on unhealthy land, which could lead to a war.\",\n \"An ex-policeman/school janitor (Billy Blanks) shows a new student (Kenn Scott) how to defend himself from a martial-arts bully.\",\n \"A socially-criticized, financially-cornered girl becomes an outlaw to dodge the situation.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"keywords\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 21132,\n \"samples\": [\n \"['dream', 'husband wife relationship', 'african american', 'uncle nephew relationship', 'teenage boy', 'teen angst', 'cynicism', 'midlife crisis', 'unrequited love', 'regret']\",\n \"['bare chested male', 'lion wrestling', 'man lion relationship', 'male underwear', 'briefs', 'blood', 'experiment', 'human animal relationship', 'home invasion', 'jungle']\",\n \"['thailand', 'evil child', 'tsunami', 'jungle', 'island', 'burma', 'boat', 'disembowelment', 'feral child', 'rape']\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"director\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 11405,\n \"samples\": [\n \"Franco Rossi\",\n \"Jamil Dehlavi\",\n \"Andrea Berloff\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"cast\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 23736,\n \"samples\": [\n \"['Leo McCarey', 'Mildred Cram', 'Cary Grant', 'Deborah Kerr', 'Richard Denning']\",\n \"['K\\u00f4sei Amano', 'Nozomi Band\\u00f4', 'Shigeaki Kubo', 'Shintar\\u00f4 Akiyama', 'K\\u00f4sei Amano']\",\n \"['Robert Sabaroff', 'Jim Brown', 'Diahann Carroll', 'Ernest Borgnine', 'Gordon Flemyng']\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"writer\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 15276,\n \"samples\": [\n \"Cris Loveless\",\n \"Anand Gandhi\",\n \"Mike Flanagan\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"year\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 134,\n \"samples\": [\n \"(XXXIII)\",\n \"1975\",\n \"2013\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"path\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 23922,\n \"samples\": [\n \"/title/tt0061722/\",\n \"/title/tt7023644/\",\n \"/title/tt17320574/\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
- "type": "dataframe",
- "variable_name": "df"
- },
- "text/html": [
- "\n",
- "
\n",
- "
\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " title \n",
- " runtime \n",
- " rating \n",
- " rating_count \n",
- " genres \n",
- " overview \n",
- " keywords \n",
- " director \n",
- " cast \n",
- " writer \n",
- " year \n",
- " path \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " 0 \n",
- " The Story of the Kelly Gang \n",
- " 1 hour 10 minutes \n",
- " 6.0 \n",
- " 772 \n",
- " ['Action', 'Adventure', 'Biography'] \n",
- " Story of Ned Kelly, an infamous 19th-century A... \n",
- " ['ned kelly', 'australia', 'historic figure', ... \n",
- " Charles Tait \n",
- " ['Elizabeth Tait', 'John Tait', 'Nicholas Brie... \n",
- " Charles Tait \n",
- " 1906 \n",
- " /title/tt0000574/ \n",
- " \n",
- " \n",
- " 1 \n",
- " Fantômas - À l'ombre de la guillotine \n",
- " not-released \n",
- " 6.9 \n",
- " 2300 \n",
- " ['Crime', 'Drama'] \n",
- " Inspector Juve is tasked to investigate and ca... \n",
- " ['silent film', 'france', 'hotel', 'duchess', ... \n",
- " Louis Feuillade \n",
- " ['Louis Feuillade', 'Pierre Souvestre', 'René ... \n",
- " Marcel Allain \n",
- " 1913 \n",
- " /title/tt0002844/ \n",
- " \n",
- " \n",
- " 2 \n",
- " Cabiria \n",
- " 2 hours 28 minutes \n",
- " 7.1 \n",
- " 3500 \n",
- " ['Adventure', 'Drama', 'History'] \n",
- " Cabiria is a Roman child when her home is dest... \n",
- " ['carthage', 'slave', 'moloch', '3rd century b... \n",
- " Giovanni Pastrone \n",
- " ['Titus Livius', 'Giovanni Pastrone', 'Italia ... \n",
- " Gabriele D'Annunzio \n",
- " 1914 \n",
- " /title/tt0003740/ \n",
- " \n",
- " \n",
- " 3 \n",
- " The Life of General Villa \n",
- " not-released \n",
- " 6.7 \n",
- " 65 \n",
- " ['Action', 'Adventure', 'Biography'] \n",
- " The life and career of Panccho Villa from youn... \n",
- " ['chihuahua mexico', 'chihuahua', 'sonora mexi... \n",
- " Christy Cabanne \n",
- " ['Frank E. Woods', 'Raoul Walsh', 'Eagle Eye',... \n",
- " Raoul Walsh \n",
- " 1914 \n",
- " /title/tt0004223/ \n",
- " \n",
- " \n",
- " 4 \n",
- " The Patchwork Girl of Oz \n",
- " not-released \n",
- " 5.4 \n",
- " 484 \n",
- " ['Adventure', 'Family', 'Fantasy'] \n",
- " Ojo and Unc Nunkie are out of food, so they de... \n",
- " ['silent film', 'journey', 'magic wand', 'wiza... \n",
- " J. Farrell MacDonald \n",
- " ['Violet MacMillan', 'Frank Moore', 'Raymond R... \n",
- " L. Frank Baum \n",
- " 1914 \n",
- " /title/tt0004457/ \n",
- " \n",
- " \n",
- "
\n",
- "
\n",
- "
\n",
- "
\n"
- ],
- "text/plain": [
- " title runtime rating \\\n",
- "0 The Story of the Kelly Gang 1 hour 10 minutes 6.0 \n",
- "1 Fantômas - À l'ombre de la guillotine not-released 6.9 \n",
- "2 Cabiria 2 hours 28 minutes 7.1 \n",
- "3 The Life of General Villa not-released 6.7 \n",
- "4 The Patchwork Girl of Oz not-released 5.4 \n",
- "\n",
- " rating_count genres \\\n",
- "0 772 ['Action', 'Adventure', 'Biography'] \n",
- "1 2300 ['Crime', 'Drama'] \n",
- "2 3500 ['Adventure', 'Drama', 'History'] \n",
- "3 65 ['Action', 'Adventure', 'Biography'] \n",
- "4 484 ['Adventure', 'Family', 'Fantasy'] \n",
- "\n",
- " overview \\\n",
- "0 Story of Ned Kelly, an infamous 19th-century A... \n",
- "1 Inspector Juve is tasked to investigate and ca... \n",
- "2 Cabiria is a Roman child when her home is dest... \n",
- "3 The life and career of Panccho Villa from youn... \n",
- "4 Ojo and Unc Nunkie are out of food, so they de... \n",
- "\n",
- " keywords director \\\n",
- "0 ['ned kelly', 'australia', 'historic figure', ... Charles Tait \n",
- "1 ['silent film', 'france', 'hotel', 'duchess', ... Louis Feuillade \n",
- "2 ['carthage', 'slave', 'moloch', '3rd century b... Giovanni Pastrone \n",
- "3 ['chihuahua mexico', 'chihuahua', 'sonora mexi... Christy Cabanne \n",
- "4 ['silent film', 'journey', 'magic wand', 'wiza... J. Farrell MacDonald \n",
- "\n",
- " cast writer \\\n",
- "0 ['Elizabeth Tait', 'John Tait', 'Nicholas Brie... Charles Tait \n",
- "1 ['Louis Feuillade', 'Pierre Souvestre', 'René ... Marcel Allain \n",
- "2 ['Titus Livius', 'Giovanni Pastrone', 'Italia ... Gabriele D'Annunzio \n",
- "3 ['Frank E. Woods', 'Raoul Walsh', 'Eagle Eye',... Raoul Walsh \n",
- "4 ['Violet MacMillan', 'Frank Moore', 'Raymond R... L. Frank Baum \n",
- "\n",
- " year path \n",
- "0 1906 /title/tt0000574/ \n",
- "1 1913 /title/tt0002844/ \n",
- "2 1914 /title/tt0003740/ \n",
- "3 1914 /title/tt0004223/ \n",
- "4 1914 /title/tt0004457/ "
- ]
- },
- "execution_count": 4,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "try:\n",
- " df = pd.read_csv(\"datasets/content_filtering/25k_imdb_movie_dataset.csv\")\n",
- "except:\n",
- " import requests\n",
- " # download the file\n",
- " url = 'https://redis-ai-resources.s3.us-east-2.amazonaws.com/recommenders/datasets/content-filtering/25k_imdb_movie_dataset.csv'\n",
- " r = requests.get(url)\n",
- "\n",
- " #save the file as a csv\n",
- " if not os.path.exists('./datasets/content_filtering'):\n",
- " os.makedirs('./datasets/content_filtering')\n",
- " with open('./datasets/content_filtering/25k_imdb_movie_dataset.csv', 'wb') as f:\n",
- " f.write(r.content)\n",
- " df = pd.read_csv(\"datasets/content_filtering/25k_imdb_movie_dataset.csv\")\n",
- "\n",
- "df.head()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "EwLWwLBSy4oQ"
- },
- "source": [
- "As with any machine learning task, the first step is to clean our data.\n",
- "\n",
- "We'll drop some columns that we don't plan to use, and fill missing values with some reasonable defaults.\n",
- "\n",
- "Lastly, we'll do a quick check to make sure we've filled in all the null and missing values."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 366
- },
- "id": "3MGGS677y4oQ",
- "outputId": "34db9d84-4557-49ca-f227-24e0c95e6268"
- },
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 0 \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " title \n",
- " 0 \n",
- " \n",
- " \n",
- " rating \n",
- " 0 \n",
- " \n",
- " \n",
- " rating_count \n",
- " 0 \n",
- " \n",
- " \n",
- " genres \n",
- " 0 \n",
- " \n",
- " \n",
- " overview \n",
- " 0 \n",
- " \n",
- " \n",
- " keywords \n",
- " 0 \n",
- " \n",
- " \n",
- " director \n",
- " 0 \n",
- " \n",
- " \n",
- " cast \n",
- " 0 \n",
- " \n",
- " \n",
- " year \n",
- " 0 \n",
- " \n",
- " \n",
- "
\n",
- "
dtype: int64 "
- ],
- "text/plain": [
- "title 0\n",
- "rating 0\n",
- "rating_count 0\n",
- "genres 0\n",
- "overview 0\n",
- "keywords 0\n",
- "director 0\n",
- "cast 0\n",
- "year 0\n",
- "dtype: int64"
- ]
- },
- "execution_count": 5,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "roman_numerals = ['(I)','(II)','(III)','(IV)', '(V)', '(VI)', '(VII)', '(VIII)', '(IX)', '(XI)', '(XII)', '(XVI)', '(XIV)', '(XXXIII)', '(XVIII)', '(XIX)', '(XXVII)']\n",
- "\n",
- "def replace_year(x):\n",
- " if x in roman_numerals:\n",
- " return 1998 # the average year of the dataset\n",
- " else:\n",
- " return x\n",
- "\n",
- "df.drop(columns=['runtime', 'writer', 'path'], inplace=True)\n",
- "df['year'] = df['year'].apply(replace_year) # replace roman numerals with average year\n",
- "df['genres'] = df['genres'].apply(ast.literal_eval) # convert string representation of list to list\n",
- "df['keywords'] = df['keywords'].apply(ast.literal_eval) # convert string representation of list to list\n",
- "df['cast'] = df['cast'].apply(ast.literal_eval) # convert string representation of list to list\n",
- "df = df[~df['overview'].isnull()] # drop rows with missing overviews\n",
- "df = df[~df['overview'].isin(['none'])] # drop rows with 'none' as the overview\n",
- "\n",
- "# make sure we've filled all missing values\n",
- "df.isnull().sum()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "wvP1wPsky4oQ"
- },
- "source": [
- "## Generate Vector Embeddings"
- ]
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "lzVKwB8Vy4oO"
+ },
+ "source": [
+ "\n",
+ "\n",
+ "# Recommendation Systems: Content Filtering with RedisVL\n",
+ "\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Recommendation systems are a common application of machine learning and serve many industries from e-commerce to music streaming platforms. However, there are many different architechtures that can be used.\n",
+ "\n",
+ "In this notebook we'll demonstrate how to build a **[content filtering](https://en.wikipedia.org/wiki/Recommender_system#:~:text=of%20hybrid%20systems.-,Content%2Dbased%20filtering,-%5Bedit%5D)**\n",
+ "recommender from scratch using `redisvl` and an IMDB movies dataset.\n",
+ "\n",
+ "## What is content filtering?\n",
+ "Content filtering recommender systems are built on the premise that a person will want to be recommended things that are similar to things they already like.\n",
+ "\n",
+ "In the case of movies, if a person watches and enjoys a nature documentary we should recommend other nature documentaries. Or if they like classic black & white horror films we should recommend more of those.\n",
+ "\n",
+ "The question we need to answer is, 'what does it mean for movies to be similar?'. There are exact matching strategies, like using a movie's labelled genre like 'Horror', or 'Sci Fi', but that can lock people in to only a few genres. Or what if it's not the genre that a person likes, but certain story arcs that are common among many genres?\n",
+ "\n",
+ "For our content filtering recommender we'll measure similarity between movies as semantic similarity of their descriptions and keywords.\n",
+ "\n",
+ "## Let's Begin!"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "_iw74d6SzA5i"
+ },
+ "source": [
+ "## Environment Setup"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "id": "HSWpCEdOzHyb"
+ },
+ "outputs": [],
+ "source": [
+ "# NBVAL_SKIP\n",
+ "!pip install -q redis redisvl sentence_transformers pandas requests"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "bEYZp90izwmZ"
+ },
+ "source": [
+ "### Install Redis Stack\n",
+ "\n",
+ "Later in this tutorial, Redis will be used to store, index, and query vector\n",
+ "embeddings. **We need to make sure we have a Redis instance available.**"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "y04FGPfO0FNp"
+ },
+ "source": [
+ "#### Redis in Colab\n",
+ "Use the shell script below to download, extract, and install [Redis Stack](https://redis.io/docs/getting-started/install-stack/) directly from the Redis package archive."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
},
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "cvrNi2mEy4oQ"
- },
- "source": [
- "Since we movie similarity as semantic similarity of movie descriptions we need a way to generate semantic vector embeddings of these descriptions.\n",
- "\n",
- "RedisVL supports many different embedding generators. For this example we'll use a HuggingFace model that is rated well for semantic similarity use cases.\n",
- "\n",
- "RedisVL also supports complex query logic, beyond just vector similarity. To showcase this we'll generate an embedding from each movies' `overview` text and list of `plot keywords`,\n",
- "and use the remaining fields like, `genres`, `year`, and `rating` as filterable fields to target our vector queries to.\n"
- ]
+ "id": "SJD6uOnHz0Oq",
+ "outputId": "5b79aef9-fe3a-413c-c2b2-c73d370f3f46"
+ },
+ "outputs": [],
+ "source": [
+ "# NBVAL_SKIP\n",
+ "%%sh\n",
+ "curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg\n",
+ "echo \"deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main\" | sudo tee /etc/apt/sources.list.d/redis.list\n",
+ "sudo apt-get update > /dev/null 2>&1\n",
+ "sudo apt-get install redis-stack-server > /dev/null 2>&1\n",
+ "redis-stack-server --daemonize yes"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "lX6eei__z9AK"
+ },
+ "source": [
+ "#### Other ways to get Redis\n",
+ "There are many ways to get the necessary redis-stack instance running\n",
+ "1. On cloud, deploy a [FREE instance of Redis in the cloud](https://redis.io/try-free/). Or, if you have your\n",
+ "own version of Redis Enterprise running, that works too!\n",
+ "2. Per OS, [see the docs](https://redis.io/docs/latest/operate/oss_and_stack/install/install-stack/)\n",
+ "3. With docker: `docker run -d --name redis-stack-server -p 6379:6379 redis/redis-stack-server:latest`"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "skN74dq-1YqO"
+ },
+ "source": [
+ "### Define the Redis Connection URL\n",
+ "\n",
+ "By default this notebook connects to the local instance of Redis Stack. **If you have your own Redis Enterprise instance** - replace REDIS_PASSWORD, REDIS_HOST and REDIS_PORT values with your own."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "id": "eKDuyN0ky4oP"
+ },
+ "outputs": [],
+ "source": [
+ "import ast\n",
+ "import os\n",
+ "import pandas as pd\n",
+ "import pickle\n",
+ "import requests\n",
+ "import warnings\n",
+ "warnings.filterwarnings('ignore')\n",
+ "\n",
+ "# Replace values below with your own if using Redis Cloud instance\n",
+ "REDIS_HOST = os.getenv(\"REDIS_HOST\", \"localhost\") # ex: \"redis-18374.c253.us-central1-1.gce.cloud.redislabs.com\"\n",
+ "REDIS_PORT = os.getenv(\"REDIS_PORT\", \"6379\") # ex: 18374\n",
+ "REDIS_PASSWORD = os.getenv(\"REDIS_PASSWORD\", \"\") # ex: \"1TNxTEdYRDgIDKM2gDfasupCADXXXX\"\n",
+ "\n",
+ "# If SSL is enabled on the endpoint, use rediss:// as the URL prefix\n",
+ "REDIS_URL = f\"redis://:{REDIS_PASSWORD}@{REDIS_HOST}:{REDIS_PORT}\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "aRqr7Um3y4oP"
+ },
+ "source": [
+ "## Prepare The Dataset"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "naSiAmZBy4oP"
+ },
+ "source": [
+ "Start by downloading the movies data and doing a quick inspection of it."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 293
},
+ "id": "vVyYhgoly4oP",
+ "outputId": "51bfe86a-95fd-416c-a629-ab43cda9531d"
+ },
+ "outputs": [
{
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 53
- },
- "id": "ha6fiptly4oQ",
- "outputId": "db080921-c6ee-4b79-cf26-094409916ca2"
+ "data": {
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "summary": "{\n \"name\": \"df\",\n \"rows\": 23922,\n \"fields\": [\n {\n \"column\": \"title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 23922,\n \"samples\": [\n \"The Graduate\",\n \"Ayngaran\",\n \"Acting Ka Bhoot\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"runtime\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1526,\n \"samples\": [\n \"\\u20b93,500,000,000 (estimated)\",\n \"57 minutes\",\n \"$21,471,047\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"rating\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.9521543600532218,\n \"min\": 0.0,\n \"max\": 9.9,\n \"num_unique_values\": 91,\n \"samples\": [\n 4.6,\n 0.0,\n 2.1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"rating_count\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 107222,\n \"min\": 0,\n \"max\": 2600000,\n \"num_unique_values\": 1681,\n \"samples\": [\n 783000,\n 959,\n 3100\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"genres\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 741,\n \"samples\": [\n \"['Adventure', 'Comedy', 'Romance']\",\n \"['Adventure', 'Comedy', 'Film-Noir']\",\n \"['Adventure', 'Comedy', 'History']\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"overview\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 23485,\n \"samples\": [\n \"A young cavalry doctor, against orders, treats very sick Indians who are forced to stay on unhealthy land, which could lead to a war.\",\n \"An ex-policeman/school janitor (Billy Blanks) shows a new student (Kenn Scott) how to defend himself from a martial-arts bully.\",\n \"A socially-criticized, financially-cornered girl becomes an outlaw to dodge the situation.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"keywords\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 21132,\n \"samples\": [\n \"['dream', 'husband wife relationship', 'african american', 'uncle nephew relationship', 'teenage boy', 'teen angst', 'cynicism', 'midlife crisis', 'unrequited love', 'regret']\",\n \"['bare chested male', 'lion wrestling', 'man lion relationship', 'male underwear', 'briefs', 'blood', 'experiment', 'human animal relationship', 'home invasion', 'jungle']\",\n \"['thailand', 'evil child', 'tsunami', 'jungle', 'island', 'burma', 'boat', 'disembowelment', 'feral child', 'rape']\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"director\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 11405,\n \"samples\": [\n \"Franco Rossi\",\n \"Jamil Dehlavi\",\n \"Andrea Berloff\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"cast\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 23736,\n \"samples\": [\n \"['Leo McCarey', 'Mildred Cram', 'Cary Grant', 'Deborah Kerr', 'Richard Denning']\",\n \"['K\\u00f4sei Amano', 'Nozomi Band\\u00f4', 'Shigeaki Kubo', 'Shintar\\u00f4 Akiyama', 'K\\u00f4sei Amano']\",\n \"['Robert Sabaroff', 'Jim Brown', 'Diahann Carroll', 'Ernest Borgnine', 'Gordon Flemyng']\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"writer\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 15276,\n \"samples\": [\n \"Cris Loveless\",\n \"Anand Gandhi\",\n \"Mike Flanagan\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"year\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 134,\n \"samples\": [\n \"(XXXIII)\",\n \"1975\",\n \"2013\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"path\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 23922,\n \"samples\": [\n \"/title/tt0061722/\",\n \"/title/tt7023644/\",\n \"/title/tt17320574/\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
+ "type": "dataframe",
+ "variable_name": "df"
},
- "outputs": [
- {
- "data": {
- "application/vnd.google.colaboratory.intrinsic+json": {
- "type": "string"
- },
- "text/plain": [
- "'The Story of the Kelly Gang. Story of Ned Kelly, an infamous 19th-century Australian outlaw. ned kelly, australia, historic figure, australian western, first of its kind, directorial debut, australian history, 19th century, victoria australia, australian'"
- ]
- },
- "execution_count": 6,
- "metadata": {},
- "output_type": "execute_result"
- }
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " title \n",
+ " runtime \n",
+ " rating \n",
+ " rating_count \n",
+ " genres \n",
+ " overview \n",
+ " keywords \n",
+ " director \n",
+ " cast \n",
+ " writer \n",
+ " year \n",
+ " path \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " The Story of the Kelly Gang \n",
+ " 1 hour 10 minutes \n",
+ " 6.0 \n",
+ " 772 \n",
+ " ['Action', 'Adventure', 'Biography'] \n",
+ " Story of Ned Kelly, an infamous 19th-century A... \n",
+ " ['ned kelly', 'australia', 'historic figure', ... \n",
+ " Charles Tait \n",
+ " ['Elizabeth Tait', 'John Tait', 'Nicholas Brie... \n",
+ " Charles Tait \n",
+ " 1906 \n",
+ " /title/tt0000574/ \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " Fantômas - À l'ombre de la guillotine \n",
+ " not-released \n",
+ " 6.9 \n",
+ " 2300 \n",
+ " ['Crime', 'Drama'] \n",
+ " Inspector Juve is tasked to investigate and ca... \n",
+ " ['silent film', 'france', 'hotel', 'duchess', ... \n",
+ " Louis Feuillade \n",
+ " ['Louis Feuillade', 'Pierre Souvestre', 'René ... \n",
+ " Marcel Allain \n",
+ " 1913 \n",
+ " /title/tt0002844/ \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " Cabiria \n",
+ " 2 hours 28 minutes \n",
+ " 7.1 \n",
+ " 3500 \n",
+ " ['Adventure', 'Drama', 'History'] \n",
+ " Cabiria is a Roman child when her home is dest... \n",
+ " ['carthage', 'slave', 'moloch', '3rd century b... \n",
+ " Giovanni Pastrone \n",
+ " ['Titus Livius', 'Giovanni Pastrone', 'Italia ... \n",
+ " Gabriele D'Annunzio \n",
+ " 1914 \n",
+ " /title/tt0003740/ \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " The Life of General Villa \n",
+ " not-released \n",
+ " 6.7 \n",
+ " 65 \n",
+ " ['Action', 'Adventure', 'Biography'] \n",
+ " The life and career of Panccho Villa from youn... \n",
+ " ['chihuahua mexico', 'chihuahua', 'sonora mexi... \n",
+ " Christy Cabanne \n",
+ " ['Frank E. Woods', 'Raoul Walsh', 'Eagle Eye',... \n",
+ " Raoul Walsh \n",
+ " 1914 \n",
+ " /title/tt0004223/ \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " The Patchwork Girl of Oz \n",
+ " not-released \n",
+ " 5.4 \n",
+ " 484 \n",
+ " ['Adventure', 'Family', 'Fantasy'] \n",
+ " Ojo and Unc Nunkie are out of food, so they de... \n",
+ " ['silent film', 'journey', 'magic wand', 'wiza... \n",
+ " J. Farrell MacDonald \n",
+ " ['Violet MacMillan', 'Frank Moore', 'Raymond R... \n",
+ " L. Frank Baum \n",
+ " 1914 \n",
+ " /title/tt0004457/ \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n"
],
- "source": [
- "# add a column to the dataframe with all the text we want to embed\n",
- "df[\"full_text\"] = df[\"title\"] + \". \" + df[\"overview\"] + \" \" + df['keywords'].apply(lambda x: ', '.join(x))\n",
- "df[\"full_text\"][0]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "cT-RsO5Uy4oQ"
- },
- "outputs": [],
- "source": [
- "# NBVAL_SKIP\n",
- "# # this step will take a while, but only needs to be done once for your entire dataset\n",
- "# currently taking 10 minutes to run, so we've gone ahead and saved the vectors to a file for you\n",
- "# if you don't want to wait, you can skip the cell and load the vectors from the file in the next cell\n",
- "from redisvl.utils.vectorize import HFTextVectorizer\n",
- "\n",
- "vectorizer = HFTextVectorizer(model='sentence-transformers/paraphrase-MiniLM-L6-v2')\n",
- "\n",
- "df['embedding'] = df['full_text'].apply(lambda x: vectorizer.embed(x, as_buffer=False))\n",
- "pickle.dump(df['embedding'], open('datasets/content_filtering/text_embeddings.pkl', 'wb'))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {
- "id": "Dyxs5dyWy4oQ"
- },
- "outputs": [],
- "source": [
- "try:\n",
- " with open('datasets/content_filtering/text_embeddings.pkl', 'rb') as vector_file:\n",
- " df['embedding'] = pickle.load(vector_file)\n",
- "except:\n",
- " embeddings_url = 'https://redis-ai-resources.s3.us-east-2.amazonaws.com/recommenders/datasets/content-filtering/text_embeddings.pkl'\n",
- " r = requests.get(embeddings_url)\n",
- " with open('./datasets/content_filtering/text_embeddings.pkl', 'wb') as f:\n",
- " f.write(r.content)\n",
- " with open('datasets/content_filtering/text_embeddings.pkl', 'rb') as vector_file:\n",
- " df['embedding'] = pickle.load(vector_file)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "Fvc8MxVxy4oQ"
- },
- "source": [
- "## Define our Search Schema\n",
- "Our data is now ready to be loaded into Redis. The last step is to define our search index schema that specifies each of our data fields and the size and type of our embedding vectors.\n",
- "\n",
- "We'll load this from the accompanying `content_filtering_schema.yaml` file."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "xIyHzviuy4oQ"
- },
- "source": [
- "This schema defines what each entry will look like within Redis. It will need to specify the name of each field, like `title`, `rating`, and `rating-count`, as well as the type of each field, like `text` or `numeric`.\n",
- "\n",
- "The vector component of each entry similarly needs its dimension (dims), distance metric, algorithm and datatype (dtype) attributes specified."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {
- "id": "fzfELmSjy4oR"
- },
- "outputs": [],
- "source": [
- "from redis import Redis\n",
- "from redisvl.schema import IndexSchema\n",
- "from redisvl.index import SearchIndex\n",
- "\n",
- "# define a redis client\n",
- "client = Redis.from_url(REDIS_URL)\n",
- "\n",
- "# define our movie schema\n",
- "movie_schema = IndexSchema.from_dict(\n",
- " {\n",
- " 'index': {\n",
- " 'name': 'movies_recommendation',\n",
- " 'prefix': 'movie',\n",
- " 'storage_type': 'json'\n",
- " },\n",
- " 'fields': [\n",
- " {'name': 'title', 'type': 'text'},\n",
- " {'name': 'rating', 'type': 'numeric'},\n",
- " {'name': 'rating_count', 'type': 'numeric'},\n",
- " {'name': 'genres', 'type': 'tag'},\n",
- " {'name': 'overview', 'type': 'text'},\n",
- " {'name': 'keywords', 'type': 'tag'},\n",
- " {'name': 'cast', 'type': 'tag'},\n",
- " {'name': 'writer', 'type': 'text'},\n",
- " {'name': 'year', 'type': 'numeric'},\n",
- " {'name': 'full_text', 'type': 'text'},\n",
- " {\n",
- " 'name': 'embedding',\n",
- " 'type': 'vector',\n",
- " 'attrs': {\n",
- " 'dims': 384,\n",
- " 'algorithm': 'flat',\n",
- " 'datatype': 'float32',\n",
- " 'distance_metric': 'cosine'\n",
- " }\n",
- " }\n",
- " ]\n",
- "})\n",
- "\n",
- "index = SearchIndex(movie_schema, redis_client=client)\n",
- "index.create(overwrite=True, drop=True)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "L9-aPwzby4oR"
- },
- "source": [
- "## Load products into vector DB\n",
- "Now that we have all our data cleaned and a defined schema we can load the data into RedisVL.\n",
- "\n",
- "We need to convert this data into a format that RedisVL can understand, which is a list of dictionaries.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {
- "id": "Z45nA5Zoy4oR"
- },
- "outputs": [],
- "source": [
- "data = df.to_dict(orient='records')\n",
- "keys = index.load(data)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "IL8n0CxAy4oR"
- },
- "source": [
- "## Querying to get recommendations\n",
- "\n",
- "We now have a working content filtering recommender system, all we need a starting point, so let's say we want to find movies similar to the movie with the title \"20,000 Leagues Under the Sea\"\n",
- "\n",
- "We can use the title to find the movie in the dataset and then use the vector to find similar movies."
+ "text/plain": [
+ " title runtime rating \\\n",
+ "0 The Story of the Kelly Gang 1 hour 10 minutes 6.0 \n",
+ "1 Fantômas - À l'ombre de la guillotine not-released 6.9 \n",
+ "2 Cabiria 2 hours 28 minutes 7.1 \n",
+ "3 The Life of General Villa not-released 6.7 \n",
+ "4 The Patchwork Girl of Oz not-released 5.4 \n",
+ "\n",
+ " rating_count genres \\\n",
+ "0 772 ['Action', 'Adventure', 'Biography'] \n",
+ "1 2300 ['Crime', 'Drama'] \n",
+ "2 3500 ['Adventure', 'Drama', 'History'] \n",
+ "3 65 ['Action', 'Adventure', 'Biography'] \n",
+ "4 484 ['Adventure', 'Family', 'Fantasy'] \n",
+ "\n",
+ " overview \\\n",
+ "0 Story of Ned Kelly, an infamous 19th-century A... \n",
+ "1 Inspector Juve is tasked to investigate and ca... \n",
+ "2 Cabiria is a Roman child when her home is dest... \n",
+ "3 The life and career of Panccho Villa from youn... \n",
+ "4 Ojo and Unc Nunkie are out of food, so they de... \n",
+ "\n",
+ " keywords director \\\n",
+ "0 ['ned kelly', 'australia', 'historic figure', ... Charles Tait \n",
+ "1 ['silent film', 'france', 'hotel', 'duchess', ... Louis Feuillade \n",
+ "2 ['carthage', 'slave', 'moloch', '3rd century b... Giovanni Pastrone \n",
+ "3 ['chihuahua mexico', 'chihuahua', 'sonora mexi... Christy Cabanne \n",
+ "4 ['silent film', 'journey', 'magic wand', 'wiza... J. Farrell MacDonald \n",
+ "\n",
+ " cast writer \\\n",
+ "0 ['Elizabeth Tait', 'John Tait', 'Nicholas Brie... Charles Tait \n",
+ "1 ['Louis Feuillade', 'Pierre Souvestre', 'René ... Marcel Allain \n",
+ "2 ['Titus Livius', 'Giovanni Pastrone', 'Italia ... Gabriele D'Annunzio \n",
+ "3 ['Frank E. Woods', 'Raoul Walsh', 'Eagle Eye',... Raoul Walsh \n",
+ "4 ['Violet MacMillan', 'Frank Moore', 'Raymond R... L. Frank Baum \n",
+ "\n",
+ " year path \n",
+ "0 1906 /title/tt0000574/ \n",
+ "1 1913 /title/tt0002844/ \n",
+ "2 1914 /title/tt0003740/ \n",
+ "3 1914 /title/tt0004223/ \n",
+ "4 1914 /title/tt0004457/ "
]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "try:\n",
+ " df = pd.read_csv(\"datasets/content_filtering/25k_imdb_movie_dataset.csv\")\n",
+ "except:\n",
+ " import requests\n",
+ " # download the file\n",
+ " url = 'https://redis-ai-resources.s3.us-east-2.amazonaws.com/recommenders/datasets/content-filtering/25k_imdb_movie_dataset.csv'\n",
+ " r = requests.get(url)\n",
+ "\n",
+ " #save the file as a csv\n",
+ " if not os.path.exists('./datasets/content_filtering'):\n",
+ " os.makedirs('./datasets/content_filtering')\n",
+ " with open('./datasets/content_filtering/25k_imdb_movie_dataset.csv', 'wb') as f:\n",
+ " f.write(r.content)\n",
+ " df = pd.read_csv(\"datasets/content_filtering/25k_imdb_movie_dataset.csv\")\n",
+ "\n",
+ "df.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "EwLWwLBSy4oQ"
+ },
+ "source": [
+ "As with any machine learning task, the first step is to clean our data.\n",
+ "\n",
+ "We'll drop some columns that we don't plan to use, and fill missing values with some reasonable defaults.\n",
+ "\n",
+ "Lastly, we'll do a quick check to make sure we've filled in all the null and missing values."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 366
},
+ "id": "3MGGS677y4oQ",
+ "outputId": "34db9d84-4557-49ca-f227-24e0c95e6268"
+ },
+ "outputs": [
{
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "8tmwZ9fUy4oR",
- "outputId": "8624ae3c-9384-42fd-f8c8-e87f959c2bba"
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "{'id': 'movie:345589922cb348a098930568d5e7d02a', 'vector_distance': '0.584869861603', 'title': 'The Odyssey', 'overview': 'The aquatic adventure of the highly influential and fearlessly ambitious pioneer, innovator, filmmaker, researcher, and conservationist, Jacques-Yves Cousteau, covers roughly thirty years of an inarguably rich in achievements life.'}\n",
- "{'id': 'movie:5147986e894d43879f4d90d6ed85dfd0', 'vector_distance': '0.633292078972', 'title': 'The Inventor', 'overview': 'Inventing flying contraptions, war machines and studying cadavers, Leonardo da Vinci tackles the meaning of life itself with the help of French princess Marguerite de Nevarre.'}\n",
- "{'id': 'movie:da53156795ab4026b51e9dde88b02fa6', 'vector_distance': '0.658123493195', 'title': 'Ruin', 'overview': 'The film follows a nameless ex-Nazi captain who navigates the ruins of post-WWII Germany determined to atone for his crimes during the war by hunting down the surviving members of his former SS Death Squad.'}\n",
- "{'id': 'movie:3e14e33c09944a70810aa7e24a2f78ef', 'vector_distance': '0.688094377518', 'title': 'The Raven', 'overview': 'A man with incredible powers is sought by the government and military.'}\n",
- "{'id': 'movie:2a4c39f73e6b49e8b32ea1ce456e5833', 'vector_distance': '0.694671332836', 'title': 'Get the Girl', 'overview': 'Sebastain \"Bash\" Danye, a legendary gun for hire hangs up his weapon to retire peacefully with his \\'it\\'s complicated\\' partner Renee. Their quiet lives are soon interrupted when they find an unconscious woman on their property, Maddie. While nursing her back to health, some bad me... Read all'}\n"
- ]
- }
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " title \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " rating \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " rating_count \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " genres \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " overview \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " keywords \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " director \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " cast \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " year \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
dtype: int64 "
],
- "source": [
- "from redisvl.query import RangeQuery\n",
- "\n",
- "query_vector = df[df['title'] == '20,000 Leagues Under the Sea']['embedding'].values[0] # one good match\n",
- "\n",
- "query = RangeQuery(\n",
- " vector=query_vector,\n",
- " vector_field_name='embedding',\n",
- " num_results=5,\n",
- " distance_threshold=0.7,\n",
- " return_fields=['title', 'overview', 'vector_distance']\n",
- ")\n",
- "\n",
- "results = index.query(query)\n",
- "for r in results:\n",
- " print(r)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "pe6YzwT4y4oR"
- },
- "source": [
- "## Generating user recommendations\n",
- "This systems works, but we can make it even better.\n",
- "\n",
- "Production recommender systems often have fields that can be configured. Users can specify if they want to see a romantic comedy or a horror film, or only see new releases.\n",
- "\n",
- "Let's go ahead and add this functionality by using the tags we've defined in our schema."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {
- "id": "wcRNJ4evy4oR"
- },
- "outputs": [],
- "source": [
- "from redisvl.query.filter import Tag, Num, Text\n",
- "\n",
- "def make_filter(genres=None, release_year=None, keywords=None):\n",
- " flexible_filter = (\n",
- " (Num(\"year\") > release_year) & # only show movies released after this year\n",
- " (Tag(\"genres\") == genres) & # only show movies that match at least one in list of genres\n",
- " (Text(\"full_text\") % keywords) # only show movies that contain at least one of the keywords\n",
- " )\n",
- " return flexible_filter\n",
- "\n",
- "def get_recommendations(movie_vector, num_results=5, distance=0.6, filter=None):\n",
- " query = RangeQuery(\n",
- " vector=movie_vector,\n",
- " vector_field_name='embedding',\n",
- " num_results=num_results,\n",
- " distance_threshold=distance,\n",
- " return_fields=['title', 'overview', 'genres'],\n",
- " filter_expression=filter,\n",
- " )\n",
- "\n",
- " recommendations = index.query(query)\n",
- " return recommendations"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "ulR_eyqCy4oR"
- },
- "source": [
- "As a final demonstration we'll find movies similar to the classic horror film 'Nosferatu'.\n",
- "The process has 3 steps:\n",
- "- fetch the vector embedding of our film Nosferatu\n",
- "- optionally define any hard filters we want. Here we'll specify we want horror movies made on or after 1990\n",
- "- perform the vector range query to find similar movies that meet our filter criteria"
+ "text/plain": [
+ "title 0\n",
+ "rating 0\n",
+ "rating_count 0\n",
+ "genres 0\n",
+ "overview 0\n",
+ "keywords 0\n",
+ "director 0\n",
+ "cast 0\n",
+ "year 0\n",
+ "dtype: int64"
]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "roman_numerals = ['(I)','(II)','(III)','(IV)', '(V)', '(VI)', '(VII)', '(VIII)', '(IX)', '(XI)', '(XII)', '(XVI)', '(XIV)', '(XXXIII)', '(XVIII)', '(XIX)', '(XXVII)']\n",
+ "\n",
+ "def replace_year(x):\n",
+ " if x in roman_numerals:\n",
+ " return 1998 # the average year of the dataset\n",
+ " else:\n",
+ " return x\n",
+ "\n",
+ "df.drop(columns=['runtime', 'writer', 'path'], inplace=True)\n",
+ "df['year'] = df['year'].apply(replace_year) # replace roman numerals with average year\n",
+ "df['genres'] = df['genres'].apply(ast.literal_eval) # convert string representation of list to list\n",
+ "df['keywords'] = df['keywords'].apply(ast.literal_eval) # convert string representation of list to list\n",
+ "df['cast'] = df['cast'].apply(ast.literal_eval) # convert string representation of list to list\n",
+ "df = df[~df['overview'].isnull()] # drop rows with missing overviews\n",
+ "df = df[~df['overview'].isin(['none'])] # drop rows with 'none' as the overview\n",
+ "\n",
+ "# make sure we've filled all missing values\n",
+ "df.isnull().sum()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "wvP1wPsky4oQ"
+ },
+ "source": [
+ "## Generate Vector Embeddings"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "cvrNi2mEy4oQ"
+ },
+ "source": [
+ "Since we movie similarity as semantic similarity of movie descriptions we need a way to generate semantic vector embeddings of these descriptions.\n",
+ "\n",
+ "RedisVL supports many different embedding generators. For this example we'll use a HuggingFace model that is rated well for semantic similarity use cases.\n",
+ "\n",
+ "RedisVL also supports complex query logic, beyond just vector similarity. To showcase this we'll generate an embedding from each movies' `overview` text and list of `plot keywords`,\n",
+ "and use the remaining fields like, `genres`, `year`, and `rating` as filterable fields to target our vector queries to.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 53
},
+ "id": "ha6fiptly4oQ",
+ "outputId": "db080921-c6ee-4b79-cf26-094409916ca2"
+ },
+ "outputs": [
{
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "TOb-p4p3y4oR",
- "outputId": "e20dd31d-31fe-4dfc-e586-2e62f8e097b2"
+ "data": {
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "string"
},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "- Wolfman:\n",
- "\t A man becomes afflicted by an ancient curse after he is bitten by a werewolf.\n",
- "\t Genres: [\"Horror\"]\n",
- "- Off Season:\n",
- "\t Tenn's relentless search for his father takes him back to his childhood town only to find a community gripped by fear. As he travels deeper into the bitter winter wilderness of the town he uncovers a dreadful secret buried long ago.\n",
- "\t Genres: [\"Horror\",\"Mystery\",\"Thriller\"]\n",
- "- Pieces:\n",
- "\t The co-eds of a Boston college campus are targeted by a mysterious killer who is creating a human jigsaw puzzle from their body parts.\n",
- "\t Genres: [\"Horror\",\"Mystery\",\"Thriller\"]\n",
- "- Cursed:\n",
- "\t A prominent psychiatrist at a state run hospital wrestles with madness and a dark supernatural force as he and a female police detective race to stop an escaped patient from butchering five people held hostage in a remote mansion.\n",
- "\t Genres: [\"Horror\",\"Thriller\"]\n",
- "- The Home:\n",
- "\t The Home unfolds after a young man is nearly killed during an accident that leaves him physically and emotionally scarred. To recuperate, he is taken to a secluded nursing home where the elderly residents appear to be suffering from delusions. But after witnessing a violent attac... Read all\n",
- "\t Genres: [\"Action\",\"Fantasy\",\"Horror\"]\n"
- ]
- }
- ],
- "source": [
- "movie_vector = df[df['title'] == 'Nosferatu']['embedding'].values[0]\n",
- "\n",
- "filter = make_filter(genres=['Horror'], release_year=1990)\n",
- "\n",
- "recs = get_recommendations(movie_vector, distance=0.8, filter=filter)\n",
- "\n",
- "for rec in recs:\n",
- " print(f\"- {rec['title']}:\\n\\t {rec['overview']}\\n\\t Genres: {rec['genres']}\")"
+ "text/plain": [
+ "'The Story of the Kelly Gang. Story of Ned Kelly, an infamous 19th-century Australian outlaw. ned kelly, australia, historic figure, australian western, first of its kind, directorial debut, australian history, 19th century, victoria australia, australian'"
]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# add a column to the dataframe with all the text we want to embed\n",
+ "df[\"full_text\"] = df[\"title\"] + \". \" + df[\"overview\"] + \" \" + df['keywords'].apply(lambda x: ', '.join(x))\n",
+ "df[\"full_text\"][0]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "cT-RsO5Uy4oQ"
+ },
+ "outputs": [],
+ "source": [
+ "# NBVAL_SKIP\n",
+ "# # this step will take a while, but only needs to be done once for your entire dataset\n",
+ "# currently taking 10 minutes to run, so we've gone ahead and saved the vectors to a file for you\n",
+ "# if you don't want to wait, you can skip the cell and load the vectors from the file in the next cell\n",
+ "from redisvl.utils.vectorize import HFTextVectorizer\n",
+ "\n",
+ "vectorizer = HFTextVectorizer(model='sentence-transformers/paraphrase-MiniLM-L6-v2')\n",
+ "\n",
+ "df['embedding'] = df['full_text'].apply(lambda x: vectorizer.embed(x, as_buffer=False))\n",
+ "pickle.dump(df['embedding'], open('datasets/content_filtering/text_embeddings.pkl', 'wb'))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "id": "Dyxs5dyWy4oQ"
+ },
+ "outputs": [],
+ "source": [
+ "try:\n",
+ " with open('datasets/content_filtering/text_embeddings.pkl', 'rb') as vector_file:\n",
+ " df['embedding'] = pickle.load(vector_file)\n",
+ "except:\n",
+ " embeddings_url = 'https://redis-ai-resources.s3.us-east-2.amazonaws.com/recommenders/datasets/content-filtering/text_embeddings.pkl'\n",
+ " r = requests.get(embeddings_url)\n",
+ " with open('./datasets/content_filtering/text_embeddings.pkl', 'wb') as f:\n",
+ " f.write(r.content)\n",
+ " with open('datasets/content_filtering/text_embeddings.pkl', 'rb') as vector_file:\n",
+ " df['embedding'] = pickle.load(vector_file)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "Fvc8MxVxy4oQ"
+ },
+ "source": [
+ "## Define our Search Schema\n",
+ "Our data is now ready to be loaded into Redis. The last step is to define our search index schema that specifies each of our data fields and the size and type of our embedding vectors.\n",
+ "\n",
+ "We'll load this from the accompanying `content_filtering_schema.yaml` file."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "xIyHzviuy4oQ"
+ },
+ "source": [
+ "This schema defines what each entry will look like within Redis. It will need to specify the name of each field, like `title`, `rating`, and `rating-count`, as well as the type of each field, like `text` or `numeric`.\n",
+ "\n",
+ "The vector component of each entry similarly needs its dimension (dims), distance metric, algorithm and datatype (dtype) attributes specified."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "id": "fzfELmSjy4oR"
+ },
+ "outputs": [],
+ "source": [
+ "from redis import Redis\n",
+ "from redisvl.schema import IndexSchema\n",
+ "from redisvl.index import SearchIndex\n",
+ "\n",
+ "# define a redis client\n",
+ "client = Redis.from_url(REDIS_URL)\n",
+ "\n",
+ "# define our movie schema\n",
+ "movie_schema = IndexSchema.from_dict(\n",
+ " {\n",
+ " 'index': {\n",
+ " 'name': 'movies_recommendation',\n",
+ " 'prefix': 'movie',\n",
+ " 'storage_type': 'json'\n",
+ " },\n",
+ " 'fields': [\n",
+ " {'name': 'title', 'type': 'text'},\n",
+ " {'name': 'rating', 'type': 'numeric'},\n",
+ " {'name': 'rating_count', 'type': 'numeric'},\n",
+ " {'name': 'genres', 'type': 'tag'},\n",
+ " {'name': 'overview', 'type': 'text'},\n",
+ " {'name': 'keywords', 'type': 'tag'},\n",
+ " {'name': 'cast', 'type': 'tag'},\n",
+ " {'name': 'writer', 'type': 'text'},\n",
+ " {'name': 'year', 'type': 'numeric'},\n",
+ " {'name': 'full_text', 'type': 'text'},\n",
+ " {\n",
+ " 'name': 'embedding',\n",
+ " 'type': 'vector',\n",
+ " 'attrs': {\n",
+ " 'dims': 384,\n",
+ " 'algorithm': 'flat',\n",
+ " 'datatype': 'float32',\n",
+ " 'distance_metric': 'cosine'\n",
+ " }\n",
+ " }\n",
+ " ]\n",
+ "})\n",
+ "\n",
+ "index = SearchIndex(movie_schema, redis_client=client)\n",
+ "index.create(overwrite=True, drop=True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "L9-aPwzby4oR"
+ },
+ "source": [
+ "## Load products into vector DB\n",
+ "Now that we have all our data cleaned and a defined schema we can load the data into RedisVL.\n",
+ "\n",
+ "We need to convert this data into a format that RedisVL can understand, which is a list of dictionaries.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "id": "Z45nA5Zoy4oR"
+ },
+ "outputs": [],
+ "source": [
+ "data = df.to_dict(orient='records')\n",
+ "keys = index.load(data)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "IL8n0CxAy4oR"
+ },
+ "source": [
+ "## Querying to get recommendations\n",
+ "\n",
+ "We now have a working content filtering recommender system, all we need a starting point, so let's say we want to find movies similar to the movie with the title \"20,000 Leagues Under the Sea\"\n",
+ "\n",
+ "We can use the title to find the movie in the dataset and then use the vector to find similar movies."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
},
+ "id": "8tmwZ9fUy4oR",
+ "outputId": "8624ae3c-9384-42fd-f8c8-e87f959c2bba"
+ },
+ "outputs": [
{
- "cell_type": "markdown",
- "metadata": {
- "id": "FVQYQ26Sy4oR"
- },
- "source": [
- "### Now you have a working content filtering recommender system with Redis.\n",
- "Don't forget to clean up once you're done."
- ]
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'id': 'movie:345589922cb348a098930568d5e7d02a', 'vector_distance': '0.584869861603', 'title': 'The Odyssey', 'overview': 'The aquatic adventure of the highly influential and fearlessly ambitious pioneer, innovator, filmmaker, researcher, and conservationist, Jacques-Yves Cousteau, covers roughly thirty years of an inarguably rich in achievements life.'}\n",
+ "{'id': 'movie:5147986e894d43879f4d90d6ed85dfd0', 'vector_distance': '0.633292078972', 'title': 'The Inventor', 'overview': 'Inventing flying contraptions, war machines and studying cadavers, Leonardo da Vinci tackles the meaning of life itself with the help of French princess Marguerite de Nevarre.'}\n",
+ "{'id': 'movie:da53156795ab4026b51e9dde88b02fa6', 'vector_distance': '0.658123493195', 'title': 'Ruin', 'overview': 'The film follows a nameless ex-Nazi captain who navigates the ruins of post-WWII Germany determined to atone for his crimes during the war by hunting down the surviving members of his former SS Death Squad.'}\n",
+ "{'id': 'movie:3e14e33c09944a70810aa7e24a2f78ef', 'vector_distance': '0.688094377518', 'title': 'The Raven', 'overview': 'A man with incredible powers is sought by the government and military.'}\n",
+ "{'id': 'movie:2a4c39f73e6b49e8b32ea1ce456e5833', 'vector_distance': '0.694671332836', 'title': 'Get the Girl', 'overview': 'Sebastain \"Bash\" Danye, a legendary gun for hire hangs up his weapon to retire peacefully with his \\'it\\'s complicated\\' partner Renee. Their quiet lives are soon interrupted when they find an unconscious woman on their property, Maddie. While nursing her back to health, some bad me... Read all'}\n"
+ ]
+ }
+ ],
+ "source": [
+ "from redisvl.query import RangeQuery\n",
+ "\n",
+ "query_vector = df[df['title'] == '20,000 Leagues Under the Sea']['embedding'].values[0] # one good match\n",
+ "\n",
+ "query = RangeQuery(\n",
+ " vector=query_vector,\n",
+ " vector_field_name='embedding',\n",
+ " num_results=5,\n",
+ " distance_threshold=0.7,\n",
+ " return_fields=['title', 'overview', 'vector_distance']\n",
+ ")\n",
+ "\n",
+ "results = index.query(query)\n",
+ "for r in results:\n",
+ " print(r)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "pe6YzwT4y4oR"
+ },
+ "source": [
+ "## Generating user recommendations\n",
+ "This systems works, but we can make it even better.\n",
+ "\n",
+ "Production recommender systems often have fields that can be configured. Users can specify if they want to see a romantic comedy or a horror film, or only see new releases.\n",
+ "\n",
+ "Let's go ahead and add this functionality by using the tags we've defined in our schema."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "id": "wcRNJ4evy4oR"
+ },
+ "outputs": [],
+ "source": [
+ "from redisvl.query.filter import Tag, Num, Text\n",
+ "\n",
+ "def make_filter(genres=None, release_year=None, keywords=None):\n",
+ " flexible_filter = (\n",
+ " (Num(\"year\") > release_year) & # only show movies released after this year\n",
+ " (Tag(\"genres\") == genres) & # only show movies that match at least one in list of genres\n",
+ " (Text(\"full_text\") % keywords) # only show movies that contain at least one of the keywords\n",
+ " )\n",
+ " return flexible_filter\n",
+ "\n",
+ "def get_recommendations(movie_vector, num_results=5, distance=0.6, filter=None):\n",
+ " query = RangeQuery(\n",
+ " vector=movie_vector,\n",
+ " vector_field_name='embedding',\n",
+ " num_results=num_results,\n",
+ " distance_threshold=distance,\n",
+ " return_fields=['title', 'overview', 'genres'],\n",
+ " filter_expression=filter,\n",
+ " )\n",
+ "\n",
+ " recommendations = index.query(query)\n",
+ " return recommendations"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "ulR_eyqCy4oR"
+ },
+ "source": [
+ "As a final demonstration we'll find movies similar to the classic horror film 'Nosferatu'.\n",
+ "The process has 3 steps:\n",
+ "- fetch the vector embedding of our film Nosferatu\n",
+ "- optionally define any hard filters we want. Here we'll specify we want horror movies made on or after 1990\n",
+ "- perform the vector range query to find similar movies that meet our filter criteria"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
},
+ "id": "TOb-p4p3y4oR",
+ "outputId": "e20dd31d-31fe-4dfc-e586-2e62f8e097b2"
+ },
+ "outputs": [
{
- "cell_type": "code",
- "execution_count": 13,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "Iv-SSFgUy4oR",
- "outputId": "33bb43f1-60e5-4d22-a283-2e2f7a87a612"
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Deleted 143 keys\n"
- ]
- }
- ],
- "source": [
- "# clean up your index\n",
- "while remaining := index.clear():\n",
- " print(f\"Deleted {remaining} keys\")"
- ]
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "- Wolfman:\n",
+ "\t A man becomes afflicted by an ancient curse after he is bitten by a werewolf.\n",
+ "\t Genres: [\"Horror\"]\n",
+ "- Off Season:\n",
+ "\t Tenn's relentless search for his father takes him back to his childhood town only to find a community gripped by fear. As he travels deeper into the bitter winter wilderness of the town he uncovers a dreadful secret buried long ago.\n",
+ "\t Genres: [\"Horror\",\"Mystery\",\"Thriller\"]\n",
+ "- Pieces:\n",
+ "\t The co-eds of a Boston college campus are targeted by a mysterious killer who is creating a human jigsaw puzzle from their body parts.\n",
+ "\t Genres: [\"Horror\",\"Mystery\",\"Thriller\"]\n",
+ "- Cursed:\n",
+ "\t A prominent psychiatrist at a state run hospital wrestles with madness and a dark supernatural force as he and a female police detective race to stop an escaped patient from butchering five people held hostage in a remote mansion.\n",
+ "\t Genres: [\"Horror\",\"Thriller\"]\n",
+ "- The Home:\n",
+ "\t The Home unfolds after a young man is nearly killed during an accident that leaves him physically and emotionally scarred. To recuperate, he is taken to a secluded nursing home where the elderly residents appear to be suffering from delusions. But after witnessing a violent attac... Read all\n",
+ "\t Genres: [\"Action\",\"Fantasy\",\"Horror\"]\n"
+ ]
}
- ],
- "metadata": {
+ ],
+ "source": [
+ "movie_vector = df[df['title'] == 'Nosferatu']['embedding'].values[0]\n",
+ "\n",
+ "filter = make_filter(genres=['Horror'], release_year=1990)\n",
+ "\n",
+ "recs = get_recommendations(movie_vector, distance=0.8, filter=filter)\n",
+ "\n",
+ "for rec in recs:\n",
+ " print(f\"- {rec['title']}:\\n\\t {rec['overview']}\\n\\t Genres: {rec['genres']}\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "FVQYQ26Sy4oR"
+ },
+ "source": [
+ "### Now you have a working content filtering recommender system with Redis.\n",
+ "Don't forget to clean up once you're done."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
"colab": {
- "provenance": []
- },
- "kernelspec": {
- "display_name": "redis-ai-res",
- "language": "python",
- "name": "python3"
+ "base_uri": "https://localhost:8080/"
},
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.11.10"
+ "id": "Iv-SSFgUy4oR",
+ "outputId": "33bb43f1-60e5-4d22-a283-2e2f7a87a612"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Deleted 143 keys\n"
+ ]
}
+ ],
+ "source": [
+ "# clean up your index\n",
+ "while remaining := index.clear():\n",
+ " print(f\"Deleted {remaining} keys\")"
+ ]
+ }
+ ],
+ "metadata": {
+ "colab": {
+ "provenance": []
+ },
+ "kernelspec": {
+ "display_name": "redis-ai-res",
+ "language": "python",
+ "name": "python3"
},
- "nbformat": 4,
- "nbformat_minor": 0
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.10"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
}
diff --git a/python-recipes/recommendation-systems/01_collaborative_filtering.ipynb b/python-recipes/recommendation-systems/01_collaborative_filtering.ipynb
index c249a03..84165cb 100644
--- a/python-recipes/recommendation-systems/01_collaborative_filtering.ipynb
+++ b/python-recipes/recommendation-systems/01_collaborative_filtering.ipynb
@@ -25,24 +25,75 @@
"To generate our vectors we'll use the popular Python package [Surprise](https://surpriselib.com/)"
]
},
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Environment Setup"
+ ]
+ },
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.2\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
- "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"# NBVAL_SKIP\n",
- "!pip install scikit-surprise --quiet"
+ "!pip install -q scikit-surprise redis redisvl pandas"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Install Redis Stack\n",
+ "\n",
+ "Later in this tutorial, Redis will be used to store, index, and query vector\n",
+ "embeddings. **We need to make sure we have a Redis instance available.**"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### Redis in Colab\n",
+ "Use the shell script below to download, extract, and install [Redis Stack](https://redis.io/docs/getting-started/install-stack/) directly from the Redis package archive."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# NBVAL_SKIP\n",
+ "%%sh\n",
+ "curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg\n",
+ "echo \"deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main\" | sudo tee /etc/apt/sources.list.d/redis.list\n",
+ "sudo apt-get update > /dev/null 2>&1\n",
+ "sudo apt-get install redis-stack-server > /dev/null 2>&1\n",
+ "redis-stack-server --daemonize yes"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### Other ways to get Redis\n",
+ "There are many ways to get the necessary redis-stack instance running\n",
+ "1. On cloud, deploy a [FREE instance of Redis in the cloud](https://redis.io/try-free/). Or, if you have your\n",
+ "own version of Redis Enterprise running, that works too!\n",
+ "2. Per OS, [see the docs](https://redis.io/docs/latest/operate/oss_and_stack/install/install-stack/)\n",
+ "3. With docker: `docker run -d --name redis-stack-server -p 6379:6379 redis/redis-stack-server:latest`"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Define the Redis Connection URL\n",
+ "\n",
+ "By default this notebook connects to the local instance of Redis Stack. **If you have your own Redis Enterprise instance** - replace REDIS_PASSWORD, REDIS_HOST and REDIS_PORT values with your own."
]
},
{
diff --git a/python-recipes/recommendation-systems/02_two_towers.ipynb b/python-recipes/recommendation-systems/02_two_towers.ipynb
index 953f8a4..fb6a68e 100644
--- a/python-recipes/recommendation-systems/02_two_towers.ipynb
+++ b/python-recipes/recommendation-systems/02_two_towers.ipynb
@@ -21,9 +21,7 @@
"Next, we showcased how RedisVL can be used to build a [collaborative filtering recommender](collaborative_filtering.ipynb), which leverages users' ratings of items to create personalized recommendations. Before continuing with this notebook we encourage you to start with the previous two.\n",
"\n",
"In this notebook we'll demonstrate how to build a [two tower recommendation system](https://cloud.google.com/blog/products/ai-machine-learning/scaling-deep-retrieval-tensorflow-two-towers-architecture)\n",
- "and compare it to architectures we've seen before.\n",
- "\n",
- "Let's begin!"
+ "and compare it to architectures we've seen before."
]
},
{
@@ -33,6 +31,77 @@
"To mix things up a bit, instead of using our movies dataset like the previous two examples, we'll look at brick & mortar restaurants in San Francisco as our items to recommend."
]
},
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Environment Setup"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# NBVAL_SKIP\n",
+ "!pip install -q redis redisvl pandas torch"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Install Redis Stack\n",
+ "\n",
+ "Later in this tutorial, Redis will be used to store, index, and query vector\n",
+ "embeddings. **We need to make sure we have a Redis instance available.**"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### Redis in Colab\n",
+ "Use the shell script below to download, extract, and install [Redis Stack](https://redis.io/docs/getting-started/install-stack/) directly from the Redis package archive."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# NBVAL_SKIP\n",
+ "%%sh\n",
+ "curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg\n",
+ "echo \"deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main\" | sudo tee /etc/apt/sources.list.d/redis.list\n",
+ "sudo apt-get update > /dev/null 2>&1\n",
+ "sudo apt-get install redis-stack-server > /dev/null 2>&1\n",
+ "redis-stack-server --daemonize yes"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### Other ways to get Redis\n",
+ "There are many ways to get the necessary redis-stack instance running\n",
+ "1. On cloud, deploy a [FREE instance of Redis in the cloud](https://redis.io/try-free/). Or, if you have your\n",
+ "own version of Redis Enterprise running, that works too!\n",
+ "2. Per OS, [see the docs](https://redis.io/docs/latest/operate/oss_and_stack/install/install-stack/)\n",
+ "3. With docker: `docker run -d --name redis-stack-server -p 6379:6379 redis/redis-stack-server:latest`"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Define the Redis Connection URL\n",
+ "\n",
+ "By default this notebook connects to the local instance of Redis Stack. **If you have your own Redis Enterprise instance** - replace REDIS_PASSWORD, REDIS_HOST and REDIS_PORT values with your own."
+ ]
+ },
{
"cell_type": "code",
"execution_count": 1,
@@ -399,7 +468,6 @@
}
],
"source": [
- "#NBEVAL_SKIP\n",
"!pip install Faker --quiet"
]
},
@@ -448,86 +516,86 @@
" \n",
" \n",
" 0 \n",
- " 8c49957f-be61-4083-94f5-de720d139124 \n",
- " Kirsten Jensen \n",
- " ashleewoodard \n",
- " blakejoshua@example.net \n",
- " 865 Nancy Parkways\\nNew Christopherland, AS 31173 \n",
- " (954)652-5823x04707 \n",
- " 1934-06-21 \n",
- " [breweries, cocktails, pizza, pasta, mexican, ... \n",
- " 1973-07-05 \n",
- " low \n",
- " False \n",
- " False \n",
- " public \n",
- " False \n",
- " \n",
- " \n",
- " 1 \n",
- " d98d91c3-7bcf-4d83-8a6b-cc847dd6214b \n",
- " Shane Kerr \n",
- " jasoncantu \n",
- " smoore@example.org \n",
- " 31892 Melissa Land Apt. 644\\nJulianhaven, VT 5... \n",
- " +1-768-369-9785x7662 \n",
- " 1930-05-01 \n",
- " [brunch, shakes, italian, bbq, ethiopian] \n",
- " 1988-03-05 \n",
+ " 2d72a59b-5b12-430f-a5c3-49f8b093cb3d \n",
+ " Kayla Clark \n",
+ " debbie11 \n",
+ " teresa54@example.net \n",
+ " 8873 Thompson Cape\\nOsborneport, NV 34895 \n",
+ " 231.228.4452x008 \n",
+ " 1982-06-10 \n",
+ " [pizza, pasta, shakes, brunch, bbq, ethiopian,... \n",
+ " 2017-04-18 \n",
" middle \n",
" True \n",
- " False \n",
+ " True \n",
" public \n",
" True \n",
" \n",
" \n",
- " 2 \n",
- " f6344885-7388-4ee2-9686-009b14d8ee21 \n",
- " Jon Powers \n",
- " vanessamurray \n",
- " kimberly64@example.net \n",
- " 4592 Walton Prairie\\nPort Sharon, NC 56434 \n",
- " 251-346-1235x68838 \n",
- " 1920-04-06 \n",
- " [bbq, fast food, ethiopian, mexican, brunch, f... \n",
- " 2009-03-20 \n",
+ " 1 \n",
+ " 034b2b2f-1949-478d-abd6-add4b3275efe \n",
+ " Leah Hopkins \n",
+ " williamsanchez \n",
+ " darryl77@example.net \n",
+ " 353 Kimberly Green\\nRoachfort, FM 34385 \n",
+ " 4669094632 \n",
+ " 1999-03-07 \n",
+ " [brunch, ethiopian, breweries] \n",
+ " 1970-06-21 \n",
" low \n",
" False \n",
" True \n",
- " friends-only \n",
- " True \n",
+ " public \n",
+ " False \n",
" \n",
" \n",
- " 3 \n",
- " 156a5384-9285-4aa0-b361-b43855caf29d \n",
- " Melanie Rivera \n",
- " erica01 \n",
- " xmorrison@example.org \n",
- " 30240 Riley Glen\\nSouth Laura, NH 70744 \n",
- " (767)958-2265 \n",
- " 1916-03-12 \n",
- " [fast food, fine dining, breweries, pasta, ita... \n",
- " 1995-04-07 \n",
+ " 2 \n",
+ " 5d674492-3026-4cc9-b216-be675cf8d360 \n",
+ " Mason Patterson \n",
+ " jamescurtis \n",
+ " lopezchristopher@example.com \n",
+ " 945 Bryan Locks Suite 200\\nValenzuelaburgh, MI... \n",
+ " 885-983-4573 \n",
+ " 1914-02-14 \n",
+ " [cocktails, fine dining, pizza, shakes, ethiop... \n",
+ " 2013-03-10 \n",
" high \n",
- " True \n",
+ " False \n",
" False \n",
" friends-only \n",
" False \n",
" \n",
" \n",
+ " 3 \n",
+ " 61e17d13-9e18-431f-8f06-208bd0469892 \n",
+ " Aaron Dixon \n",
+ " marshallkristen \n",
+ " becky20@example.org \n",
+ " 42388 Russell Harbors Suite 340\\nNorth Andrewc... \n",
+ " 448.270.3034x583 \n",
+ " 1959-05-01 \n",
+ " [breweries, cocktails, fine dining] \n",
+ " 1973-12-11 \n",
+ " middle \n",
+ " False \n",
+ " True \n",
+ " private \n",
+ " True \n",
+ " \n",
+ " \n",
" 4 \n",
- " ae30ca78-f7b3-4637-992c-3e3a8894ebf9 \n",
- " Thomas Hill \n",
- " rose77 \n",
- " davistina@example.net \n",
- " 707 Thompson Club Apt. 907\\nNorth Alexisview, ... \n",
- " +1-498-967-4318 \n",
- " 1960-11-14 \n",
- " [ethiopian, mexican] \n",
- " 1993-05-26 \n",
+ " 8cc208b6-0f4f-459c-a8f5-31d3ca6deca6 \n",
+ " Loretta Eaton \n",
+ " phatfield \n",
+ " aaustin@example.org \n",
+ " PSC 2899, Box 5115\\nAPO AE 79916 \n",
+ " 663-371-4597x72295 \n",
+ " 1923-07-02 \n",
+ " [brunch, italian, bbq, mexican, burgers, pizza] \n",
+ " 2023-04-29 \n",
" high \n",
" True \n",
- " False \n",
+ " True \n",
" private \n",
" True \n",
" \n",
@@ -536,40 +604,47 @@
""
],
"text/plain": [
- " user_id name username \\\n",
- "0 8c49957f-be61-4083-94f5-de720d139124 Kirsten Jensen ashleewoodard \n",
- "1 d98d91c3-7bcf-4d83-8a6b-cc847dd6214b Shane Kerr jasoncantu \n",
- "2 f6344885-7388-4ee2-9686-009b14d8ee21 Jon Powers vanessamurray \n",
- "3 156a5384-9285-4aa0-b361-b43855caf29d Melanie Rivera erica01 \n",
- "4 ae30ca78-f7b3-4637-992c-3e3a8894ebf9 Thomas Hill rose77 \n",
- "\n",
- " email address \\\n",
- "0 blakejoshua@example.net 865 Nancy Parkways\\nNew Christopherland, AS 31173 \n",
- "1 smoore@example.org 31892 Melissa Land Apt. 644\\nJulianhaven, VT 5... \n",
- "2 kimberly64@example.net 4592 Walton Prairie\\nPort Sharon, NC 56434 \n",
- "3 xmorrison@example.org 30240 Riley Glen\\nSouth Laura, NH 70744 \n",
- "4 davistina@example.net 707 Thompson Club Apt. 907\\nNorth Alexisview, ... \n",
- "\n",
- " phone_number birthdate \\\n",
- "0 (954)652-5823x04707 1934-06-21 \n",
- "1 +1-768-369-9785x7662 1930-05-01 \n",
- "2 251-346-1235x68838 1920-04-06 \n",
- "3 (767)958-2265 1916-03-12 \n",
- "4 +1-498-967-4318 1960-11-14 \n",
- "\n",
- " likes account_created_on \\\n",
- "0 [breweries, cocktails, pizza, pasta, mexican, ... 1973-07-05 \n",
- "1 [brunch, shakes, italian, bbq, ethiopian] 1988-03-05 \n",
- "2 [bbq, fast food, ethiopian, mexican, brunch, f... 2009-03-20 \n",
- "3 [fast food, fine dining, breweries, pasta, ita... 1995-04-07 \n",
- "4 [ethiopian, mexican] 1993-05-26 \n",
- "\n",
- " price_bracket newsletter notifications profile_visibility data_sharing \n",
- "0 low False False public False \n",
- "1 middle True False public True \n",
- "2 low False True friends-only True \n",
- "3 high True False friends-only False \n",
- "4 high True False private True "
+ " user_id name username \\\n",
+ "0 2d72a59b-5b12-430f-a5c3-49f8b093cb3d Kayla Clark debbie11 \n",
+ "1 034b2b2f-1949-478d-abd6-add4b3275efe Leah Hopkins williamsanchez \n",
+ "2 5d674492-3026-4cc9-b216-be675cf8d360 Mason Patterson jamescurtis \n",
+ "3 61e17d13-9e18-431f-8f06-208bd0469892 Aaron Dixon marshallkristen \n",
+ "4 8cc208b6-0f4f-459c-a8f5-31d3ca6deca6 Loretta Eaton phatfield \n",
+ "\n",
+ " email \\\n",
+ "0 teresa54@example.net \n",
+ "1 darryl77@example.net \n",
+ "2 lopezchristopher@example.com \n",
+ "3 becky20@example.org \n",
+ "4 aaustin@example.org \n",
+ "\n",
+ " address phone_number \\\n",
+ "0 8873 Thompson Cape\\nOsborneport, NV 34895 231.228.4452x008 \n",
+ "1 353 Kimberly Green\\nRoachfort, FM 34385 4669094632 \n",
+ "2 945 Bryan Locks Suite 200\\nValenzuelaburgh, MI... 885-983-4573 \n",
+ "3 42388 Russell Harbors Suite 340\\nNorth Andrewc... 448.270.3034x583 \n",
+ "4 PSC 2899, Box 5115\\nAPO AE 79916 663-371-4597x72295 \n",
+ "\n",
+ " birthdate likes \\\n",
+ "0 1982-06-10 [pizza, pasta, shakes, brunch, bbq, ethiopian,... \n",
+ "1 1999-03-07 [brunch, ethiopian, breweries] \n",
+ "2 1914-02-14 [cocktails, fine dining, pizza, shakes, ethiop... \n",
+ "3 1959-05-01 [breweries, cocktails, fine dining] \n",
+ "4 1923-07-02 [brunch, italian, bbq, mexican, burgers, pizza] \n",
+ "\n",
+ " account_created_on price_bracket newsletter notifications \\\n",
+ "0 2017-04-18 middle True True \n",
+ "1 1970-06-21 low False True \n",
+ "2 2013-03-10 high False False \n",
+ "3 1973-12-11 middle False True \n",
+ "4 2023-04-29 high True True \n",
+ "\n",
+ " profile_visibility data_sharing \n",
+ "0 public True \n",
+ "1 public False \n",
+ "2 friends-only False \n",
+ "3 private True \n",
+ "4 private True "
]
},
"execution_count": 7,
@@ -659,115 +734,115 @@
" \n",
" \n",
" 0 \n",
- " 8c49957f-be61-4083-94f5-de720d139124 \n",
- " Kirsten Jensen \n",
- " ashleewoodard \n",
- " blakejoshua@example.net \n",
- " 865 Nancy Parkways\\nNew Christopherland, AS 31173 \n",
- " (954)652-5823x04707 \n",
- " 1934-06-21 \n",
- " [breweries, cocktails, pizza, pasta, mexican, ... \n",
- " 1973-07-05 \n",
- " 0 \n",
+ " 2d72a59b-5b12-430f-a5c3-49f8b093cb3d \n",
+ " Kayla Clark \n",
+ " debbie11 \n",
+ " teresa54@example.net \n",
+ " 8873 Thompson Cape\\nOsborneport, NV 34895 \n",
+ " 231.228.4452x008 \n",
+ " 1982-06-10 \n",
+ " [pizza, pasta, shakes, brunch, bbq, ethiopian,... \n",
+ " 2017-04-18 \n",
+ " 1 \n",
" ... \n",
" 1 \n",
" 1 \n",
" 1 \n",
" 0 \n",
- " 1 \n",
" 0 \n",
+ " 1 \n",
" 0 \n",
" 0 \n",
" 1 \n",
- " [0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, ... \n",
+ " [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, ... \n",
" \n",
" \n",
" 1 \n",
- " d98d91c3-7bcf-4d83-8a6b-cc847dd6214b \n",
- " Shane Kerr \n",
- " jasoncantu \n",
- " smoore@example.org \n",
- " 31892 Melissa Land Apt. 644\\nJulianhaven, VT 5... \n",
- " +1-768-369-9785x7662 \n",
- " 1930-05-01 \n",
- " [brunch, shakes, italian, bbq, ethiopian] \n",
- " 1988-03-05 \n",
- " 1 \n",
+ " 034b2b2f-1949-478d-abd6-add4b3275efe \n",
+ " Leah Hopkins \n",
+ " williamsanchez \n",
+ " darryl77@example.net \n",
+ " 353 Kimberly Green\\nRoachfort, FM 34385 \n",
+ " 4669094632 \n",
+ " 1999-03-07 \n",
+ " [brunch, ethiopian, breweries] \n",
+ " 1970-06-21 \n",
+ " 0 \n",
" ... \n",
" 0 \n",
" 0 \n",
- " 1 \n",
" 0 \n",
" 0 \n",
" 1 \n",
" 0 \n",
" 0 \n",
+ " 0 \n",
" 1 \n",
- " [1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, ... \n",
+ " [0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, ... \n",
" \n",
" \n",
" 2 \n",
- " f6344885-7388-4ee2-9686-009b14d8ee21 \n",
- " Jon Powers \n",
- " vanessamurray \n",
- " kimberly64@example.net \n",
- " 4592 Walton Prairie\\nPort Sharon, NC 56434 \n",
- " 251-346-1235x68838 \n",
- " 1920-04-06 \n",
- " [bbq, fast food, ethiopian, mexican, brunch, f... \n",
- " 2009-03-20 \n",
+ " 5d674492-3026-4cc9-b216-be675cf8d360 \n",
+ " Mason Patterson \n",
+ " jamescurtis \n",
+ " lopezchristopher@example.com \n",
+ " 945 Bryan Locks Suite 200\\nValenzuelaburgh, MI... \n",
+ " 885-983-4573 \n",
+ " 1914-02-14 \n",
+ " [cocktails, fine dining, pizza, shakes, ethiop... \n",
+ " 2013-03-10 \n",
" 0 \n",
" ... \n",
- " 0 \n",
" 1 \n",
" 1 \n",
- " 0 \n",
" 1 \n",
+ " 1 \n",
+ " 0 \n",
" 0 \n",
" 1 \n",
" 0 \n",
" 0 \n",
- " [0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, ... \n",
+ " [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, ... \n",
" \n",
" \n",
" 3 \n",
- " 156a5384-9285-4aa0-b361-b43855caf29d \n",
- " Melanie Rivera \n",
- " erica01 \n",
- " xmorrison@example.org \n",
- " 30240 Riley Glen\\nSouth Laura, NH 70744 \n",
- " (767)958-2265 \n",
- " 1916-03-12 \n",
- " [fast food, fine dining, breweries, pasta, ita... \n",
- " 1995-04-07 \n",
- " 1 \n",
+ " 61e17d13-9e18-431f-8f06-208bd0469892 \n",
+ " Aaron Dixon \n",
+ " marshallkristen \n",
+ " becky20@example.org \n",
+ " 42388 Russell Harbors Suite 340\\nNorth Andrewc... \n",
+ " 448.270.3034x583 \n",
+ " 1959-05-01 \n",
+ " [breweries, cocktails, fine dining] \n",
+ " 1973-12-11 \n",
+ " 0 \n",
" ... \n",
- " 1 \n",
- " 1 \n",
" 0 \n",
- " 1 \n",
+ " 0 \n",
+ " 0 \n",
" 0 \n",
" 0 \n",
" 1 \n",
" 0 \n",
+ " 1 \n",
" 0 \n",
- " [1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, ... \n",
+ " [0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, ... \n",
" \n",
" \n",
" 4 \n",
- " ae30ca78-f7b3-4637-992c-3e3a8894ebf9 \n",
- " Thomas Hill \n",
- " rose77 \n",
- " davistina@example.net \n",
- " 707 Thompson Club Apt. 907\\nNorth Alexisview, ... \n",
- " +1-498-967-4318 \n",
- " 1960-11-14 \n",
- " [ethiopian, mexican] \n",
- " 1993-05-26 \n",
+ " 8cc208b6-0f4f-459c-a8f5-31d3ca6deca6 \n",
+ " Loretta Eaton \n",
+ " phatfield \n",
+ " aaustin@example.org \n",
+ " PSC 2899, Box 5115\\nAPO AE 79916 \n",
+ " 663-371-4597x72295 \n",
+ " 1923-07-02 \n",
+ " [brunch, italian, bbq, mexican, burgers, pizza] \n",
+ " 2023-04-29 \n",
" 1 \n",
" ... \n",
" 0 \n",
- " 0 \n",
+ " 1 \n",
" 0 \n",
" 1 \n",
" 0 \n",
@@ -775,7 +850,7 @@
" 0 \n",
" 1 \n",
" 0 \n",
- " [1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, ... \n",
+ " [1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, ... \n",
" \n",
" \n",
"\n",
@@ -783,61 +858,68 @@
""
],
"text/plain": [
- " user_id name username \\\n",
- "0 8c49957f-be61-4083-94f5-de720d139124 Kirsten Jensen ashleewoodard \n",
- "1 d98d91c3-7bcf-4d83-8a6b-cc847dd6214b Shane Kerr jasoncantu \n",
- "2 f6344885-7388-4ee2-9686-009b14d8ee21 Jon Powers vanessamurray \n",
- "3 156a5384-9285-4aa0-b361-b43855caf29d Melanie Rivera erica01 \n",
- "4 ae30ca78-f7b3-4637-992c-3e3a8894ebf9 Thomas Hill rose77 \n",
- "\n",
- " email address \\\n",
- "0 blakejoshua@example.net 865 Nancy Parkways\\nNew Christopherland, AS 31173 \n",
- "1 smoore@example.org 31892 Melissa Land Apt. 644\\nJulianhaven, VT 5... \n",
- "2 kimberly64@example.net 4592 Walton Prairie\\nPort Sharon, NC 56434 \n",
- "3 xmorrison@example.org 30240 Riley Glen\\nSouth Laura, NH 70744 \n",
- "4 davistina@example.net 707 Thompson Club Apt. 907\\nNorth Alexisview, ... \n",
- "\n",
- " phone_number birthdate \\\n",
- "0 (954)652-5823x04707 1934-06-21 \n",
- "1 +1-768-369-9785x7662 1930-05-01 \n",
- "2 251-346-1235x68838 1920-04-06 \n",
- "3 (767)958-2265 1916-03-12 \n",
- "4 +1-498-967-4318 1960-11-14 \n",
- "\n",
- " likes account_created_on \\\n",
- "0 [breweries, cocktails, pizza, pasta, mexican, ... 1973-07-05 \n",
- "1 [brunch, shakes, italian, bbq, ethiopian] 1988-03-05 \n",
- "2 [bbq, fast food, ethiopian, mexican, brunch, f... 2009-03-20 \n",
- "3 [fast food, fine dining, breweries, pasta, ita... 1995-04-07 \n",
- "4 [ethiopian, mexican] 1993-05-26 \n",
- "\n",
- " newsletter ... pasta pizza shakes price_bracket_high \\\n",
- "0 0 ... 1 1 1 0 \n",
- "1 1 ... 0 0 1 0 \n",
- "2 0 ... 0 1 1 0 \n",
- "3 1 ... 1 1 0 1 \n",
- "4 1 ... 0 0 0 1 \n",
- "\n",
- " price_bracket_low price_bracket_middle profile_visibility_friends-only \\\n",
- "0 1 0 0 \n",
- "1 0 1 0 \n",
- "2 1 0 1 \n",
- "3 0 0 1 \n",
- "4 0 0 0 \n",
- "\n",
- " profile_visibility_private profile_visibility_public \\\n",
- "0 0 1 \n",
- "1 0 1 \n",
- "2 0 0 \n",
- "3 0 0 \n",
- "4 1 0 \n",
+ " user_id name username \\\n",
+ "0 2d72a59b-5b12-430f-a5c3-49f8b093cb3d Kayla Clark debbie11 \n",
+ "1 034b2b2f-1949-478d-abd6-add4b3275efe Leah Hopkins williamsanchez \n",
+ "2 5d674492-3026-4cc9-b216-be675cf8d360 Mason Patterson jamescurtis \n",
+ "3 61e17d13-9e18-431f-8f06-208bd0469892 Aaron Dixon marshallkristen \n",
+ "4 8cc208b6-0f4f-459c-a8f5-31d3ca6deca6 Loretta Eaton phatfield \n",
+ "\n",
+ " email \\\n",
+ "0 teresa54@example.net \n",
+ "1 darryl77@example.net \n",
+ "2 lopezchristopher@example.com \n",
+ "3 becky20@example.org \n",
+ "4 aaustin@example.org \n",
+ "\n",
+ " address phone_number \\\n",
+ "0 8873 Thompson Cape\\nOsborneport, NV 34895 231.228.4452x008 \n",
+ "1 353 Kimberly Green\\nRoachfort, FM 34385 4669094632 \n",
+ "2 945 Bryan Locks Suite 200\\nValenzuelaburgh, MI... 885-983-4573 \n",
+ "3 42388 Russell Harbors Suite 340\\nNorth Andrewc... 448.270.3034x583 \n",
+ "4 PSC 2899, Box 5115\\nAPO AE 79916 663-371-4597x72295 \n",
+ "\n",
+ " birthdate likes \\\n",
+ "0 1982-06-10 [pizza, pasta, shakes, brunch, bbq, ethiopian,... \n",
+ "1 1999-03-07 [brunch, ethiopian, breweries] \n",
+ "2 1914-02-14 [cocktails, fine dining, pizza, shakes, ethiop... \n",
+ "3 1959-05-01 [breweries, cocktails, fine dining] \n",
+ "4 1923-07-02 [brunch, italian, bbq, mexican, burgers, pizza] \n",
+ "\n",
+ " account_created_on newsletter ... pasta pizza shakes \\\n",
+ "0 2017-04-18 1 ... 1 1 1 \n",
+ "1 1970-06-21 0 ... 0 0 0 \n",
+ "2 2013-03-10 0 ... 1 1 1 \n",
+ "3 1973-12-11 0 ... 0 0 0 \n",
+ "4 2023-04-29 1 ... 0 1 0 \n",
+ "\n",
+ " price_bracket_high price_bracket_low price_bracket_middle \\\n",
+ "0 0 0 1 \n",
+ "1 0 1 0 \n",
+ "2 1 0 0 \n",
+ "3 0 0 1 \n",
+ "4 1 0 0 \n",
+ "\n",
+ " profile_visibility_friends-only profile_visibility_private \\\n",
+ "0 0 0 \n",
+ "1 0 0 \n",
+ "2 1 0 \n",
+ "3 0 1 \n",
+ "4 0 1 \n",
+ "\n",
+ " profile_visibility_public \\\n",
+ "0 1 \n",
+ "1 1 \n",
+ "2 0 \n",
+ "3 0 \n",
+ "4 0 \n",
"\n",
" feature_vector \n",
- "0 [0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, ... \n",
- "1 [1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, ... \n",
- "2 [0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, ... \n",
- "3 [1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, ... \n",
- "4 [1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, ... \n",
+ "0 [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, ... \n",
+ "1 [0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, ... \n",
+ "2 [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, ... \n",
+ "3 [0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, ... \n",
+ "4 [1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, ... \n",
"\n",
"[5 rows x 32 columns]"
]
@@ -848,7 +930,6 @@
}
],
"source": [
- "\n",
"from sklearn.preprocessing import MultiLabelBinarizer\n",
"\n",
"# use a MultiLabelBinarizer to one-hot encode our user's 'likes' column, which has a list of users' food preferences\n",
@@ -1011,26 +1092,26 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "epoch [1/200], loss: 0.5038220286369324\n",
- "epoch [11/200], loss: 0.5040968060493469\n",
- "epoch [21/200], loss: 0.4700140357017517\n",
- "epoch [31/200], loss: 0.40341031551361084\n",
- "epoch [41/200], loss: 0.30302390456199646\n",
- "epoch [51/200], loss: 0.511837363243103\n",
- "epoch [61/200], loss: 0.37064486742019653\n",
- "epoch [71/200], loss: 0.32029417157173157\n",
- "epoch [81/200], loss: 0.41176533699035645\n",
- "epoch [91/200], loss: 0.2636029124259949\n",
- "epoch [101/200], loss: 0.5995010137557983\n",
- "epoch [111/200], loss: 0.26358169317245483\n",
- "epoch [121/200], loss: 0.15962541103363037\n",
- "epoch [131/200], loss: 0.04395533353090286\n",
- "epoch [141/200], loss: 0.2500947117805481\n",
- "epoch [151/200], loss: 0.40849578380584717\n",
- "epoch [161/200], loss: 0.14111760258674622\n",
- "epoch [171/200], loss: 0.29329919815063477\n",
- "epoch [181/200], loss: 0.13339880108833313\n",
- "epoch [191/200], loss: 0.33117613196372986\n"
+ "epoch [1/200], loss: 0.4948478043079376\n",
+ "epoch [11/200], loss: 0.5350240468978882\n",
+ "epoch [21/200], loss: 0.32322847843170166\n",
+ "epoch [31/200], loss: 0.47431042790412903\n",
+ "epoch [41/200], loss: 0.39620476961135864\n",
+ "epoch [51/200], loss: 0.43342289328575134\n",
+ "epoch [61/200], loss: 0.1380709707736969\n",
+ "epoch [71/200], loss: 0.25389307737350464\n",
+ "epoch [81/200], loss: 0.029272809624671936\n",
+ "epoch [91/200], loss: 0.3498039245605469\n",
+ "epoch [101/200], loss: 0.303999662399292\n",
+ "epoch [111/200], loss: 0.3710485100746155\n",
+ "epoch [121/200], loss: 0.1330445408821106\n",
+ "epoch [131/200], loss: 0.14256471395492554\n",
+ "epoch [141/200], loss: 0.16317707300186157\n",
+ "epoch [151/200], loss: 0.3127524256706238\n",
+ "epoch [161/200], loss: 0.26822173595428467\n",
+ "epoch [171/200], loss: 0.13817712664604187\n",
+ "epoch [181/200], loss: 0.31456106901168823\n",
+ "epoch [191/200], loss: 0.3622739613056183\n"
]
}
],
@@ -1123,7 +1204,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "{'name': '21st Amendment Brewery & Restaurant', 'address': '563 2nd St', 'locality': 'San Francisco', 'location': '-122.392576,37.782448', 'cuisine': ['Cafe', 'Pub Food', 'American', 'Burgers', 'Pizza'], 'price': 2, 'rating': 4.0, 'sunday_open': 1000, 'sunday_close': 2359, 'monday_open': 1130, 'monday_close': 2359, 'tuesday_open': 1130, 'tuesday_close': 2359, 'wednesday_open': 1130, 'wednesday_close': 2359, 'thursday_open': 1130, 'thursday_close': 2359, 'friday_open': 1130, 'friday_close': 2359, 'saturday_open': 1130, 'saturday_close': 2359, 'embedding': [0.028717460110783577, -0.010432110168039799, -0.15579310059547424, -0.09007972478866577, -0.08904828876256943, -0.06460892409086227, 0.06160367652773857, 0.08463871479034424, -0.11541824042797089, -0.15989527106285095, 0.15000291168689728, -0.0801846981048584, -0.06959360092878342, -0.06584298610687256, 0.08495321869850159, -0.05949929729104042, -0.01901606284081936, 0.044410597532987595, -0.06874579191207886, -0.06110486015677452, 0.08664961159229279, 0.10069684684276581, 0.00703305983915925, -0.1213110089302063, 0.07221467792987823, 0.08289125561714172, -0.020599940791726112, 0.08590658009052277, -0.05167737603187561, -0.034252531826496124, -0.032192397862672806, -0.013088015839457512, 0.051425255835056305, 0.10542334616184235, 0.11928749829530716, -0.043923888355493546, -0.03416838124394417, -0.09220845252275467, 0.008960519917309284, -0.03631928935647011, -0.009584952145814896, 0.02850543148815632, 0.041595641523599625, 0.008507505059242249, -0.023945361375808716, -0.029285553842782974, 0.1319705694913864, -0.000728881626855582, 0.17677032947540283, -0.11249547451734543, 0.08006928116083145, -0.02895255759358406, 0.08162163943052292, -0.001116430852562189, 0.12038654834032059, 0.08053001761436462, 0.05644155293703079, -0.13006895780563354, -0.09181211143732071, 0.047289978712797165, 0.15262317657470703, -0.15985533595085144, 0.15764641761779785, -0.06318134069442749, -0.0019673688802868128, -0.1305117905139923, -0.036956388503313065, 0.07861090451478958, -0.07377144694328308, -0.029948312789201736, -0.0180054884403944, 0.16489765048027039, -0.09569795429706573, 0.11060012876987457, -0.06405990570783615, 0.1352132111787796, -0.13919328153133392, -0.04358096793293953, 0.034535180777311325, -0.01949075236916542, 0.0075964899733662605, -0.014157578349113464, 0.008092504926025867, 0.031047292053699493, 0.0617695152759552, 0.014792567119002342, 0.181081160902977, 0.09052076935768127, 0.014595440588891506, -0.1563986986875534, -0.027365028858184814, -0.03568330034613609, -0.07662227004766464, -0.04418030381202698, -0.004757001996040344, -0.036813508719205856, 0.12870939075946808, -0.07621592283248901, -0.12695179879665375, 0.11817491799592972, 0.037855129688978195, -0.06083338335156441, 0.14988923072814941, 0.09214119613170624, -0.008170578628778458, -0.09872289001941681, 0.07875774055719376, -0.10017523169517517, 0.00689289253205061, 0.12864772975444794, -0.19386278092861176, 0.12486553192138672, -0.05002424493432045, 0.10140490531921387, -0.025215785950422287, 0.08094171434640884, 0.11039657890796661, -0.004418433643877506, 0.09027619659900665, -0.052607160061597824, 0.1531265676021576, 0.07230117917060852, -0.06995918601751328, 0.1714017540216446, 0.09504596143960953, -0.1021222248673439, 0.005956844426691532, 0.14401885867118835]}\n"
+ "{'name': '21st Amendment Brewery & Restaurant', 'address': '563 2nd St', 'locality': 'San Francisco', 'location': '-122.392576,37.782448', 'cuisine': ['Cafe', 'Pub Food', 'American', 'Burgers', 'Pizza'], 'price': 2, 'rating': 4.0, 'sunday_open': 1000, 'sunday_close': 2359, 'monday_open': 1130, 'monday_close': 2359, 'tuesday_open': 1130, 'tuesday_close': 2359, 'wednesday_open': 1130, 'wednesday_close': 2359, 'thursday_open': 1130, 'thursday_close': 2359, 'friday_open': 1130, 'friday_close': 2359, 'saturday_open': 1130, 'saturday_close': 2359, 'embedding': [0.04085610806941986, -0.07978134602308273, 0.043692223727703094, 0.07572835683822632, 0.012072183191776276, -0.13669149577617645, -0.025233915075659752, -0.08203943073749542, 0.004281577654182911, 0.053853441029787064, 0.10153290629386902, -0.0029142447747290134, -0.03880758956074715, -0.047814156860113144, -0.06192268431186676, -0.013051072135567665, 0.08474208414554596, 0.11760099232196808, -0.04501175880432129, 0.036522794514894485, 0.07012218236923218, 0.07932834327220917, -0.11235840618610382, -0.06628117710351944, -0.036081865429878235, 0.10264216363430023, 0.006768162362277508, -0.1377549171447754, 0.11204114556312561, -0.05779130011796951, 0.1014084592461586, -0.011839451268315315, 0.06367754936218262, 0.1345064789056778, 0.04285123571753502, 0.12564392387866974, -0.018177764490246773, -0.023292746394872665, -0.11306607723236084, 0.07133293896913528, -0.0793255865573883, 0.10723698139190674, 0.025939466431736946, 0.005317146424204111, 0.08136926591396332, -0.08177289366722107, 0.1532663106918335, -0.01752050220966339, -0.10502904653549194, -0.11620310693979263, 0.030231507495045662, 0.14732813835144043, 0.005023199133574963, -0.09555873274803162, 0.15709209442138672, -0.02062702737748623, 0.04334118962287903, -0.0390237420797348, 0.02523123100399971, 0.0641607716679573, 0.016466626897454262, -0.08375702798366547, -0.1619223952293396, -0.09513241052627563, -0.024845421314239502, 0.029008952900767326, -0.025478294119238853, -0.027486223727464676, 0.06510215252637863, -0.16730202734470367, 0.10255678743124008, 0.08258558064699173, -0.16539154946804047, 0.05780792608857155, 0.08961871266365051, -0.11477161943912506, -0.0031035130377858877, 0.10795316845178604, -0.06544432789087296, 0.06262046098709106, -0.035685282200574875, -0.12535151839256287, 0.15087392926216125, 0.054519712924957275, -0.06867150962352753, 0.01560500543564558, 0.1242009848356247, -0.03294835612177849, 0.09918906539678574, 0.07899592816829681, 0.016121378168463707, 0.012538410723209381, 0.04713483154773712, -0.016400208696722984, 0.1835649609565735, 0.16933025419712067, -0.06303106993436813, 0.09937309473752975, -0.07579631358385086, 0.11997299641370773, 0.01682763174176216, -0.09757581353187561, 0.09561226516962051, -0.04486346244812012, -0.16034992039203644, -0.10858193784952164, -0.026912961155176163, 0.11371364444494247, 0.16520418226718903, -0.08449505269527435, 0.11462333798408508, -0.0775909498333931, 0.0306625384837389, -0.061352867633104324, 0.03166527301073074, 0.013918583281338215, -0.13196627795696259, -0.084035724401474, -0.14768821001052856, 0.07229673862457275, 0.12507523596286774, 0.09107068926095963, 0.011143358424305916, -0.17356498539447784, 0.1589767187833786, 0.028815122321248055, -0.10924888402223587, 0.044692039489746094]}\n"
]
}
],
@@ -1161,15 +1242,7 @@
"cell_type": "code",
"execution_count": 15,
"metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "11:30:23 redisvl.index.index INFO Index already exists, overwriting.\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"from redis import Redis\n",
"from redisvl.schema import IndexSchema\n",
@@ -1314,15 +1387,16 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "found 8 results from our query\n",
- "{'id': 'restaurant:7e440f66c21d42f4974726aa7f7f5947', 'name': 'Nanis Coffee', 'address': '2739 Geary Blvd', 'location': '-122.448613,37.782187'}\n",
- "{'id': 'restaurant:feca10fd72264cca9622f8f1acec41aa', 'name': 'Double Decker', 'address': '465 Grove St', 'location': '-122.424033,37.777531'}\n",
- "{'id': 'restaurant:eb4d101c6ffa4ed2954a03c94e303568', 'name': 'Cafe Du Soleil', 'address': '200 Fillmore St', 'location': '-122.430158,37.771303'}\n",
- "{'id': 'restaurant:ae692ddd39184a129aa04d9072022560', 'name': 'La Boulange', 'address': '2043 Fillmore St', 'location': '-122.43386,37.788408'}\n",
- "{'id': 'restaurant:50f751f9d5ee45c2b017e2d77b61e124', 'name': 'Burgermeister', 'address': '138 Church St', 'location': '-122.42914,37.768755'}\n",
- "{'id': 'restaurant:d74be4aa7ad04890884d01595502a100', 'name': 'Magnolia Pub and Brewery', 'address': '1398 Haight St', 'location': '-122.445238,37.770276'}\n",
- "{'id': 'restaurant:6fdd9b24129f447383c8c7edb28308c7', 'name': 'Memphis Minnies BBQ Joint', 'address': '576 Haight St', 'location': '-122.431702,37.772058'}\n",
- "{'id': 'restaurant:f949c6a0282e44eb8244ba3046cff7f7', 'name': 'Panini', 'address': '1457 Haight St', 'location': '-122.44629,37.770036'}\n"
+ "found 9 results from our query\n",
+ "{'id': 'restaurant:38e3523a7e44410e9f9dadeaaedf7bcd', 'name': 'La Boulange', 'address': '2043 Fillmore St', 'location': '-122.43386,37.788408'}\n",
+ "{'id': 'restaurant:6ed782a2b4ae49ff951fffc6b061fe23', 'name': 'Pizzeria Delfina', 'address': '2406 California St', 'location': '-122.434241,37.788925'}\n",
+ "{'id': 'restaurant:5021e47f61f74bef8d0c35580c295a91', 'name': 'Burgermeister', 'address': '138 Church St', 'location': '-122.42914,37.768755'}\n",
+ "{'id': 'restaurant:9d29fd36d9b34ac08b25cefe2c59bc58', 'name': 'Double Decker', 'address': '465 Grove St', 'location': '-122.424033,37.777531'}\n",
+ "{'id': 'restaurant:631427789b384b2b82aaad718d6df0ff', 'name': 'Cafe Du Soleil', 'address': '200 Fillmore St', 'location': '-122.430158,37.771303'}\n",
+ "{'id': 'restaurant:48c70513a1f44065ace6f4c9ea4b8f20', 'name': 'Nanis Coffee', 'address': '2739 Geary Blvd', 'location': '-122.448613,37.782187'}\n",
+ "{'id': 'restaurant:d1959bf9ddb24edaa1bc0bd261d57cc6', 'name': 'Memphis Minnies BBQ Joint', 'address': '576 Haight St', 'location': '-122.431702,37.772058'}\n",
+ "{'id': 'restaurant:d9b546847eb14ea28d6181fd68e93127', 'name': 'Panini', 'address': '1457 Haight St', 'location': '-122.44629,37.770036'}\n",
+ "{'id': 'restaurant:1e1649915f734ebfae7f6c6e08ce5184', 'name': 'Magnolia Pub and Brewery', 'address': '1398 Haight St', 'location': '-122.445238,37.770276'}\n"
]
}
],
@@ -1372,27 +1446,16 @@
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.2\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
- "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
- "#NBEVAL_SKIP\n",
- "!pip install folium clipboard --quiet"
+ "!pip install folium --quiet"
]
},
{
"cell_type": "code",
- "execution_count": 20,
+ "execution_count": 19,
"metadata": {},
"outputs": [
{
@@ -1425,7 +1488,7 @@
" <meta name="viewport" content="width=device-width,\n",
" initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />\n",
" <style>\n",
- " #map_9d8ebd90d11293693f178e7701f744c4 {\n",
+ " #map_9cdc89c58cb07ccb06d4c5a7a630999a {\n",
" position: relative;\n",
" width: 100.0%;\n",
" height: 100.0%;\n",
@@ -1439,14 +1502,14 @@
"<body>\n",
" \n",
" \n",
- " <div class="folium-map" id="map_9d8ebd90d11293693f178e7701f744c4" ></div>\n",
+ " <div class="folium-map" id="map_9cdc89c58cb07ccb06d4c5a7a630999a" ></div>\n",
" \n",
"</body>\n",
"<script>\n",
" \n",
" \n",
- " var map_9d8ebd90d11293693f178e7701f744c4 = L.map(\n",
- " "map_9d8ebd90d11293693f178e7701f744c4",\n",
+ " var map_9cdc89c58cb07ccb06d4c5a7a630999a = L.map(\n",
+ " "map_9cdc89c58cb07ccb06d4c5a7a630999a",\n",
" {\n",
" center: [37.7749, -122.4194],\n",
" crs: L.CRS.EPSG3857,\n",
@@ -1461,3508 +1524,3508 @@
"\n",
" \n",
" \n",
- " var tile_layer_63ece1592db6e2515d0ad4e6317e91e5 = L.tileLayer(\n",
+ " var tile_layer_ddaf4cd749611c0511fb2d773fef81ba = L.tileLayer(\n",
" "https://tile.openstreetmap.org/{z}/{x}/{y}.png",\n",
" {"attribution": "\\u0026copy; \\u003ca href=\\"https://www.openstreetmap.org/copyright\\"\\u003eOpenStreetMap\\u003c/a\\u003e contributors", "detectRetina": false, "maxNativeZoom": 19, "maxZoom": 19, "minZoom": 0, "noWrap": false, "opacity": 1, "subdomains": "abc", "tms": false}\n",
" );\n",
" \n",
" \n",
- " tile_layer_63ece1592db6e2515d0ad4e6317e91e5.addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " tile_layer_ddaf4cd749611c0511fb2d773fef81ba.addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var marker_ef6835f7060941774c6531e3c42730ac = L.marker(\n",
+ " var marker_3efd2dddcfb2839d99eb102db58a19b6 = L.marker(\n",
" [37.782448, -122.392576],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_0cccc7a697c79f181957c258d7fd5edd = L.popup({"maxWidth": "100%"});\n",
+ " var popup_95db21adfd93c5480a4956856de80e8e = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_4b07856b5dfb897838ebb73d983dd64c = $(`<div id="html_4b07856b5dfb897838ebb73d983dd64c" style="width: 100.0%; height: 100.0%;">21st Amendment Brewery & Restaurant</div>`)[0];\n",
- " popup_0cccc7a697c79f181957c258d7fd5edd.setContent(html_4b07856b5dfb897838ebb73d983dd64c);\n",
+ " var html_33f84dfff15e8dea9f5e3f1317c2634e = $(`<div id="html_33f84dfff15e8dea9f5e3f1317c2634e" style="width: 100.0%; height: 100.0%;">21st Amendment Brewery & Restaurant</div>`)[0];\n",
+ " popup_95db21adfd93c5480a4956856de80e8e.setContent(html_33f84dfff15e8dea9f5e3f1317c2634e);\n",
" \n",
" \n",
"\n",
- " marker_ef6835f7060941774c6531e3c42730ac.bindPopup(popup_0cccc7a697c79f181957c258d7fd5edd)\n",
+ " marker_3efd2dddcfb2839d99eb102db58a19b6.bindPopup(popup_95db21adfd93c5480a4956856de80e8e)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_18867a4270e67b629ac8ef9c549247cb = L.marker(\n",
+ " var marker_183facf6a2c3f71035475a344eaab9ad = L.marker(\n",
" [37.777083, -122.422882],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_47da4831e138bcecf48b4dc1bea29c6d = L.popup({"maxWidth": "100%"});\n",
+ " var popup_9439ab9cfeb53723a1a9061a1ee439db = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_f59af5eab885183d54a84e3231aab129 = $(`<div id="html_f59af5eab885183d54a84e3231aab129" style="width: 100.0%; height: 100.0%;">Absinthe Brasserie & Bar</div>`)[0];\n",
- " popup_47da4831e138bcecf48b4dc1bea29c6d.setContent(html_f59af5eab885183d54a84e3231aab129);\n",
+ " var html_dfbce83a175a25386e149e8654ea596e = $(`<div id="html_dfbce83a175a25386e149e8654ea596e" style="width: 100.0%; height: 100.0%;">Absinthe Brasserie & Bar</div>`)[0];\n",
+ " popup_9439ab9cfeb53723a1a9061a1ee439db.setContent(html_dfbce83a175a25386e149e8654ea596e);\n",
" \n",
" \n",
"\n",
- " marker_18867a4270e67b629ac8ef9c549247cb.bindPopup(popup_47da4831e138bcecf48b4dc1bea29c6d)\n",
+ " marker_183facf6a2c3f71035475a344eaab9ad.bindPopup(popup_9439ab9cfeb53723a1a9061a1ee439db)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_d3fd90aa2d6057ace6e64090d18f9315 = L.marker(\n",
+ " var marker_9e12d51547a067ce8af5c24e8b6b172f = L.marker(\n",
" [37.785772, -122.404401],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_a75751b213e7ed837414f6f19e5bb407 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_345e1eead66d6b633697a2846d2fa0eb = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_8a915aa8fb5b8dad933095700555e445 = $(`<div id="html_8a915aa8fb5b8dad933095700555e445" style="width: 100.0%; height: 100.0%;">Amber India Restaurant</div>`)[0];\n",
- " popup_a75751b213e7ed837414f6f19e5bb407.setContent(html_8a915aa8fb5b8dad933095700555e445);\n",
+ " var html_c44afd52e20e4ac36b16ae5a0e69cc1c = $(`<div id="html_c44afd52e20e4ac36b16ae5a0e69cc1c" style="width: 100.0%; height: 100.0%;">Amber India Restaurant</div>`)[0];\n",
+ " popup_345e1eead66d6b633697a2846d2fa0eb.setContent(html_c44afd52e20e4ac36b16ae5a0e69cc1c);\n",
" \n",
" \n",
"\n",
- " marker_d3fd90aa2d6057ace6e64090d18f9315.bindPopup(popup_a75751b213e7ed837414f6f19e5bb407)\n",
+ " marker_9e12d51547a067ce8af5c24e8b6b172f.bindPopup(popup_345e1eead66d6b633697a2846d2fa0eb)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_3a95a653f454a2c264607decdd94f90d = L.marker(\n",
+ " var marker_c45591f4536baab29d6dc035f50b7c64 = L.marker(\n",
" [37.79362, -122.392915],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_66f7c7d0bda8ff78f969afd4a99cb9c3 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_65fad41aa75c07e39f6e065deba3d618 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_f571e6bc88f265fea975bde2ec7512c8 = $(`<div id="html_f571e6bc88f265fea975bde2ec7512c8" style="width: 100.0%; height: 100.0%;">Americano</div>`)[0];\n",
- " popup_66f7c7d0bda8ff78f969afd4a99cb9c3.setContent(html_f571e6bc88f265fea975bde2ec7512c8);\n",
+ " var html_99db4771078796d1238508fa97391a3a = $(`<div id="html_99db4771078796d1238508fa97391a3a" style="width: 100.0%; height: 100.0%;">Americano</div>`)[0];\n",
+ " popup_65fad41aa75c07e39f6e065deba3d618.setContent(html_99db4771078796d1238508fa97391a3a);\n",
" \n",
" \n",
"\n",
- " marker_3a95a653f454a2c264607decdd94f90d.bindPopup(popup_66f7c7d0bda8ff78f969afd4a99cb9c3)\n",
+ " marker_c45591f4536baab29d6dc035f50b7c64.bindPopup(popup_65fad41aa75c07e39f6e065deba3d618)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_d5d1b6ab619216649b7d18aed6a02b8f = L.marker(\n",
+ " var marker_fbc5a281ad8e95aab1ef77b58c4209f1 = L.marker(\n",
" [37.787848, -122.398812],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_38113c3815e114a23fc9f838ae60d08d = L.popup({"maxWidth": "100%"});\n",
+ " var popup_c744009b8cd24e7ddeed387ff193239f = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_31848813b4db17664825d0d5de482da2 = $(`<div id="html_31848813b4db17664825d0d5de482da2" style="width: 100.0%; height: 100.0%;">Anchor & Hope</div>`)[0];\n",
- " popup_38113c3815e114a23fc9f838ae60d08d.setContent(html_31848813b4db17664825d0d5de482da2);\n",
+ " var html_118a96d38d089213f7d79c34b1d94310 = $(`<div id="html_118a96d38d089213f7d79c34b1d94310" style="width: 100.0%; height: 100.0%;">Anchor & Hope</div>`)[0];\n",
+ " popup_c744009b8cd24e7ddeed387ff193239f.setContent(html_118a96d38d089213f7d79c34b1d94310);\n",
" \n",
" \n",
"\n",
- " marker_d5d1b6ab619216649b7d18aed6a02b8f.bindPopup(popup_38113c3815e114a23fc9f838ae60d08d)\n",
+ " marker_fbc5a281ad8e95aab1ef77b58c4209f1.bindPopup(popup_c744009b8cd24e7ddeed387ff193239f)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_6ffac969036deb9363339873d7e1dd31 = L.marker(\n",
+ " var marker_5e1923f63f4ffbf64592e44800dc1f0e = L.marker(\n",
" [37.783008, -122.460684],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_6a854018b5e85b1ff616532ec9ada179 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_08da34f56bebd025338045053073083a = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_c54bf87afaac6a30819cb24c7997b1c6 = $(`<div id="html_c54bf87afaac6a30819cb24c7997b1c6" style="width: 100.0%; height: 100.0%;">B Star Cafe</div>`)[0];\n",
- " popup_6a854018b5e85b1ff616532ec9ada179.setContent(html_c54bf87afaac6a30819cb24c7997b1c6);\n",
+ " var html_df72883685986b7508325a8c68c26870 = $(`<div id="html_df72883685986b7508325a8c68c26870" style="width: 100.0%; height: 100.0%;">B Star Cafe</div>`)[0];\n",
+ " popup_08da34f56bebd025338045053073083a.setContent(html_df72883685986b7508325a8c68c26870);\n",
" \n",
" \n",
"\n",
- " marker_6ffac969036deb9363339873d7e1dd31.bindPopup(popup_6a854018b5e85b1ff616532ec9ada179)\n",
+ " marker_5e1923f63f4ffbf64592e44800dc1f0e.bindPopup(popup_08da34f56bebd025338045053073083a)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_07905edfb3cb698645e1bf1394dba0b6 = L.marker(\n",
+ " var marker_3bb998a52b489605bc10a392b5470218 = L.marker(\n",
" [37.751483, -122.436211],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_82aa868f7ae92fc886813cc7da96382b = L.popup({"maxWidth": "100%"});\n",
+ " var popup_bf234138bd16b46b14bdd9a763b57ab9 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_a3c0670a4dc549d22622bd4450eeb1db = $(`<div id="html_a3c0670a4dc549d22622bd4450eeb1db" style="width: 100.0%; height: 100.0%;">Bacco</div>`)[0];\n",
- " popup_82aa868f7ae92fc886813cc7da96382b.setContent(html_a3c0670a4dc549d22622bd4450eeb1db);\n",
+ " var html_89e934c61ecd00dbe0258bb3ea70c32c = $(`<div id="html_89e934c61ecd00dbe0258bb3ea70c32c" style="width: 100.0%; height: 100.0%;">Bacco</div>`)[0];\n",
+ " popup_bf234138bd16b46b14bdd9a763b57ab9.setContent(html_89e934c61ecd00dbe0258bb3ea70c32c);\n",
" \n",
" \n",
"\n",
- " marker_07905edfb3cb698645e1bf1394dba0b6.bindPopup(popup_82aa868f7ae92fc886813cc7da96382b)\n",
+ " marker_3bb998a52b489605bc10a392b5470218.bindPopup(popup_bf234138bd16b46b14bdd9a763b57ab9)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_19648aeaf7b00e250d15f63fbd86b45b = L.marker(\n",
+ " var marker_40bd396635d3abf3d89f6f3b2867fbe5 = L.marker(\n",
" [37.790123, -122.420706],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_51cf74192977c508f380a6d920b0a426 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_b3d4a7ff3861c119501ce38b02e1f347 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_274d08cd4b45789b6ede858de5fc03aa = $(`<div id="html_274d08cd4b45789b6ede858de5fc03aa" style="width: 100.0%; height: 100.0%;">Bamboo Restaurant</div>`)[0];\n",
- " popup_51cf74192977c508f380a6d920b0a426.setContent(html_274d08cd4b45789b6ede858de5fc03aa);\n",
+ " var html_a4c102a35b369a5ddb1f8966c89c9190 = $(`<div id="html_a4c102a35b369a5ddb1f8966c89c9190" style="width: 100.0%; height: 100.0%;">Bamboo Restaurant</div>`)[0];\n",
+ " popup_b3d4a7ff3861c119501ce38b02e1f347.setContent(html_a4c102a35b369a5ddb1f8966c89c9190);\n",
" \n",
" \n",
"\n",
- " marker_19648aeaf7b00e250d15f63fbd86b45b.bindPopup(popup_51cf74192977c508f380a6d920b0a426)\n",
+ " marker_40bd396635d3abf3d89f6f3b2867fbe5.bindPopup(popup_b3d4a7ff3861c119501ce38b02e1f347)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_af161ce2af34b9bf01c9932aaa4caa05 = L.marker(\n",
+ " var marker_83177bb40d3fea024994bc9e797c5a42 = L.marker(\n",
" [37.763972, -122.421755],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_dc85c1d615571bb23b545ab4f4e930bf = L.popup({"maxWidth": "100%"});\n",
+ " var popup_e31ba1974369b0c2050f9801102246a9 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_f596f23b1a7b9acea85056613d03ea79 = $(`<div id="html_f596f23b1a7b9acea85056613d03ea79" style="width: 100.0%; height: 100.0%;">Bar Tartine</div>`)[0];\n",
- " popup_dc85c1d615571bb23b545ab4f4e930bf.setContent(html_f596f23b1a7b9acea85056613d03ea79);\n",
+ " var html_f18976e9a16705b0feaef9007de5a67f = $(`<div id="html_f18976e9a16705b0feaef9007de5a67f" style="width: 100.0%; height: 100.0%;">Bar Tartine</div>`)[0];\n",
+ " popup_e31ba1974369b0c2050f9801102246a9.setContent(html_f18976e9a16705b0feaef9007de5a67f);\n",
" \n",
" \n",
"\n",
- " marker_af161ce2af34b9bf01c9932aaa4caa05.bindPopup(popup_dc85c1d615571bb23b545ab4f4e930bf)\n",
+ " marker_83177bb40d3fea024994bc9e797c5a42.bindPopup(popup_e31ba1974369b0c2050f9801102246a9)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_2814a35ccdc21d1caf68bb492879f09e = L.marker(\n",
+ " var marker_d656fe29e94f784784a8f79bf440144a = L.marker(\n",
" [37.783954, -122.481177],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_2067fc8ec871f68c0207de6d96b265ad = L.popup({"maxWidth": "100%"});\n",
+ " var popup_7cf4fa7fa48711ecce0aaacca7270bf7 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_de3e23f330887dd2016b3b329aa586f3 = $(`<div id="html_de3e23f330887dd2016b3b329aa586f3" style="width: 100.0%; height: 100.0%;">Bazaar Cafe</div>`)[0];\n",
- " popup_2067fc8ec871f68c0207de6d96b265ad.setContent(html_de3e23f330887dd2016b3b329aa586f3);\n",
+ " var html_7f9d807888a74f5232807fa98ed504c2 = $(`<div id="html_7f9d807888a74f5232807fa98ed504c2" style="width: 100.0%; height: 100.0%;">Bazaar Cafe</div>`)[0];\n",
+ " popup_7cf4fa7fa48711ecce0aaacca7270bf7.setContent(html_7f9d807888a74f5232807fa98ed504c2);\n",
" \n",
" \n",
"\n",
- " marker_2814a35ccdc21d1caf68bb492879f09e.bindPopup(popup_2067fc8ec871f68c0207de6d96b265ad)\n",
+ " marker_d656fe29e94f784784a8f79bf440144a.bindPopup(popup_7cf4fa7fa48711ecce0aaacca7270bf7)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_d92c955788e45fad6bc407de86193aba = L.marker(\n",
+ " var marker_ceb0ce22fae336d706c5a3ec1ab919cc = L.marker(\n",
" [37.769273, -122.510407],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_fb00e571461f5d7df1c685160a710925 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_537fdf555fe6caeb2e64c741d5761c47 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_fb5ed3226f1df241fde77e33789b0fd0 = $(`<div id="html_fb5ed3226f1df241fde77e33789b0fd0" style="width: 100.0%; height: 100.0%;">Beach Chalet Brewery & Restaurant</div>`)[0];\n",
- " popup_fb00e571461f5d7df1c685160a710925.setContent(html_fb5ed3226f1df241fde77e33789b0fd0);\n",
+ " var html_25850408d6086316f26a31f3b1399c76 = $(`<div id="html_25850408d6086316f26a31f3b1399c76" style="width: 100.0%; height: 100.0%;">Beach Chalet Brewery & Restaurant</div>`)[0];\n",
+ " popup_537fdf555fe6caeb2e64c741d5761c47.setContent(html_25850408d6086316f26a31f3b1399c76);\n",
" \n",
" \n",
"\n",
- " marker_d92c955788e45fad6bc407de86193aba.bindPopup(popup_fb00e571461f5d7df1c685160a710925)\n",
+ " marker_ceb0ce22fae336d706c5a3ec1ab919cc.bindPopup(popup_537fdf555fe6caeb2e64c741d5761c47)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_605554f5f0ca94918f0cdae27b5c4b0f = L.marker(\n",
+ " var marker_077460314f557c1b6c1fa8dd677a9441 = L.marker(\n",
" [37.753786, -122.420751],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_4a184503c0df435b39bd3dbc5af10ad7 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_3a93b0cfdabbaf1a8a8a1b176041125b = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_e596c53e877deb02d15c810e8c88ef4a = $(`<div id="html_e596c53e877deb02d15c810e8c88ef4a" style="width: 100.0%; height: 100.0%;">Beretta</div>`)[0];\n",
- " popup_4a184503c0df435b39bd3dbc5af10ad7.setContent(html_e596c53e877deb02d15c810e8c88ef4a);\n",
+ " var html_a7e3c2969ad06d4ee52746ab10fe1991 = $(`<div id="html_a7e3c2969ad06d4ee52746ab10fe1991" style="width: 100.0%; height: 100.0%;">Beretta</div>`)[0];\n",
+ " popup_3a93b0cfdabbaf1a8a8a1b176041125b.setContent(html_a7e3c2969ad06d4ee52746ab10fe1991);\n",
" \n",
" \n",
"\n",
- " marker_605554f5f0ca94918f0cdae27b5c4b0f.bindPopup(popup_4a184503c0df435b39bd3dbc5af10ad7)\n",
+ " marker_077460314f557c1b6c1fa8dd677a9441.bindPopup(popup_3a93b0cfdabbaf1a8a8a1b176041125b)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_c6f653641723615f8a2a68c23a77b920 = L.marker(\n",
+ " var marker_840c9f5292ad38265f879db35eaeb03f = L.marker(\n",
" [37.764902, -122.423419],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_96f18a82fff078c8ec29a9056acd451e = L.popup({"maxWidth": "100%"});\n",
+ " var popup_61e0c2cc94c454c1ad1df1ce2286d01a = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_e6c1518b9caef23f8c755f77f939981b = $(`<div id="html_e6c1518b9caef23f8c755f77f939981b" style="width: 100.0%; height: 100.0%;">Big Lantern Restaurant</div>`)[0];\n",
- " popup_96f18a82fff078c8ec29a9056acd451e.setContent(html_e6c1518b9caef23f8c755f77f939981b);\n",
+ " var html_b3c42be78c1cb155f51f8dace7b44f86 = $(`<div id="html_b3c42be78c1cb155f51f8dace7b44f86" style="width: 100.0%; height: 100.0%;">Big Lantern Restaurant</div>`)[0];\n",
+ " popup_61e0c2cc94c454c1ad1df1ce2286d01a.setContent(html_b3c42be78c1cb155f51f8dace7b44f86);\n",
" \n",
" \n",
"\n",
- " marker_c6f653641723615f8a2a68c23a77b920.bindPopup(popup_96f18a82fff078c8ec29a9056acd451e)\n",
+ " marker_840c9f5292ad38265f879db35eaeb03f.bindPopup(popup_61e0c2cc94c454c1ad1df1ce2286d01a)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_e54cb3e7bfe0097cb4f3926554e79632 = L.marker(\n",
+ " var marker_2b105c4556d21c6dc649947c4806856e = L.marker(\n",
" [37.787274, -122.410072],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_abd721f485ab8a7d6c14ca93763aa72e = L.popup({"maxWidth": "100%"});\n",
+ " var popup_b70d9304d7c00d9fef0ab9daf69ded22 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_fbae701b3a01f39adcf41acb2784f84f = $(`<div id="html_fbae701b3a01f39adcf41acb2784f84f" style="width: 100.0%; height: 100.0%;">Biscuits & Blues</div>`)[0];\n",
- " popup_abd721f485ab8a7d6c14ca93763aa72e.setContent(html_fbae701b3a01f39adcf41acb2784f84f);\n",
+ " var html_91d7c4f5b5870ec029a53f452c6b6aef = $(`<div id="html_91d7c4f5b5870ec029a53f452c6b6aef" style="width: 100.0%; height: 100.0%;">Biscuits & Blues</div>`)[0];\n",
+ " popup_b70d9304d7c00d9fef0ab9daf69ded22.setContent(html_91d7c4f5b5870ec029a53f452c6b6aef);\n",
" \n",
" \n",
"\n",
- " marker_e54cb3e7bfe0097cb4f3926554e79632.bindPopup(popup_abd721f485ab8a7d6c14ca93763aa72e)\n",
+ " marker_2b105c4556d21c6dc649947c4806856e.bindPopup(popup_b70d9304d7c00d9fef0ab9daf69ded22)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_05d83214573418e4fe7cd773955ccfe4 = L.marker(\n",
+ " var marker_7c23cfa3aba51e090b73d943568ab708 = L.marker(\n",
" [37.807586, -122.420228],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_be906323696731499557492c5bc865b9 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_dad802f015e94ac79bc87cdd38f92228 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_e758e829f68b4fb81bb9775d32e3178a = $(`<div id="html_e758e829f68b4fb81bb9775d32e3178a" style="width: 100.0%; height: 100.0%;">Blue Mermaid Chowder House & Bar</div>`)[0];\n",
- " popup_be906323696731499557492c5bc865b9.setContent(html_e758e829f68b4fb81bb9775d32e3178a);\n",
+ " var html_4803c41b4f3178fb2d845a7f464d4675 = $(`<div id="html_4803c41b4f3178fb2d845a7f464d4675" style="width: 100.0%; height: 100.0%;">Blue Mermaid Chowder House & Bar</div>`)[0];\n",
+ " popup_dad802f015e94ac79bc87cdd38f92228.setContent(html_4803c41b4f3178fb2d845a7f464d4675);\n",
" \n",
" \n",
"\n",
- " marker_05d83214573418e4fe7cd773955ccfe4.bindPopup(popup_be906323696731499557492c5bc865b9)\n",
+ " marker_7c23cfa3aba51e090b73d943568ab708.bindPopup(popup_dad802f015e94ac79bc87cdd38f92228)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_1f38f3c09b703bd63d3c30d9a2390113 = L.marker(\n",
+ " var marker_b8215bc0c11ef4e9b85799d87d116cdf = L.marker(\n",
" [37.793038, -122.403105],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_5eb0757f99ac7dd8bd406e9ce833192d = L.popup({"maxWidth": "100%"});\n",
+ " var popup_05c49470a15566d7bdb7448b26c2cb19 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_0e5a850f14f568784c5f99d76a3f31cf = $(`<div id="html_0e5a850f14f568784c5f99d76a3f31cf" style="width: 100.0%; height: 100.0%;">Bob's Steak and Chophouse</div>`)[0];\n",
- " popup_5eb0757f99ac7dd8bd406e9ce833192d.setContent(html_0e5a850f14f568784c5f99d76a3f31cf);\n",
+ " var html_8947e4fa26521dd1f0c7f47b492dafec = $(`<div id="html_8947e4fa26521dd1f0c7f47b492dafec" style="width: 100.0%; height: 100.0%;">Bob's Steak and Chophouse</div>`)[0];\n",
+ " popup_05c49470a15566d7bdb7448b26c2cb19.setContent(html_8947e4fa26521dd1f0c7f47b492dafec);\n",
" \n",
" \n",
"\n",
- " marker_1f38f3c09b703bd63d3c30d9a2390113.bindPopup(popup_5eb0757f99ac7dd8bd406e9ce833192d)\n",
+ " marker_b8215bc0c11ef4e9b85799d87d116cdf.bindPopup(popup_05c49470a15566d7bdb7448b26c2cb19)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_c0284b1ffd113f43df2596ef392a4aac = L.marker(\n",
+ " var marker_9423b2b8013bcf442fccf6ab03fa1b37 = L.marker(\n",
" [37.808932, -122.410014],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_c540f53db60bcd6ef09c8819b66705f6 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_695e5706ca4c2b51225df7ddfd65b11c = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_cafab9887e570d08f301a888176a63b5 = $(`<div id="html_cafab9887e570d08f301a888176a63b5" style="width: 100.0%; height: 100.0%;">Boudin Sourdough Bakery & Cafe</div>`)[0];\n",
- " popup_c540f53db60bcd6ef09c8819b66705f6.setContent(html_cafab9887e570d08f301a888176a63b5);\n",
+ " var html_4e8acfd3b6265cea1db8c47099a99ca1 = $(`<div id="html_4e8acfd3b6265cea1db8c47099a99ca1" style="width: 100.0%; height: 100.0%;">Boudin Sourdough Bakery & Cafe</div>`)[0];\n",
+ " popup_695e5706ca4c2b51225df7ddfd65b11c.setContent(html_4e8acfd3b6265cea1db8c47099a99ca1);\n",
" \n",
" \n",
"\n",
- " marker_c0284b1ffd113f43df2596ef392a4aac.bindPopup(popup_c540f53db60bcd6ef09c8819b66705f6)\n",
+ " marker_9423b2b8013bcf442fccf6ab03fa1b37.bindPopup(popup_695e5706ca4c2b51225df7ddfd65b11c)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_fdc7f707caf359afb375919b9d67c2d2 = L.marker(\n",
+ " var marker_415caa592d3abf043adf17d5d1deb787 = L.marker(\n",
" [37.798, -122.422102],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_e2064da0051076278940f74f33109dec = L.popup({"maxWidth": "100%"});\n",
+ " var popup_a8279c810b07cdaed3c3054522e67735 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_e332b5992d884f0d75d111364d6bf58f = $(`<div id="html_e332b5992d884f0d75d111364d6bf58f" style="width: 100.0%; height: 100.0%;">Boulange</div>`)[0];\n",
- " popup_e2064da0051076278940f74f33109dec.setContent(html_e332b5992d884f0d75d111364d6bf58f);\n",
+ " var html_f102c17977fddcb3e340c216eba5f42e = $(`<div id="html_f102c17977fddcb3e340c216eba5f42e" style="width: 100.0%; height: 100.0%;">Boulange</div>`)[0];\n",
+ " popup_a8279c810b07cdaed3c3054522e67735.setContent(html_f102c17977fddcb3e340c216eba5f42e);\n",
" \n",
" \n",
"\n",
- " marker_fdc7f707caf359afb375919b9d67c2d2.bindPopup(popup_e2064da0051076278940f74f33109dec)\n",
+ " marker_415caa592d3abf043adf17d5d1deb787.bindPopup(popup_a8279c810b07cdaed3c3054522e67735)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_095c62830b29a8bda6784112fa47723d = L.marker(\n",
+ " var marker_330e3e5acdd7afdc447702bd843a0ae0 = L.marker(\n",
" [37.782872, -122.419023],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_ff232901c1530556b851ea0e117fd273 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_6be5217ce21c5918748f49f71c7f29c1 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_297bdb27303186f0d44518118046d5df = $(`<div id="html_297bdb27303186f0d44518118046d5df" style="width: 100.0%; height: 100.0%;">Brenda's French Soul Food</div>`)[0];\n",
- " popup_ff232901c1530556b851ea0e117fd273.setContent(html_297bdb27303186f0d44518118046d5df);\n",
+ " var html_c7efa4861df54d1f08d0279bae0ed4bf = $(`<div id="html_c7efa4861df54d1f08d0279bae0ed4bf" style="width: 100.0%; height: 100.0%;">Brenda's French Soul Food</div>`)[0];\n",
+ " popup_6be5217ce21c5918748f49f71c7f29c1.setContent(html_c7efa4861df54d1f08d0279bae0ed4bf);\n",
" \n",
" \n",
"\n",
- " marker_095c62830b29a8bda6784112fa47723d.bindPopup(popup_ff232901c1530556b851ea0e117fd273)\n",
+ " marker_330e3e5acdd7afdc447702bd843a0ae0.bindPopup(popup_6be5217ce21c5918748f49f71c7f29c1)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_3a3d54c6d5284c6265d1aca015d2cd6f = L.marker(\n",
+ " var marker_76b6fd54060ec2b73471e58efe7c9659 = L.marker(\n",
" [37.806507, -122.420664],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_6a7483f0fec981d6130a8845042d89d6 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_61ed0bb12e6d57c99314a434b9faa819 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_fde014712c582d28373ba39c25f7d7ac = $(`<div id="html_fde014712c582d28373ba39c25f7d7ac" style="width: 100.0%; height: 100.0%;">Buena Vista Cafe</div>`)[0];\n",
- " popup_6a7483f0fec981d6130a8845042d89d6.setContent(html_fde014712c582d28373ba39c25f7d7ac);\n",
+ " var html_2f0598d32a07b68cc54c98d40f8848ed = $(`<div id="html_2f0598d32a07b68cc54c98d40f8848ed" style="width: 100.0%; height: 100.0%;">Buena Vista Cafe</div>`)[0];\n",
+ " popup_61ed0bb12e6d57c99314a434b9faa819.setContent(html_2f0598d32a07b68cc54c98d40f8848ed);\n",
" \n",
" \n",
"\n",
- " marker_3a3d54c6d5284c6265d1aca015d2cd6f.bindPopup(popup_6a7483f0fec981d6130a8845042d89d6)\n",
+ " marker_76b6fd54060ec2b73471e58efe7c9659.bindPopup(popup_61ed0bb12e6d57c99314a434b9faa819)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_fc36812227631cbad4f844d431356e05 = L.marker(\n",
+ " var marker_b274624c14ff55baa762eecc825950f3 = L.marker(\n",
" [37.759918, -122.421312],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_a593d29e82a56f4401b9285f05aea74b = L.popup({"maxWidth": "100%"});\n",
+ " var popup_046077fdc71b6d3606da2fcc757a4c04 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_81021c6426b9f86dd8d31966771c50c0 = $(`<div id="html_81021c6426b9f86dd8d31966771c50c0" style="width: 100.0%; height: 100.0%;">Burger Joint</div>`)[0];\n",
- " popup_a593d29e82a56f4401b9285f05aea74b.setContent(html_81021c6426b9f86dd8d31966771c50c0);\n",
+ " var html_498d0ab5509122b187f9ea06764a490e = $(`<div id="html_498d0ab5509122b187f9ea06764a490e" style="width: 100.0%; height: 100.0%;">Burger Joint</div>`)[0];\n",
+ " popup_046077fdc71b6d3606da2fcc757a4c04.setContent(html_498d0ab5509122b187f9ea06764a490e);\n",
" \n",
" \n",
"\n",
- " marker_fc36812227631cbad4f844d431356e05.bindPopup(popup_a593d29e82a56f4401b9285f05aea74b)\n",
+ " marker_b274624c14ff55baa762eecc825950f3.bindPopup(popup_046077fdc71b6d3606da2fcc757a4c04)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_c7b877bafb735ec945d5c3ee6484be3a = L.marker(\n",
+ " var marker_650bf8239ff855105eab3d48f2f557c9 = L.marker(\n",
" [37.765881, -122.449727],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_f625cdf6897fed004751138914ee6f73 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_2bdde3e14839a4d413b81e9be4084d02 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_afacb62230f21dfe57bcf74e94c12711 = $(`<div id="html_afacb62230f21dfe57bcf74e94c12711" style="width: 100.0%; height: 100.0%;">Burgermeister</div>`)[0];\n",
- " popup_f625cdf6897fed004751138914ee6f73.setContent(html_afacb62230f21dfe57bcf74e94c12711);\n",
+ " var html_1fa1ec1ef9fa59a54ea89891d4ace82a = $(`<div id="html_1fa1ec1ef9fa59a54ea89891d4ace82a" style="width: 100.0%; height: 100.0%;">Burgermeister</div>`)[0];\n",
+ " popup_2bdde3e14839a4d413b81e9be4084d02.setContent(html_1fa1ec1ef9fa59a54ea89891d4ace82a);\n",
" \n",
" \n",
"\n",
- " marker_c7b877bafb735ec945d5c3ee6484be3a.bindPopup(popup_f625cdf6897fed004751138914ee6f73)\n",
+ " marker_650bf8239ff855105eab3d48f2f557c9.bindPopup(popup_2bdde3e14839a4d413b81e9be4084d02)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_376fcfabf2d881a8132160aed4ec1d0a = L.marker(\n",
+ " var marker_beb12af7fa76f8dc4b385501c87ea17c = L.marker(\n",
" [37.801659, -122.412302],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_2b946dbfb41d64ffa14311f11e67de3f = L.popup({"maxWidth": "100%"});\n",
+ " var popup_28deef82888e564801607e499d90c74b = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_c54355a307dfc215473a05ffe9e12c50 = $(`<div id="html_c54355a307dfc215473a05ffe9e12c50" style="width: 100.0%; height: 100.0%;">Burgermeister</div>`)[0];\n",
- " popup_2b946dbfb41d64ffa14311f11e67de3f.setContent(html_c54355a307dfc215473a05ffe9e12c50);\n",
+ " var html_077491d7e2bd9c51534aadbd66c44e67 = $(`<div id="html_077491d7e2bd9c51534aadbd66c44e67" style="width: 100.0%; height: 100.0%;">Burgermeister</div>`)[0];\n",
+ " popup_28deef82888e564801607e499d90c74b.setContent(html_077491d7e2bd9c51534aadbd66c44e67);\n",
" \n",
" \n",
"\n",
- " marker_376fcfabf2d881a8132160aed4ec1d0a.bindPopup(popup_2b946dbfb41d64ffa14311f11e67de3f)\n",
+ " marker_beb12af7fa76f8dc4b385501c87ea17c.bindPopup(popup_28deef82888e564801607e499d90c74b)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_8472cb863b3510ba91838ec8b2e9f1cd = L.marker(\n",
+ " var marker_ea1dba810dcfca0f4afabe606ce300ad = L.marker(\n",
" [37.768755, -122.42914],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_f2dd058f93922c792f4f24f3c6ff5436 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_e0f959eaf5f0e674e39a358be98d134d = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_0700df0d8cfd2c94daf785d4afb9607d = $(`<div id="html_0700df0d8cfd2c94daf785d4afb9607d" style="width: 100.0%; height: 100.0%;">Burgermeister</div>`)[0];\n",
- " popup_f2dd058f93922c792f4f24f3c6ff5436.setContent(html_0700df0d8cfd2c94daf785d4afb9607d);\n",
+ " var html_d3354ed5364bfd1c401ed9c0fd8a4a5e = $(`<div id="html_d3354ed5364bfd1c401ed9c0fd8a4a5e" style="width: 100.0%; height: 100.0%;">Burgermeister</div>`)[0];\n",
+ " popup_e0f959eaf5f0e674e39a358be98d134d.setContent(html_d3354ed5364bfd1c401ed9c0fd8a4a5e);\n",
" \n",
" \n",
"\n",
- " marker_8472cb863b3510ba91838ec8b2e9f1cd.bindPopup(popup_f2dd058f93922c792f4f24f3c6ff5436)\n",
+ " marker_ea1dba810dcfca0f4afabe606ce300ad.bindPopup(popup_e0f959eaf5f0e674e39a358be98d134d)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_17abb8426e35bef64f9c08561d64dcfa = L.marker(\n",
+ " var marker_445e927d57bd7470ef2f64ad421fdb0f = L.marker(\n",
" [37.798548, -122.407559],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_2132ffc221cd3ad687249b38959c72b6 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_4a14fc1e4903a895482073639aa0011e = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_878ed5392e22805ab22c72f20fd2c1bd = $(`<div id="html_878ed5392e22805ab22c72f20fd2c1bd" style="width: 100.0%; height: 100.0%;">Buster's</div>`)[0];\n",
- " popup_2132ffc221cd3ad687249b38959c72b6.setContent(html_878ed5392e22805ab22c72f20fd2c1bd);\n",
+ " var html_1866e430778d28a7e0868772f7866625 = $(`<div id="html_1866e430778d28a7e0868772f7866625" style="width: 100.0%; height: 100.0%;">Buster's</div>`)[0];\n",
+ " popup_4a14fc1e4903a895482073639aa0011e.setContent(html_1866e430778d28a7e0868772f7866625);\n",
" \n",
" \n",
"\n",
- " marker_17abb8426e35bef64f9c08561d64dcfa.bindPopup(popup_2132ffc221cd3ad687249b38959c72b6)\n",
+ " marker_445e927d57bd7470ef2f64ad421fdb0f.bindPopup(popup_4a14fc1e4903a895482073639aa0011e)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_0fcaf65db2ef80012a025260fc4dd67e = L.marker(\n",
+ " var marker_bdcda0723a069de993e79ef9ed1673bf = L.marker(\n",
" [37.806757, -122.405231],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_48265b9439221d5c8b140a524abf9c0c = L.popup({"maxWidth": "100%"});\n",
+ " var popup_5cc112e1ffc4c3c6fa0d91fb920d8a7d = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_1f10bbefff134c4d07b3d8de305bca50 = $(`<div id="html_1f10bbefff134c4d07b3d8de305bca50" style="width: 100.0%; height: 100.0%;">Butterfly</div>`)[0];\n",
- " popup_48265b9439221d5c8b140a524abf9c0c.setContent(html_1f10bbefff134c4d07b3d8de305bca50);\n",
+ " var html_58d66a23df2e93e2717687bb03cf0425 = $(`<div id="html_58d66a23df2e93e2717687bb03cf0425" style="width: 100.0%; height: 100.0%;">Butterfly</div>`)[0];\n",
+ " popup_5cc112e1ffc4c3c6fa0d91fb920d8a7d.setContent(html_58d66a23df2e93e2717687bb03cf0425);\n",
" \n",
" \n",
"\n",
- " marker_0fcaf65db2ef80012a025260fc4dd67e.bindPopup(popup_48265b9439221d5c8b140a524abf9c0c)\n",
+ " marker_bdcda0723a069de993e79ef9ed1673bf.bindPopup(popup_5cc112e1ffc4c3c6fa0d91fb920d8a7d)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_888b1bf328d8a18fc85554a6a26f4762 = L.marker(\n",
+ " var marker_077300c1450ef781150c85bb3cf35cfd = L.marker(\n",
" [37.771303, -122.430158],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_242455024cf7f2741f454923882b0781 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_3016616990caa771d858bda46629543d = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_f35e215808e1b1b50c9656449012326c = $(`<div id="html_f35e215808e1b1b50c9656449012326c" style="width: 100.0%; height: 100.0%;">Cafe Du Soleil</div>`)[0];\n",
- " popup_242455024cf7f2741f454923882b0781.setContent(html_f35e215808e1b1b50c9656449012326c);\n",
+ " var html_7b80a9754dc702ca977afcb4bbf4931e = $(`<div id="html_7b80a9754dc702ca977afcb4bbf4931e" style="width: 100.0%; height: 100.0%;">Cafe Du Soleil</div>`)[0];\n",
+ " popup_3016616990caa771d858bda46629543d.setContent(html_7b80a9754dc702ca977afcb4bbf4931e);\n",
" \n",
" \n",
"\n",
- " marker_888b1bf328d8a18fc85554a6a26f4762.bindPopup(popup_242455024cf7f2741f454923882b0781)\n",
+ " marker_077300c1450ef781150c85bb3cf35cfd.bindPopup(popup_3016616990caa771d858bda46629543d)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_f89c601e1a8afe76f9753671da940b29 = L.marker(\n",
+ " var marker_efb839bcb3cd4ef1f1a3d81229671c27 = L.marker(\n",
" [37.764634, -122.432936],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_a91d5f96c49ae2347de7df293389d6a5 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_ee20dc976ae871d1f3c4950506779035 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_ac36a0158014806bc020172f8e3ec915 = $(`<div id="html_ac36a0158014806bc020172f8e3ec915" style="width: 100.0%; height: 100.0%;">Cafe Flore</div>`)[0];\n",
- " popup_a91d5f96c49ae2347de7df293389d6a5.setContent(html_ac36a0158014806bc020172f8e3ec915);\n",
+ " var html_a5c927790a0d1eee046316a7a15a27cb = $(`<div id="html_a5c927790a0d1eee046316a7a15a27cb" style="width: 100.0%; height: 100.0%;">Cafe Flore</div>`)[0];\n",
+ " popup_ee20dc976ae871d1f3c4950506779035.setContent(html_a5c927790a0d1eee046316a7a15a27cb);\n",
" \n",
" \n",
"\n",
- " marker_f89c601e1a8afe76f9753671da940b29.bindPopup(popup_a91d5f96c49ae2347de7df293389d6a5)\n",
+ " marker_efb839bcb3cd4ef1f1a3d81229671c27.bindPopup(popup_ee20dc976ae871d1f3c4950506779035)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_17c45ba400bbe0a48aee2975a41f67a2 = L.marker(\n",
+ " var marker_09d2c42dd4b8ba11a88013df627e8f72 = L.marker(\n",
" [37.768642, -122.414821],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_2289d02d114a78db2bb420e9677b5fac = L.popup({"maxWidth": "100%"});\n",
+ " var popup_6c768d70b8d5d4174dae927bdb5b9bca = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_381bb6d31f687996a8cbe1b6569dd22e = $(`<div id="html_381bb6d31f687996a8cbe1b6569dd22e" style="width: 100.0%; height: 100.0%;">Cafe Zazo</div>`)[0];\n",
- " popup_2289d02d114a78db2bb420e9677b5fac.setContent(html_381bb6d31f687996a8cbe1b6569dd22e);\n",
+ " var html_3788848287b2b3efd1ac995d121f04f5 = $(`<div id="html_3788848287b2b3efd1ac995d121f04f5" style="width: 100.0%; height: 100.0%;">Cafe Zazo</div>`)[0];\n",
+ " popup_6c768d70b8d5d4174dae927bdb5b9bca.setContent(html_3788848287b2b3efd1ac995d121f04f5);\n",
" \n",
" \n",
"\n",
- " marker_17c45ba400bbe0a48aee2975a41f67a2.bindPopup(popup_2289d02d114a78db2bb420e9677b5fac)\n",
+ " marker_09d2c42dd4b8ba11a88013df627e8f72.bindPopup(popup_6c768d70b8d5d4174dae927bdb5b9bca)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_2c258820e7a579b1bc7b398e092bcf86 = L.marker(\n",
+ " var marker_3d4adf64755187748a735c5eb7d2fbc6 = L.marker(\n",
" [37.790057, -122.401199],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_cf90190c7cf3ee629d4c0edecabfcd3c = L.popup({"maxWidth": "100%"});\n",
+ " var popup_2eebc15620ef80040f93d7becdc5eda1 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_b15037dc9456374adbd1620f3b667116 = $(`<div id="html_b15037dc9456374adbd1620f3b667116" style="width: 100.0%; height: 100.0%;">Caffe Bianco</div>`)[0];\n",
- " popup_cf90190c7cf3ee629d4c0edecabfcd3c.setContent(html_b15037dc9456374adbd1620f3b667116);\n",
+ " var html_75da5e456be76d9ed5a5540bd81662cf = $(`<div id="html_75da5e456be76d9ed5a5540bd81662cf" style="width: 100.0%; height: 100.0%;">Caffe Bianco</div>`)[0];\n",
+ " popup_2eebc15620ef80040f93d7becdc5eda1.setContent(html_75da5e456be76d9ed5a5540bd81662cf);\n",
" \n",
" \n",
"\n",
- " marker_2c258820e7a579b1bc7b398e092bcf86.bindPopup(popup_cf90190c7cf3ee629d4c0edecabfcd3c)\n",
+ " marker_3d4adf64755187748a735c5eb7d2fbc6.bindPopup(popup_2eebc15620ef80040f93d7becdc5eda1)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_f61a17773e51834c839cbd727e6a3d84 = L.marker(\n",
+ " var marker_9840129955ce8ace8de32f5554a0187e = L.marker(\n",
" [37.807697, -122.42054],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_ed5055b7a5c25b077559fe6aa460f01c = L.popup({"maxWidth": "100%"});\n",
+ " var popup_5da2920fa30425d9e7b30b449acdf1eb = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_ddc1d6f0eb50a580ab0c3b35f1ebda75 = $(`<div id="html_ddc1d6f0eb50a580ab0c3b35f1ebda75" style="width: 100.0%; height: 100.0%;">Capurro's</div>`)[0];\n",
- " popup_ed5055b7a5c25b077559fe6aa460f01c.setContent(html_ddc1d6f0eb50a580ab0c3b35f1ebda75);\n",
+ " var html_2ddb57e34ee1824bca711fd3bbd018a8 = $(`<div id="html_2ddb57e34ee1824bca711fd3bbd018a8" style="width: 100.0%; height: 100.0%;">Capurro's</div>`)[0];\n",
+ " popup_5da2920fa30425d9e7b30b449acdf1eb.setContent(html_2ddb57e34ee1824bca711fd3bbd018a8);\n",
" \n",
" \n",
"\n",
- " marker_f61a17773e51834c839cbd727e6a3d84.bindPopup(popup_ed5055b7a5c25b077559fe6aa460f01c)\n",
+ " marker_9840129955ce8ace8de32f5554a0187e.bindPopup(popup_5da2920fa30425d9e7b30b449acdf1eb)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_2135bf2fe8ab4f89a86dd3514b93c6c7 = L.marker(\n",
+ " var marker_a2e7c0d6e4b3ab2c30a8a4dcc3d6ad2f = L.marker(\n",
" [37.788963, -122.410344],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_d6e95d8a97ce01eb8dcf87ac65c2ab59 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_03a9c3e53d7093e11a67a2fbe8ff2cc9 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_4e3b3daaa199099beef4a55141605d87 = $(`<div id="html_4e3b3daaa199099beef4a55141605d87" style="width: 100.0%; height: 100.0%;">Cesario's</div>`)[0];\n",
- " popup_d6e95d8a97ce01eb8dcf87ac65c2ab59.setContent(html_4e3b3daaa199099beef4a55141605d87);\n",
+ " var html_f2630d5018200adf6209028e87fe54da = $(`<div id="html_f2630d5018200adf6209028e87fe54da" style="width: 100.0%; height: 100.0%;">Cesario's</div>`)[0];\n",
+ " popup_03a9c3e53d7093e11a67a2fbe8ff2cc9.setContent(html_f2630d5018200adf6209028e87fe54da);\n",
" \n",
" \n",
"\n",
- " marker_2135bf2fe8ab4f89a86dd3514b93c6c7.bindPopup(popup_d6e95d8a97ce01eb8dcf87ac65c2ab59)\n",
+ " marker_a2e7c0d6e4b3ab2c30a8a4dcc3d6ad2f.bindPopup(popup_03a9c3e53d7093e11a67a2fbe8ff2cc9)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_b62763a84e56238239b9897305d048e0 = L.marker(\n",
+ " var marker_0a894cf0e6d03b02151cecaa77aec2ec = L.marker(\n",
" [37.762492, -122.397051],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_906602e1221d05826a5529018b829aa2 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_21e7613163b8c53bf0fd9fcb9ed161f6 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_c1244cc27da4c03006a55349277e5cbf = $(`<div id="html_c1244cc27da4c03006a55349277e5cbf" style="width: 100.0%; height: 100.0%;">Chez Maman</div>`)[0];\n",
- " popup_906602e1221d05826a5529018b829aa2.setContent(html_c1244cc27da4c03006a55349277e5cbf);\n",
+ " var html_374a184644b6a505ccf02b498f0be181 = $(`<div id="html_374a184644b6a505ccf02b498f0be181" style="width: 100.0%; height: 100.0%;">Chez Maman</div>`)[0];\n",
+ " popup_21e7613163b8c53bf0fd9fcb9ed161f6.setContent(html_374a184644b6a505ccf02b498f0be181);\n",
" \n",
" \n",
"\n",
- " marker_b62763a84e56238239b9897305d048e0.bindPopup(popup_906602e1221d05826a5529018b829aa2)\n",
+ " marker_0a894cf0e6d03b02151cecaa77aec2ec.bindPopup(popup_21e7613163b8c53bf0fd9fcb9ed161f6)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_bb9a4014c89857de925d6df8748fb065 = L.marker(\n",
+ " var marker_6d29a38abe9290a50cd45439a858ad0a = L.marker(\n",
" [37.787086, -122.400212],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_a7603f3972f811a65b891f1b68cf1773 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_8c0a2ef56983b45f58897c7d1bc78f65 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_78347a059ec7d0f6fab2c48b173e3666 = $(`<div id="html_78347a059ec7d0f6fab2c48b173e3666" style="width: 100.0%; height: 100.0%;">Chipotle Mexican Grill</div>`)[0];\n",
- " popup_a7603f3972f811a65b891f1b68cf1773.setContent(html_78347a059ec7d0f6fab2c48b173e3666);\n",
+ " var html_274702a50ce522adc19b05a4df5260a4 = $(`<div id="html_274702a50ce522adc19b05a4df5260a4" style="width: 100.0%; height: 100.0%;">Chipotle Mexican Grill</div>`)[0];\n",
+ " popup_8c0a2ef56983b45f58897c7d1bc78f65.setContent(html_274702a50ce522adc19b05a4df5260a4);\n",
" \n",
" \n",
"\n",
- " marker_bb9a4014c89857de925d6df8748fb065.bindPopup(popup_a7603f3972f811a65b891f1b68cf1773)\n",
+ " marker_6d29a38abe9290a50cd45439a858ad0a.bindPopup(popup_8c0a2ef56983b45f58897c7d1bc78f65)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_4e81611b825a8710a3856d2413db997d = L.marker(\n",
+ " var marker_80fd240fe6faa9356ed2919f117c18a3 = L.marker(\n",
" [37.786022, -122.41311],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_f4671bd8c66fee30226f991079acae5e = L.popup({"maxWidth": "100%"});\n",
+ " var popup_6a1c1eb24ecd953c1505e6eee14ea1c6 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_e7adc779dba51ba99eec8a0f27e7f152 = $(`<div id="html_e7adc779dba51ba99eec8a0f27e7f152" style="width: 100.0%; height: 100.0%;">Chutney Restaurant</div>`)[0];\n",
- " popup_f4671bd8c66fee30226f991079acae5e.setContent(html_e7adc779dba51ba99eec8a0f27e7f152);\n",
+ " var html_82dfb822f7378126bcbf7691a6be2565 = $(`<div id="html_82dfb822f7378126bcbf7691a6be2565" style="width: 100.0%; height: 100.0%;">Chutney Restaurant</div>`)[0];\n",
+ " popup_6a1c1eb24ecd953c1505e6eee14ea1c6.setContent(html_82dfb822f7378126bcbf7691a6be2565);\n",
" \n",
" \n",
"\n",
- " marker_4e81611b825a8710a3856d2413db997d.bindPopup(popup_f4671bd8c66fee30226f991079acae5e)\n",
+ " marker_80fd240fe6faa9356ed2919f117c18a3.bindPopup(popup_6a1c1eb24ecd953c1505e6eee14ea1c6)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_74c23894dd05ff9762a0ed81400d6434 = L.marker(\n",
+ " var marker_cd3e64290ec149aa286859372957c3cd = L.marker(\n",
" [37.807879, -122.419247],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_1b76f8fe53b8c8c1a0336bb878d6e79b = L.popup({"maxWidth": "100%"});\n",
+ " var popup_47f5d386c95cc03efa984e5b0f539870 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_812282f0de64d695481d1e79263a48c0 = $(`<div id="html_812282f0de64d695481d1e79263a48c0" style="width: 100.0%; height: 100.0%;">Cioppino's</div>`)[0];\n",
- " popup_1b76f8fe53b8c8c1a0336bb878d6e79b.setContent(html_812282f0de64d695481d1e79263a48c0);\n",
+ " var html_0acbda86392588e1ee062bb783832928 = $(`<div id="html_0acbda86392588e1ee062bb783832928" style="width: 100.0%; height: 100.0%;">Cioppino's</div>`)[0];\n",
+ " popup_47f5d386c95cc03efa984e5b0f539870.setContent(html_0acbda86392588e1ee062bb783832928);\n",
" \n",
" \n",
"\n",
- " marker_74c23894dd05ff9762a0ed81400d6434.bindPopup(popup_1b76f8fe53b8c8c1a0336bb878d6e79b)\n",
+ " marker_cd3e64290ec149aa286859372957c3cd.bindPopup(popup_47f5d386c95cc03efa984e5b0f539870)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_273a9fe1535f095d4b6a536233a037b8 = L.marker(\n",
+ " var marker_b21deb1fff6e8a105087b9bc61e1b4ed = L.marker(\n",
" [37.778552, -122.513899],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_203ed86dee3204b6ef8b3129b466d59e = L.popup({"maxWidth": "100%"});\n",
+ " var popup_afe9df9d1e2223c70d4a417dc8ba327d = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_406734ad72697fd568b50cc8c2e084c0 = $(`<div id="html_406734ad72697fd568b50cc8c2e084c0" style="width: 100.0%; height: 100.0%;">Cliff House</div>`)[0];\n",
- " popup_203ed86dee3204b6ef8b3129b466d59e.setContent(html_406734ad72697fd568b50cc8c2e084c0);\n",
+ " var html_0d1d5ba624b5d6dc286db05f96ff726c = $(`<div id="html_0d1d5ba624b5d6dc286db05f96ff726c" style="width: 100.0%; height: 100.0%;">Cliff House</div>`)[0];\n",
+ " popup_afe9df9d1e2223c70d4a417dc8ba327d.setContent(html_0d1d5ba624b5d6dc286db05f96ff726c);\n",
" \n",
" \n",
"\n",
- " marker_273a9fe1535f095d4b6a536233a037b8.bindPopup(popup_203ed86dee3204b6ef8b3129b466d59e)\n",
+ " marker_b21deb1fff6e8a105087b9bc61e1b4ed.bindPopup(popup_afe9df9d1e2223c70d4a417dc8ba327d)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_dcada5cf25d0462acaf6683155c95f7f = L.marker(\n",
+ " var marker_b1e314e7768d30cd8be704a74ad8611a = L.marker(\n",
" [37.787147, -122.410492],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_da8b1fbed62e1306a704b1c60a60dca3 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_6b1e0c8291e3cca2a6255ccb9f978381 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_9342d10d396be0fc08170c11a1991371 = $(`<div id="html_9342d10d396be0fc08170c11a1991371" style="width: 100.0%; height: 100.0%;">Colibri Mexican Bistro</div>`)[0];\n",
- " popup_da8b1fbed62e1306a704b1c60a60dca3.setContent(html_9342d10d396be0fc08170c11a1991371);\n",
+ " var html_5d12f8bdd3d5757e2fdda1d8a15e815f = $(`<div id="html_5d12f8bdd3d5757e2fdda1d8a15e815f" style="width: 100.0%; height: 100.0%;">Colibri Mexican Bistro</div>`)[0];\n",
+ " popup_6b1e0c8291e3cca2a6255ccb9f978381.setContent(html_5d12f8bdd3d5757e2fdda1d8a15e815f);\n",
" \n",
" \n",
"\n",
- " marker_dcada5cf25d0462acaf6683155c95f7f.bindPopup(popup_da8b1fbed62e1306a704b1c60a60dca3)\n",
+ " marker_b1e314e7768d30cd8be704a74ad8611a.bindPopup(popup_6b1e0c8291e3cca2a6255ccb9f978381)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_31c84214ceb360db9070d3c7c23e1e4a = L.marker(\n",
+ " var marker_f5fd8eb90deaca304d211340f79736bd = L.marker(\n",
" [37.797325, -122.403621],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_e9698697761baf17dfd3c6ac2d52e9b4 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_18d0009708f67f988ec694b78349c3e3 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_2db321b59ea01ae96655c59645dd4dd2 = $(`<div id="html_2db321b59ea01ae96655c59645dd4dd2" style="width: 100.0%; height: 100.0%;">Cotogna</div>`)[0];\n",
- " popup_e9698697761baf17dfd3c6ac2d52e9b4.setContent(html_2db321b59ea01ae96655c59645dd4dd2);\n",
+ " var html_4522104c6c194a7cabcb8b96ab003be1 = $(`<div id="html_4522104c6c194a7cabcb8b96ab003be1" style="width: 100.0%; height: 100.0%;">Cotogna</div>`)[0];\n",
+ " popup_18d0009708f67f988ec694b78349c3e3.setContent(html_4522104c6c194a7cabcb8b96ab003be1);\n",
" \n",
" \n",
"\n",
- " marker_31c84214ceb360db9070d3c7c23e1e4a.bindPopup(popup_e9698697761baf17dfd3c6ac2d52e9b4)\n",
+ " marker_f5fd8eb90deaca304d211340f79736bd.bindPopup(popup_18d0009708f67f988ec694b78349c3e3)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_9e664fe823609bf08e3a70675f8bb1d4 = L.marker(\n",
+ " var marker_32f1f793b5e970aedf9c4e0f192eda79 = L.marker(\n",
" [37.761957, -122.435213],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_10cdec1b851924860d1f700e55e60b38 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_6ab721071b04982bb516fdb984d92488 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_c0a5bbee904cd0ea77f4bd4e0796d696 = $(`<div id="html_c0a5bbee904cd0ea77f4bd4e0796d696" style="width: 100.0%; height: 100.0%;">Cove Cafe</div>`)[0];\n",
- " popup_10cdec1b851924860d1f700e55e60b38.setContent(html_c0a5bbee904cd0ea77f4bd4e0796d696);\n",
+ " var html_bd4436abda026c4904770609da44fdd2 = $(`<div id="html_bd4436abda026c4904770609da44fdd2" style="width: 100.0%; height: 100.0%;">Cove Cafe</div>`)[0];\n",
+ " popup_6ab721071b04982bb516fdb984d92488.setContent(html_bd4436abda026c4904770609da44fdd2);\n",
" \n",
" \n",
"\n",
- " marker_9e664fe823609bf08e3a70675f8bb1d4.bindPopup(popup_10cdec1b851924860d1f700e55e60b38)\n",
+ " marker_32f1f793b5e970aedf9c4e0f192eda79.bindPopup(popup_6ab721071b04982bb516fdb984d92488)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_7cea4d394d767937dea2545439b51c49 = L.marker(\n",
+ " var marker_6aef95b2619d00e9a3aa614f1710c254 = L.marker(\n",
" [37.783018, -122.388985],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_f14b6eb32e5e549d81f04e318341789a = L.popup({"maxWidth": "100%"});\n",
+ " var popup_6a57bf798cd9e5d5519cc95c86a9e710 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_4532fc12d9eca20c85690d9b55f8a05c = $(`<div id="html_4532fc12d9eca20c85690d9b55f8a05c" style="width: 100.0%; height: 100.0%;">Crossroads Cafe</div>`)[0];\n",
- " popup_f14b6eb32e5e549d81f04e318341789a.setContent(html_4532fc12d9eca20c85690d9b55f8a05c);\n",
+ " var html_d144946544be39559a31217ea8ae7c64 = $(`<div id="html_d144946544be39559a31217ea8ae7c64" style="width: 100.0%; height: 100.0%;">Crossroads Cafe</div>`)[0];\n",
+ " popup_6a57bf798cd9e5d5519cc95c86a9e710.setContent(html_d144946544be39559a31217ea8ae7c64);\n",
" \n",
" \n",
"\n",
- " marker_7cea4d394d767937dea2545439b51c49.bindPopup(popup_f14b6eb32e5e549d81f04e318341789a)\n",
+ " marker_6aef95b2619d00e9a3aa614f1710c254.bindPopup(popup_6a57bf798cd9e5d5519cc95c86a9e710)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_ced773246c40d4fb4f94af940e58c3ec = L.marker(\n",
+ " var marker_50341af73ca470e6cac5079ef1de7bbe = L.marker(\n",
" [37.790353, -122.420743],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_dae8651d500573d387ddbce432778f0f = L.popup({"maxWidth": "100%"});\n",
+ " var popup_ae1cb681b15da8ccc80e0eef64c3a099 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_d4b2405f0312b07a46021285dc6274d8 = $(`<div id="html_d4b2405f0312b07a46021285dc6274d8" style="width: 100.0%; height: 100.0%;">Crustacean Restaurant</div>`)[0];\n",
- " popup_dae8651d500573d387ddbce432778f0f.setContent(html_d4b2405f0312b07a46021285dc6274d8);\n",
+ " var html_63a0b450f21c4e7236431cada289315f = $(`<div id="html_63a0b450f21c4e7236431cada289315f" style="width: 100.0%; height: 100.0%;">Crustacean Restaurant</div>`)[0];\n",
+ " popup_ae1cb681b15da8ccc80e0eef64c3a099.setContent(html_63a0b450f21c4e7236431cada289315f);\n",
" \n",
" \n",
"\n",
- " marker_ced773246c40d4fb4f94af940e58c3ec.bindPopup(popup_dae8651d500573d387ddbce432778f0f)\n",
+ " marker_50341af73ca470e6cac5079ef1de7bbe.bindPopup(popup_ae1cb681b15da8ccc80e0eef64c3a099)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_f1fac0647311c30c982b2ac7302509d5 = L.marker(\n",
+ " var marker_138e8493a572a8cb5cabddaa63a906f3 = L.marker(\n",
" [37.784486, -122.388432],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_1cbd7674a35f9fdb701824ad2c274499 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_304ea08005f90253a9342926ef150e63 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_15b71f1fa375cba8ef054cd4cde2a4d7 = $(`<div id="html_15b71f1fa375cba8ef054cd4cde2a4d7" style="width: 100.0%; height: 100.0%;">Delancey Street Restaurant</div>`)[0];\n",
- " popup_1cbd7674a35f9fdb701824ad2c274499.setContent(html_15b71f1fa375cba8ef054cd4cde2a4d7);\n",
+ " var html_b8b2acde9d525c1ba7d802a8f5629754 = $(`<div id="html_b8b2acde9d525c1ba7d802a8f5629754" style="width: 100.0%; height: 100.0%;">Delancey Street Restaurant</div>`)[0];\n",
+ " popup_304ea08005f90253a9342926ef150e63.setContent(html_b8b2acde9d525c1ba7d802a8f5629754);\n",
" \n",
" \n",
"\n",
- " marker_f1fac0647311c30c982b2ac7302509d5.bindPopup(popup_1cbd7674a35f9fdb701824ad2c274499)\n",
+ " marker_138e8493a572a8cb5cabddaa63a906f3.bindPopup(popup_304ea08005f90253a9342926ef150e63)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_ca4fba8f5fb4242db1ef3769107f7415 = L.marker(\n",
+ " var marker_114a35fe8127fefe692e48292a8836f1 = L.marker(\n",
" [37.761467, -122.424315],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_2c17400ffa0b0b476d34ab52b7a7cd20 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_56789a5a69bd16de481ec8e66c6ae2ec = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_aaed2e027544d722067cc1647b9a4020 = $(`<div id="html_aaed2e027544d722067cc1647b9a4020" style="width: 100.0%; height: 100.0%;">Delfina Restaurant</div>`)[0];\n",
- " popup_2c17400ffa0b0b476d34ab52b7a7cd20.setContent(html_aaed2e027544d722067cc1647b9a4020);\n",
+ " var html_51050643aaad5e20c5ba846f160783c5 = $(`<div id="html_51050643aaad5e20c5ba846f160783c5" style="width: 100.0%; height: 100.0%;">Delfina Restaurant</div>`)[0];\n",
+ " popup_56789a5a69bd16de481ec8e66c6ae2ec.setContent(html_51050643aaad5e20c5ba846f160783c5);\n",
" \n",
" \n",
"\n",
- " marker_ca4fba8f5fb4242db1ef3769107f7415.bindPopup(popup_2c17400ffa0b0b476d34ab52b7a7cd20)\n",
+ " marker_114a35fe8127fefe692e48292a8836f1.bindPopup(popup_56789a5a69bd16de481ec8e66c6ae2ec)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_d072fe65cdd4394cd1d6c46ae9feac7d = L.marker(\n",
+ " var marker_4fd4240dd8b100dc8a4876acd7c5ebd8 = L.marker(\n",
" [37.771475, -122.42375],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_4755e9238e1cd8570a1ccf5568763461 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_6aa962953ec433f37551822e8a485f95 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_d49174cbb699e07dc81efda3e7898020 = $(`<div id="html_d49174cbb699e07dc81efda3e7898020" style="width: 100.0%; height: 100.0%;">Destino</div>`)[0];\n",
- " popup_4755e9238e1cd8570a1ccf5568763461.setContent(html_d49174cbb699e07dc81efda3e7898020);\n",
+ " var html_a05d7bc00a28428b540d95ad8e14cd6a = $(`<div id="html_a05d7bc00a28428b540d95ad8e14cd6a" style="width: 100.0%; height: 100.0%;">Destino</div>`)[0];\n",
+ " popup_6aa962953ec433f37551822e8a485f95.setContent(html_a05d7bc00a28428b540d95ad8e14cd6a);\n",
" \n",
" \n",
"\n",
- " marker_d072fe65cdd4394cd1d6c46ae9feac7d.bindPopup(popup_4755e9238e1cd8570a1ccf5568763461)\n",
+ " marker_4fd4240dd8b100dc8a4876acd7c5ebd8.bindPopup(popup_6aa962953ec433f37551822e8a485f95)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_abc97ebbaad39752648c8804efd13672 = L.marker(\n",
+ " var marker_3f48edf321b5076c822d88c5bf254038 = L.marker(\n",
" [37.800682, -122.407872],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_a44aa6452f35212cedd566771e6d4137 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_4df55f45cccca7f3f064acb34c41499a = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_47d0d3208becaa3f4598b3cd3d7842a8 = $(`<div id="html_47d0d3208becaa3f4598b3cd3d7842a8" style="width: 100.0%; height: 100.0%;">Don Pisto's</div>`)[0];\n",
- " popup_a44aa6452f35212cedd566771e6d4137.setContent(html_47d0d3208becaa3f4598b3cd3d7842a8);\n",
+ " var html_486e8c50c62d05a37315186a66ae2189 = $(`<div id="html_486e8c50c62d05a37315186a66ae2189" style="width: 100.0%; height: 100.0%;">Don Pisto's</div>`)[0];\n",
+ " popup_4df55f45cccca7f3f064acb34c41499a.setContent(html_486e8c50c62d05a37315186a66ae2189);\n",
" \n",
" \n",
"\n",
- " marker_abc97ebbaad39752648c8804efd13672.bindPopup(popup_a44aa6452f35212cedd566771e6d4137)\n",
+ " marker_3f48edf321b5076c822d88c5bf254038.bindPopup(popup_4df55f45cccca7f3f064acb34c41499a)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_d33df46348afdb78ca0ac1ff5e1dd811 = L.marker(\n",
+ " var marker_dbd4ee7b4fa2884a7d0bd315361bf5f9 = L.marker(\n",
" [37.757075, -122.421021],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_4c5ea762da5359960143ec9e9bf8ee84 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_3bf22030b4b590075d082bcb549182f9 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_4ec8d149ed255f46d2de83cec48992d0 = $(`<div id="html_4ec8d149ed255f46d2de83cec48992d0" style="width: 100.0%; height: 100.0%;">Dosa</div>`)[0];\n",
- " popup_4c5ea762da5359960143ec9e9bf8ee84.setContent(html_4ec8d149ed255f46d2de83cec48992d0);\n",
+ " var html_50853fd6c2a06263ab8d2268ad0f2652 = $(`<div id="html_50853fd6c2a06263ab8d2268ad0f2652" style="width: 100.0%; height: 100.0%;">Dosa</div>`)[0];\n",
+ " popup_3bf22030b4b590075d082bcb549182f9.setContent(html_50853fd6c2a06263ab8d2268ad0f2652);\n",
" \n",
" \n",
"\n",
- " marker_d33df46348afdb78ca0ac1ff5e1dd811.bindPopup(popup_4c5ea762da5359960143ec9e9bf8ee84)\n",
+ " marker_dbd4ee7b4fa2884a7d0bd315361bf5f9.bindPopup(popup_3bf22030b4b590075d082bcb549182f9)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_64e799a74f2614fa6d45b577f27aaf05 = L.marker(\n",
+ " var marker_6d1a4dded4b113e52b06e5292ab68fed = L.marker(\n",
" [37.785293, -122.432935],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_134742d6a423b75e339d501250b86fad = L.popup({"maxWidth": "100%"});\n",
+ " var popup_510aaa995511d22cf751bae7420fdbb7 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_01c5b548e925dd7fa68d8a03af8b39b7 = $(`<div id="html_01c5b548e925dd7fa68d8a03af8b39b7" style="width: 100.0%; height: 100.0%;">DOSA on Fillmore</div>`)[0];\n",
- " popup_134742d6a423b75e339d501250b86fad.setContent(html_01c5b548e925dd7fa68d8a03af8b39b7);\n",
+ " var html_a039fb9514ac8956f605e3169a95a70f = $(`<div id="html_a039fb9514ac8956f605e3169a95a70f" style="width: 100.0%; height: 100.0%;">DOSA on Fillmore</div>`)[0];\n",
+ " popup_510aaa995511d22cf751bae7420fdbb7.setContent(html_a039fb9514ac8956f605e3169a95a70f);\n",
" \n",
" \n",
"\n",
- " marker_64e799a74f2614fa6d45b577f27aaf05.bindPopup(popup_134742d6a423b75e339d501250b86fad)\n",
+ " marker_6d1a4dded4b113e52b06e5292ab68fed.bindPopup(popup_510aaa995511d22cf751bae7420fdbb7)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_69ac04a4faad540f68bea98348780d4c = L.marker(\n",
+ " var marker_69bbd051abfa32e384a8c441ce18ad18 = L.marker(\n",
" [37.777531, -122.424033],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_0d1afa7815b810d036f008e17ff20f9d = L.popup({"maxWidth": "100%"});\n",
+ " var popup_20c1c2516b542c5688bc01ccab8b8459 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_a9f33803b000e4f9549f6e13bf1896f0 = $(`<div id="html_a9f33803b000e4f9549f6e13bf1896f0" style="width: 100.0%; height: 100.0%;">Double Decker</div>`)[0];\n",
- " popup_0d1afa7815b810d036f008e17ff20f9d.setContent(html_a9f33803b000e4f9549f6e13bf1896f0);\n",
+ " var html_513d66bc77d549c65805c1aa3192f6a2 = $(`<div id="html_513d66bc77d549c65805c1aa3192f6a2" style="width: 100.0%; height: 100.0%;">Double Decker</div>`)[0];\n",
+ " popup_20c1c2516b542c5688bc01ccab8b8459.setContent(html_513d66bc77d549c65805c1aa3192f6a2);\n",
" \n",
" \n",
"\n",
- " marker_69ac04a4faad540f68bea98348780d4c.bindPopup(popup_0d1afa7815b810d036f008e17ff20f9d)\n",
+ " marker_69bbd051abfa32e384a8c441ce18ad18.bindPopup(popup_20c1c2516b542c5688bc01ccab8b8459)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_4b9dee59124fd6a702667099ab78f00e = L.marker(\n",
+ " var marker_3cd742934d3eb5924d9596d319e23213 = L.marker(\n",
" [37.783675, -122.409249],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_b63ce101975f88f34de11d4a48bfe116 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_be2411e275a065cb5a9c6f5147786e49 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_edd1c89fc20630eeeb74ae5a24abc7a8 = $(`<div id="html_edd1c89fc20630eeeb74ae5a24abc7a8" style="width: 100.0%; height: 100.0%;">Farmerbrown</div>`)[0];\n",
- " popup_b63ce101975f88f34de11d4a48bfe116.setContent(html_edd1c89fc20630eeeb74ae5a24abc7a8);\n",
+ " var html_374ea775aa4a9c2f3e82d3bc615aa315 = $(`<div id="html_374ea775aa4a9c2f3e82d3bc615aa315" style="width: 100.0%; height: 100.0%;">Farmerbrown</div>`)[0];\n",
+ " popup_be2411e275a065cb5a9c6f5147786e49.setContent(html_374ea775aa4a9c2f3e82d3bc615aa315);\n",
" \n",
" \n",
"\n",
- " marker_4b9dee59124fd6a702667099ab78f00e.bindPopup(popup_b63ce101975f88f34de11d4a48bfe116)\n",
+ " marker_3cd742934d3eb5924d9596d319e23213.bindPopup(popup_be2411e275a065cb5a9c6f5147786e49)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_02e5ded566fa0acefddc08486edd914c = L.marker(\n",
+ " var marker_6aec3dbf6f434ec3fc157dd7b52fccc2 = L.marker(\n",
" [37.749033, -122.427052],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_8a978e54a7158ca061c5c80a42be1db2 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_649fe618418b8f7a5b0f9af28de88cfe = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_cfd5cf78e5d1c8fdd23d2b9e4260faf3 = $(`<div id="html_cfd5cf78e5d1c8fdd23d2b9e4260faf3" style="width: 100.0%; height: 100.0%;">Fattoush Restaurant</div>`)[0];\n",
- " popup_8a978e54a7158ca061c5c80a42be1db2.setContent(html_cfd5cf78e5d1c8fdd23d2b9e4260faf3);\n",
+ " var html_abf3b90af2a895e3f48194324e09a222 = $(`<div id="html_abf3b90af2a895e3f48194324e09a222" style="width: 100.0%; height: 100.0%;">Fattoush Restaurant</div>`)[0];\n",
+ " popup_649fe618418b8f7a5b0f9af28de88cfe.setContent(html_abf3b90af2a895e3f48194324e09a222);\n",
" \n",
" \n",
"\n",
- " marker_02e5ded566fa0acefddc08486edd914c.bindPopup(popup_8a978e54a7158ca061c5c80a42be1db2)\n",
+ " marker_6aec3dbf6f434ec3fc157dd7b52fccc2.bindPopup(popup_649fe618418b8f7a5b0f9af28de88cfe)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_3924da8a81558d1b33de13e9d1354bd3 = L.marker(\n",
+ " var marker_50f5fb4b39b030b79a279706886a025b = L.marker(\n",
" [37.785622, -122.411263],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_edc7edaf52a3bc56f80376318be8246e = L.popup({"maxWidth": "100%"});\n",
+ " var popup_1c34b381e3fa7adad1225447859eedc6 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_8531f95ca9a457a59e1d10907f66b1b4 = $(`<div id="html_8531f95ca9a457a59e1d10907f66b1b4" style="width: 100.0%; height: 100.0%;">Fish & Farm</div>`)[0];\n",
- " popup_edc7edaf52a3bc56f80376318be8246e.setContent(html_8531f95ca9a457a59e1d10907f66b1b4);\n",
+ " var html_506074d6df17c261d827c35be247cf37 = $(`<div id="html_506074d6df17c261d827c35be247cf37" style="width: 100.0%; height: 100.0%;">Fish & Farm</div>`)[0];\n",
+ " popup_1c34b381e3fa7adad1225447859eedc6.setContent(html_506074d6df17c261d827c35be247cf37);\n",
" \n",
" \n",
"\n",
- " marker_3924da8a81558d1b33de13e9d1354bd3.bindPopup(popup_edc7edaf52a3bc56f80376318be8246e)\n",
+ " marker_50f5fb4b39b030b79a279706886a025b.bindPopup(popup_1c34b381e3fa7adad1225447859eedc6)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_568c45430f01f1eef32a5cd2568456cb = L.marker(\n",
+ " var marker_356a192aebd86db4093ffeddd3edc4f1 = L.marker(\n",
" [37.790955, -122.404015],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_431e75e0290e99c35349be2e466f59b0 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_d08e685aacdbb3b91ae40bd003793a58 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_163ecf4d16864a287a009de4ed687f92 = $(`<div id="html_163ecf4d16864a287a009de4ed687f92" style="width: 100.0%; height: 100.0%;">Fleur De Sel</div>`)[0];\n",
- " popup_431e75e0290e99c35349be2e466f59b0.setContent(html_163ecf4d16864a287a009de4ed687f92);\n",
+ " var html_2a3dd02a408f54e26c6caef97e7b8c3a = $(`<div id="html_2a3dd02a408f54e26c6caef97e7b8c3a" style="width: 100.0%; height: 100.0%;">Fleur De Sel</div>`)[0];\n",
+ " popup_d08e685aacdbb3b91ae40bd003793a58.setContent(html_2a3dd02a408f54e26c6caef97e7b8c3a);\n",
" \n",
" \n",
"\n",
- " marker_568c45430f01f1eef32a5cd2568456cb.bindPopup(popup_431e75e0290e99c35349be2e466f59b0)\n",
+ " marker_356a192aebd86db4093ffeddd3edc4f1.bindPopup(popup_d08e685aacdbb3b91ae40bd003793a58)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_e27e849d3a21649bd8162a37e6163260 = L.marker(\n",
+ " var marker_baff4bc7367ce7b2d8ae77d5791dadbf = L.marker(\n",
" [37.758957, -122.412325],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_4472c1f667972c120dca9ee115d3c9b2 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_ca3cb66f5ef376a75fd976701059e17c = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_d3337303e7e2033c51a36dac99b3e570 = $(`<div id="html_d3337303e7e2033c51a36dac99b3e570" style="width: 100.0%; height: 100.0%;">Flour + Water</div>`)[0];\n",
- " popup_4472c1f667972c120dca9ee115d3c9b2.setContent(html_d3337303e7e2033c51a36dac99b3e570);\n",
+ " var html_7a696680a1fbf256aa0df13b003ee9ab = $(`<div id="html_7a696680a1fbf256aa0df13b003ee9ab" style="width: 100.0%; height: 100.0%;">Flour + Water</div>`)[0];\n",
+ " popup_ca3cb66f5ef376a75fd976701059e17c.setContent(html_7a696680a1fbf256aa0df13b003ee9ab);\n",
" \n",
" \n",
"\n",
- " marker_e27e849d3a21649bd8162a37e6163260.bindPopup(popup_4472c1f667972c120dca9ee115d3c9b2)\n",
+ " marker_baff4bc7367ce7b2d8ae77d5791dadbf.bindPopup(popup_ca3cb66f5ef376a75fd976701059e17c)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_a360670a8dd138a892a91e9c8867fc3c = L.marker(\n",
+ " var marker_e40b583b4827a10052992ad71adcc543 = L.marker(\n",
" [37.788468, -122.447127],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_95415634a371a5cc64ca2895e03c9547 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_707da0040861fc3336aa1bc3900eeb10 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_f64d83fd590d64999c281e780a9d5ba6 = $(`<div id="html_f64d83fd590d64999c281e780a9d5ba6" style="width: 100.0%; height: 100.0%;">Garibaldis On Presidio</div>`)[0];\n",
- " popup_95415634a371a5cc64ca2895e03c9547.setContent(html_f64d83fd590d64999c281e780a9d5ba6);\n",
+ " var html_8d8a13d932467e3a39c1b76d4a495ec8 = $(`<div id="html_8d8a13d932467e3a39c1b76d4a495ec8" style="width: 100.0%; height: 100.0%;">Garibaldis On Presidio</div>`)[0];\n",
+ " popup_707da0040861fc3336aa1bc3900eeb10.setContent(html_8d8a13d932467e3a39c1b76d4a495ec8);\n",
" \n",
" \n",
"\n",
- " marker_a360670a8dd138a892a91e9c8867fc3c.bindPopup(popup_95415634a371a5cc64ca2895e03c9547)\n",
+ " marker_e40b583b4827a10052992ad71adcc543.bindPopup(popup_707da0040861fc3336aa1bc3900eeb10)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_69dbab7aaff79bf62ddc08f0923640cb = L.marker(\n",
+ " var marker_28319602a07f56c2e4e84447087d1579 = L.marker(\n",
" [37.796103, -122.394243],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_e46ec73c4068ddeb4cf6139afc81347d = L.popup({"maxWidth": "100%"});\n",
+ " var popup_d95937ba96a24363d1b5736ddba93b03 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_bc0bed0148295b68af876086b8a24152 = $(`<div id="html_bc0bed0148295b68af876086b8a24152" style="width: 100.0%; height: 100.0%;">Gott's Roadside</div>`)[0];\n",
- " popup_e46ec73c4068ddeb4cf6139afc81347d.setContent(html_bc0bed0148295b68af876086b8a24152);\n",
+ " var html_d19f8a249fcc1fddc38a111c314be65b = $(`<div id="html_d19f8a249fcc1fddc38a111c314be65b" style="width: 100.0%; height: 100.0%;">Gott's Roadside</div>`)[0];\n",
+ " popup_d95937ba96a24363d1b5736ddba93b03.setContent(html_d19f8a249fcc1fddc38a111c314be65b);\n",
" \n",
" \n",
"\n",
- " marker_69dbab7aaff79bf62ddc08f0923640cb.bindPopup(popup_e46ec73c4068ddeb4cf6139afc81347d)\n",
+ " marker_28319602a07f56c2e4e84447087d1579.bindPopup(popup_d95937ba96a24363d1b5736ddba93b03)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_61aebc205126bdeff0553e3108ee7c06 = L.marker(\n",
+ " var marker_6c9243b2f85bedfd3862e8fa51ce3702 = L.marker(\n",
" [37.761547, -122.419204],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_bba92ba6255e41eb427d281dc79cb955 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_e1cccb7f0887325b61450d638d0987c6 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_c76ace5c44b0c1b3bf52bb574a72d7ec = $(`<div id="html_c76ace5c44b0c1b3bf52bb574a72d7ec" style="width: 100.0%; height: 100.0%;">Gracias Madre</div>`)[0];\n",
- " popup_bba92ba6255e41eb427d281dc79cb955.setContent(html_c76ace5c44b0c1b3bf52bb574a72d7ec);\n",
+ " var html_b39cbedfb7d4897035e1e04bca6396bd = $(`<div id="html_b39cbedfb7d4897035e1e04bca6396bd" style="width: 100.0%; height: 100.0%;">Gracias Madre</div>`)[0];\n",
+ " popup_e1cccb7f0887325b61450d638d0987c6.setContent(html_b39cbedfb7d4897035e1e04bca6396bd);\n",
" \n",
" \n",
"\n",
- " marker_61aebc205126bdeff0553e3108ee7c06.bindPopup(popup_bba92ba6255e41eb427d281dc79cb955)\n",
+ " marker_6c9243b2f85bedfd3862e8fa51ce3702.bindPopup(popup_e1cccb7f0887325b61450d638d0987c6)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_034254db93f090d8e7f4766881bc54ed = L.marker(\n",
+ " var marker_a99df57c247321bd6fb360e91726e16e = L.marker(\n",
" [37.806949, -122.432172],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_760d319ad202f952d18ea106984d42fd = L.popup({"maxWidth": "100%"});\n",
+ " var popup_b024eafa310c12d738a540133a4802b4 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_7e983aee600333b1e9a40eaaae7be58f = $(`<div id="html_7e983aee600333b1e9a40eaaae7be58f" style="width: 100.0%; height: 100.0%;">Greens Restaurant</div>`)[0];\n",
- " popup_760d319ad202f952d18ea106984d42fd.setContent(html_7e983aee600333b1e9a40eaaae7be58f);\n",
+ " var html_ea61ba68a6735209338137507087983e = $(`<div id="html_ea61ba68a6735209338137507087983e" style="width: 100.0%; height: 100.0%;">Greens Restaurant</div>`)[0];\n",
+ " popup_b024eafa310c12d738a540133a4802b4.setContent(html_ea61ba68a6735209338137507087983e);\n",
" \n",
" \n",
"\n",
- " marker_034254db93f090d8e7f4766881bc54ed.bindPopup(popup_760d319ad202f952d18ea106984d42fd)\n",
+ " marker_a99df57c247321bd6fb360e91726e16e.bindPopup(popup_b024eafa310c12d738a540133a4802b4)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_2b8843e1612a4883c08af83392623437 = L.marker(\n",
+ " var marker_093f90446199613909311f9f13a1f897 = L.marker(\n",
" [37.785636, -122.408851],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_aceb39e206361edec813b2a4aba6310b = L.popup({"maxWidth": "100%"});\n",
+ " var popup_d2ace00951e8e5b17a8b2a82d952cb24 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_a588b8ac6174f5dcc056a16c1f452f4a = $(`<div id="html_a588b8ac6174f5dcc056a16c1f452f4a" style="width: 100.0%; height: 100.0%;">Hana Zen</div>`)[0];\n",
- " popup_aceb39e206361edec813b2a4aba6310b.setContent(html_a588b8ac6174f5dcc056a16c1f452f4a);\n",
+ " var html_d715f36dab9ecdd4d3e190825bcb33dd = $(`<div id="html_d715f36dab9ecdd4d3e190825bcb33dd" style="width: 100.0%; height: 100.0%;">Hana Zen</div>`)[0];\n",
+ " popup_d2ace00951e8e5b17a8b2a82d952cb24.setContent(html_d715f36dab9ecdd4d3e190825bcb33dd);\n",
" \n",
" \n",
"\n",
- " marker_2b8843e1612a4883c08af83392623437.bindPopup(popup_aceb39e206361edec813b2a4aba6310b)\n",
+ " marker_093f90446199613909311f9f13a1f897.bindPopup(popup_d2ace00951e8e5b17a8b2a82d952cb24)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_3f6de029417b719b401ac7a78aa4dcea = L.marker(\n",
+ " var marker_7d3858293352c7540d77ffb0fb71f144 = L.marker(\n",
" [37.777147, -122.421755],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_7667779f70dbcb2e4dd54d2c2b142c0b = L.popup({"maxWidth": "100%"});\n",
+ " var popup_df008013bf7292c9677352e3b3bdc915 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_d1c6314a51801b92fa23a6d63b144f63 = $(`<div id="html_d1c6314a51801b92fa23a6d63b144f63" style="width: 100.0%; height: 100.0%;">Hayes Street Grill</div>`)[0];\n",
- " popup_7667779f70dbcb2e4dd54d2c2b142c0b.setContent(html_d1c6314a51801b92fa23a6d63b144f63);\n",
+ " var html_684a0048784781807f7cdaa1d6c2cfb0 = $(`<div id="html_684a0048784781807f7cdaa1d6c2cfb0" style="width: 100.0%; height: 100.0%;">Hayes Street Grill</div>`)[0];\n",
+ " popup_df008013bf7292c9677352e3b3bdc915.setContent(html_684a0048784781807f7cdaa1d6c2cfb0);\n",
" \n",
" \n",
"\n",
- " marker_3f6de029417b719b401ac7a78aa4dcea.bindPopup(popup_7667779f70dbcb2e4dd54d2c2b142c0b)\n",
+ " marker_7d3858293352c7540d77ffb0fb71f144.bindPopup(popup_df008013bf7292c9677352e3b3bdc915)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_f11ab17622b1abc9b3be5c03579d40c8 = L.marker(\n",
+ " var marker_2b9c89810c5c591bb0399e4746d329ad = L.marker(\n",
" [37.795602, -122.393588],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_ae1fc76129a897976275b561bd77288f = L.popup({"maxWidth": "100%"});\n",
+ " var popup_47d27d68ad8c76e4306c8d0010cd40c2 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_60e4568dd8bd143a72b6afd4930dcd7f = $(`<div id="html_60e4568dd8bd143a72b6afd4930dcd7f" style="width: 100.0%; height: 100.0%;">Hog Island Oyster Co.</div>`)[0];\n",
- " popup_ae1fc76129a897976275b561bd77288f.setContent(html_60e4568dd8bd143a72b6afd4930dcd7f);\n",
+ " var html_ca2ce23ebd1ed1f60bafc82726c75a75 = $(`<div id="html_ca2ce23ebd1ed1f60bafc82726c75a75" style="width: 100.0%; height: 100.0%;">Hog Island Oyster Co.</div>`)[0];\n",
+ " popup_47d27d68ad8c76e4306c8d0010cd40c2.setContent(html_ca2ce23ebd1ed1f60bafc82726c75a75);\n",
" \n",
" \n",
"\n",
- " marker_f11ab17622b1abc9b3be5c03579d40c8.bindPopup(popup_ae1fc76129a897976275b561bd77288f)\n",
+ " marker_2b9c89810c5c591bb0399e4746d329ad.bindPopup(popup_47d27d68ad8c76e4306c8d0010cd40c2)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_e2bd1d24f70464dfcd2b20ad1e8593b7 = L.marker(\n",
+ " var marker_edcf07c5f7135acf122b2aad552f8161 = L.marker(\n",
" [37.794169, -122.404691],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_48bd6ca14cce6c45af85d6666680e26b = L.popup({"maxWidth": "100%"});\n",
+ " var popup_b426eb78e481a1f228f81c5cc5c8403b = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_9c831b812f1f334a7631fd389b79b49f = $(`<div id="html_9c831b812f1f334a7631fd389b79b49f" style="width: 100.0%; height: 100.0%;">Hon's Wun Tun House</div>`)[0];\n",
- " popup_48bd6ca14cce6c45af85d6666680e26b.setContent(html_9c831b812f1f334a7631fd389b79b49f);\n",
+ " var html_11581ea506bf12da7003713d4653b6e0 = $(`<div id="html_11581ea506bf12da7003713d4653b6e0" style="width: 100.0%; height: 100.0%;">Hon's Wun Tun House</div>`)[0];\n",
+ " popup_b426eb78e481a1f228f81c5cc5c8403b.setContent(html_11581ea506bf12da7003713d4653b6e0);\n",
" \n",
" \n",
"\n",
- " marker_e2bd1d24f70464dfcd2b20ad1e8593b7.bindPopup(popup_48bd6ca14cce6c45af85d6666680e26b)\n",
+ " marker_edcf07c5f7135acf122b2aad552f8161.bindPopup(popup_b426eb78e481a1f228f81c5cc5c8403b)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_cb652ea7077dca543737b0e48bcad314 = L.marker(\n",
+ " var marker_03fba69a3874f1b6cdd602f99dcc3129 = L.marker(\n",
" [37.79648, -122.405226],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_535b28a8070b4845c13a512201e0951f = L.popup({"maxWidth": "100%"});\n",
+ " var popup_ab2d806bd732dfa4381a98e16589f727 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_29af5a365c41046bd495520e4253de0d = $(`<div id="html_29af5a365c41046bd495520e4253de0d" style="width: 100.0%; height: 100.0%;">House of Nanking</div>`)[0];\n",
- " popup_535b28a8070b4845c13a512201e0951f.setContent(html_29af5a365c41046bd495520e4253de0d);\n",
+ " var html_f1292601d685fb984fc9e83ed54d9418 = $(`<div id="html_f1292601d685fb984fc9e83ed54d9418" style="width: 100.0%; height: 100.0%;">House of Nanking</div>`)[0];\n",
+ " popup_ab2d806bd732dfa4381a98e16589f727.setContent(html_f1292601d685fb984fc9e83ed54d9418);\n",
" \n",
" \n",
"\n",
- " marker_cb652ea7077dca543737b0e48bcad314.bindPopup(popup_535b28a8070b4845c13a512201e0951f)\n",
+ " marker_03fba69a3874f1b6cdd602f99dcc3129.bindPopup(popup_ab2d806bd732dfa4381a98e16589f727)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_f946ce2edfd9fc7a64edb7f7981c09c5 = L.marker(\n",
+ " var marker_9a02ca2e29d28bfd6f92dac7bd8915c6 = L.marker(\n",
" [37.76377, -122.466425],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_4880a18d7fd32176822bf3fd9dbaf77f = L.popup({"maxWidth": "100%"});\n",
+ " var popup_6aa7bbb11e8efe9916fabb5f79c1b989 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_ef00ea91b8b221dabea9d641e9979d85 = $(`<div id="html_ef00ea91b8b221dabea9d641e9979d85" style="width: 100.0%; height: 100.0%;">Howard's</div>`)[0];\n",
- " popup_4880a18d7fd32176822bf3fd9dbaf77f.setContent(html_ef00ea91b8b221dabea9d641e9979d85);\n",
+ " var html_2d1940e37682b1de03dc9e1f4038f119 = $(`<div id="html_2d1940e37682b1de03dc9e1f4038f119" style="width: 100.0%; height: 100.0%;">Howard's</div>`)[0];\n",
+ " popup_6aa7bbb11e8efe9916fabb5f79c1b989.setContent(html_2d1940e37682b1de03dc9e1f4038f119);\n",
" \n",
" \n",
"\n",
- " marker_f946ce2edfd9fc7a64edb7f7981c09c5.bindPopup(popup_4880a18d7fd32176822bf3fd9dbaf77f)\n",
+ " marker_9a02ca2e29d28bfd6f92dac7bd8915c6.bindPopup(popup_6aa7bbb11e8efe9916fabb5f79c1b989)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_aba9530365ec8b711fcdd3555d859119 = L.marker(\n",
+ " var marker_4d2d190ce873a49af037f809d8cc1e37 = L.marker(\n",
" [37.796258, -122.405603],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_1e8d6f4e3e72926e085c544362306d22 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_2d640a30a37d21bfecc0071d105173af = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_f13f453bd120a1a455c4131dc93094ea = $(`<div id="html_f13f453bd120a1a455c4131dc93094ea" style="width: 100.0%; height: 100.0%;">Hunan Home's Restaurant</div>`)[0];\n",
- " popup_1e8d6f4e3e72926e085c544362306d22.setContent(html_f13f453bd120a1a455c4131dc93094ea);\n",
+ " var html_2c896a9221b3609a7a52d42ce551c2c6 = $(`<div id="html_2c896a9221b3609a7a52d42ce551c2c6" style="width: 100.0%; height: 100.0%;">Hunan Home's Restaurant</div>`)[0];\n",
+ " popup_2d640a30a37d21bfecc0071d105173af.setContent(html_2c896a9221b3609a7a52d42ce551c2c6);\n",
" \n",
" \n",
"\n",
- " marker_aba9530365ec8b711fcdd3555d859119.bindPopup(popup_1e8d6f4e3e72926e085c544362306d22)\n",
+ " marker_4d2d190ce873a49af037f809d8cc1e37.bindPopup(popup_2d640a30a37d21bfecc0071d105173af)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_a9539286ff628bec3a481204b49f40c6 = L.marker(\n",
+ " var marker_50807444cecb3f68e342ee7020c4106c = L.marker(\n",
" [37.795777, -122.39364],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_162beb4b471abe402e22dec744be43d1 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_cc6107a25a038245415d593b998642cc = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_473e06a0eb9ae64945c6660c42f1f8e1 = $(`<div id="html_473e06a0eb9ae64945c6660c42f1f8e1" style="width: 100.0%; height: 100.0%;">Il Cane Rosso</div>`)[0];\n",
- " popup_162beb4b471abe402e22dec744be43d1.setContent(html_473e06a0eb9ae64945c6660c42f1f8e1);\n",
+ " var html_647688f24a0307bf841e12492f45d0b9 = $(`<div id="html_647688f24a0307bf841e12492f45d0b9" style="width: 100.0%; height: 100.0%;">Il Cane Rosso</div>`)[0];\n",
+ " popup_cc6107a25a038245415d593b998642cc.setContent(html_647688f24a0307bf841e12492f45d0b9);\n",
" \n",
" \n",
"\n",
- " marker_a9539286ff628bec3a481204b49f40c6.bindPopup(popup_162beb4b471abe402e22dec744be43d1)\n",
+ " marker_50807444cecb3f68e342ee7020c4106c.bindPopup(popup_cc6107a25a038245415d593b998642cc)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_b2df1585fc18a94733ff8f37f865427b = L.marker(\n",
+ " var marker_756a8b4ee15cd692aea9f33420ad2754 = L.marker(\n",
" [37.802838, -122.402063],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_16d74dd3df5639ec8f5b02a47e08b64b = L.popup({"maxWidth": "100%"});\n",
+ " var popup_989e6f81671393969699cf06c03d6b3b = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_1ba9e288e5c1d44e8dfb4e2a796d5b28 = $(`<div id="html_1ba9e288e5c1d44e8dfb4e2a796d5b28" style="width: 100.0%; height: 100.0%;">Il Fornaio</div>`)[0];\n",
- " popup_16d74dd3df5639ec8f5b02a47e08b64b.setContent(html_1ba9e288e5c1d44e8dfb4e2a796d5b28);\n",
+ " var html_b7c3b779dbb94cbb6609dd964261af8f = $(`<div id="html_b7c3b779dbb94cbb6609dd964261af8f" style="width: 100.0%; height: 100.0%;">Il Fornaio</div>`)[0];\n",
+ " popup_989e6f81671393969699cf06c03d6b3b.setContent(html_b7c3b779dbb94cbb6609dd964261af8f);\n",
" \n",
" \n",
"\n",
- " marker_b2df1585fc18a94733ff8f37f865427b.bindPopup(popup_16d74dd3df5639ec8f5b02a47e08b64b)\n",
+ " marker_756a8b4ee15cd692aea9f33420ad2754.bindPopup(popup_989e6f81671393969699cf06c03d6b3b)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_34ef026396664844cc185e49adbdf5af = L.marker(\n",
+ " var marker_a2efb2aaa017c4a777dae38db015644c = L.marker(\n",
" [37.765737, -122.40677],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_b70863b1caeaed68ddc681360325e3ef = L.popup({"maxWidth": "100%"});\n",
+ " var popup_1dc9986e542dee6d1f05a775e0c39454 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_d3eb19be9d59b1e6ed7ba7b4fd0529c8 = $(`<div id="html_d3eb19be9d59b1e6ed7ba7b4fd0529c8" style="width: 100.0%; height: 100.0%;">Il Pirata</div>`)[0];\n",
- " popup_b70863b1caeaed68ddc681360325e3ef.setContent(html_d3eb19be9d59b1e6ed7ba7b4fd0529c8);\n",
+ " var html_117f52f32bbb9bdef7bfebbaffc9827f = $(`<div id="html_117f52f32bbb9bdef7bfebbaffc9827f" style="width: 100.0%; height: 100.0%;">Il Pirata</div>`)[0];\n",
+ " popup_1dc9986e542dee6d1f05a775e0c39454.setContent(html_117f52f32bbb9bdef7bfebbaffc9827f);\n",
" \n",
" \n",
"\n",
- " marker_34ef026396664844cc185e49adbdf5af.bindPopup(popup_b70863b1caeaed68ddc681360325e3ef)\n",
+ " marker_a2efb2aaa017c4a777dae38db015644c.bindPopup(popup_1dc9986e542dee6d1f05a775e0c39454)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_01d85fa7a430031f6e87807149c1421a = L.marker(\n",
+ " var marker_78aeef79827de6d1ed0f4d79b3fc61c5 = L.marker(\n",
" [37.8078, -122.418383],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_730249768bb6fc70b94710f8c588c440 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_6470573f6d8d6e55ef59b52d2e4c77ae = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_f2cf377badaa9b5046d44f36031ee4ed = $(`<div id="html_f2cf377badaa9b5046d44f36031ee4ed" style="width: 100.0%; height: 100.0%;">In-N-Out Burger</div>`)[0];\n",
- " popup_730249768bb6fc70b94710f8c588c440.setContent(html_f2cf377badaa9b5046d44f36031ee4ed);\n",
+ " var html_56dd0e69f0eb3b833bb89af30ba84385 = $(`<div id="html_56dd0e69f0eb3b833bb89af30ba84385" style="width: 100.0%; height: 100.0%;">In-N-Out Burger</div>`)[0];\n",
+ " popup_6470573f6d8d6e55ef59b52d2e4c77ae.setContent(html_56dd0e69f0eb3b833bb89af30ba84385);\n",
" \n",
" \n",
"\n",
- " marker_01d85fa7a430031f6e87807149c1421a.bindPopup(popup_730249768bb6fc70b94710f8c588c440)\n",
+ " marker_78aeef79827de6d1ed0f4d79b3fc61c5.bindPopup(popup_6470573f6d8d6e55ef59b52d2e4c77ae)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_97882c84a970d5b854fc629cd8ac0294 = L.marker(\n",
+ " var marker_6a2d2aa027841eb94da7d1898e3ac6bf = L.marker(\n",
" [37.780838, -122.391103],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_5b3202e67160b4eead76ea9b6100cf38 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_12d154f255ea25070b9733c493e8860e = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_1b0217119994dd0ada4e093d890fde3d = $(`<div id="html_1b0217119994dd0ada4e093d890fde3d" style="width: 100.0%; height: 100.0%;">Ironside</div>`)[0];\n",
- " popup_5b3202e67160b4eead76ea9b6100cf38.setContent(html_1b0217119994dd0ada4e093d890fde3d);\n",
+ " var html_47bdafcc60a10143ab59bedf695d81cb = $(`<div id="html_47bdafcc60a10143ab59bedf695d81cb" style="width: 100.0%; height: 100.0%;">Ironside</div>`)[0];\n",
+ " popup_12d154f255ea25070b9733c493e8860e.setContent(html_47bdafcc60a10143ab59bedf695d81cb);\n",
" \n",
" \n",
"\n",
- " marker_97882c84a970d5b854fc629cd8ac0294.bindPopup(popup_5b3202e67160b4eead76ea9b6100cf38)\n",
+ " marker_6a2d2aa027841eb94da7d1898e3ac6bf.bindPopup(popup_12d154f255ea25070b9733c493e8860e)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_296f37968980cf99c757e923583602da = L.marker(\n",
+ " var marker_643fb68c92b9c46013fed7009690be1e = L.marker(\n",
" [37.800199, -122.437884],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_822f0d1c8fed170a5084b4967e02b81b = L.popup({"maxWidth": "100%"});\n",
+ " var popup_6f891125e45161876d67345d78255783 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_87b30be87f8425d42a291c4448aaaf01 = $(`<div id="html_87b30be87f8425d42a291c4448aaaf01" style="width: 100.0%; height: 100.0%;">Izzy's Steaks & Chops</div>`)[0];\n",
- " popup_822f0d1c8fed170a5084b4967e02b81b.setContent(html_87b30be87f8425d42a291c4448aaaf01);\n",
+ " var html_da26e0b5aa17be8ebfd73e3e791e3095 = $(`<div id="html_da26e0b5aa17be8ebfd73e3e791e3095" style="width: 100.0%; height: 100.0%;">Izzy's Steaks & Chops</div>`)[0];\n",
+ " popup_6f891125e45161876d67345d78255783.setContent(html_da26e0b5aa17be8ebfd73e3e791e3095);\n",
" \n",
" \n",
"\n",
- " marker_296f37968980cf99c757e923583602da.bindPopup(popup_822f0d1c8fed170a5084b4967e02b81b)\n",
+ " marker_643fb68c92b9c46013fed7009690be1e.bindPopup(popup_6f891125e45161876d67345d78255783)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_2757582f4cdd1ade5f05798c078601a7 = L.marker(\n",
+ " var marker_6fb518a6d6b753b8a168066101135333 = L.marker(\n",
" [37.791695, -122.399585],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_e4bb99fd9967d025dfa5b4104cf5bd51 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_174bd407221901f589ca6f379faff72a = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_e4070443856c592b472e43081b6a5e2b = $(`<div id="html_e4070443856c592b472e43081b6a5e2b" style="width: 100.0%; height: 100.0%;">John's Snack and Deli</div>`)[0];\n",
- " popup_e4bb99fd9967d025dfa5b4104cf5bd51.setContent(html_e4070443856c592b472e43081b6a5e2b);\n",
+ " var html_36e47756d696eab76ba64dd2a0bf141e = $(`<div id="html_36e47756d696eab76ba64dd2a0bf141e" style="width: 100.0%; height: 100.0%;">John's Snack and Deli</div>`)[0];\n",
+ " popup_174bd407221901f589ca6f379faff72a.setContent(html_36e47756d696eab76ba64dd2a0bf141e);\n",
" \n",
" \n",
"\n",
- " marker_2757582f4cdd1ade5f05798c078601a7.bindPopup(popup_e4bb99fd9967d025dfa5b4104cf5bd51)\n",
+ " marker_6fb518a6d6b753b8a168066101135333.bindPopup(popup_174bd407221901f589ca6f379faff72a)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_b229f43e207ed05bfd2929cf092e9510 = L.marker(\n",
+ " var marker_d9b1a7a7751b2655c1da4cd0aebb16d3 = L.marker(\n",
" [37.808393, -122.413713],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_028d1c45c69ed9f92c5a9230f2b467eb = L.popup({"maxWidth": "100%"});\n",
+ " var popup_718170768f8b24c6dc393e931ea7a43f = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_1d422fe635b0aa6cf9ec86ed284f7ebe = $(`<div id="html_1d422fe635b0aa6cf9ec86ed284f7ebe" style="width: 100.0%; height: 100.0%;">Johnny Rockets</div>`)[0];\n",
- " popup_028d1c45c69ed9f92c5a9230f2b467eb.setContent(html_1d422fe635b0aa6cf9ec86ed284f7ebe);\n",
+ " var html_d48e4f85348594b812ffde54fc0f8f19 = $(`<div id="html_d48e4f85348594b812ffde54fc0f8f19" style="width: 100.0%; height: 100.0%;">Johnny Rockets</div>`)[0];\n",
+ " popup_718170768f8b24c6dc393e931ea7a43f.setContent(html_d48e4f85348594b812ffde54fc0f8f19);\n",
" \n",
" \n",
"\n",
- " marker_b229f43e207ed05bfd2929cf092e9510.bindPopup(popup_028d1c45c69ed9f92c5a9230f2b467eb)\n",
+ " marker_d9b1a7a7751b2655c1da4cd0aebb16d3.bindPopup(popup_718170768f8b24c6dc393e931ea7a43f)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_5c8b6c16ebafd42ad791126c2233729c = L.marker(\n",
+ " var marker_e7198ace9d5a2d4962ccd87a87b95a72 = L.marker(\n",
" [37.752688, -122.40959],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_11c2abad1d9b5d5d506b83b2c1a97b7b = L.popup({"maxWidth": "100%"});\n",
+ " var popup_825af7bf9c251168c10d0553290d9ae9 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_0d4cb7248c1fa99a5db72d2900bc536c = $(`<div id="html_0d4cb7248c1fa99a5db72d2900bc536c" style="width: 100.0%; height: 100.0%;">L's Caffe</div>`)[0];\n",
- " popup_11c2abad1d9b5d5d506b83b2c1a97b7b.setContent(html_0d4cb7248c1fa99a5db72d2900bc536c);\n",
+ " var html_58f76b499506a4c7d791f502fa7e3d6f = $(`<div id="html_58f76b499506a4c7d791f502fa7e3d6f" style="width: 100.0%; height: 100.0%;">L's Caffe</div>`)[0];\n",
+ " popup_825af7bf9c251168c10d0553290d9ae9.setContent(html_58f76b499506a4c7d791f502fa7e3d6f);\n",
" \n",
" \n",
"\n",
- " marker_5c8b6c16ebafd42ad791126c2233729c.bindPopup(popup_11c2abad1d9b5d5d506b83b2c1a97b7b)\n",
+ " marker_e7198ace9d5a2d4962ccd87a87b95a72.bindPopup(popup_825af7bf9c251168c10d0553290d9ae9)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_d482c499bbd7e806d756e344d93a9445 = L.marker(\n",
+ " var marker_aba458719036d2cc572e05de31b0f743 = L.marker(\n",
" [37.788408, -122.43386],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_bdcb211d43fd271502ac1aa981bcbef6 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_f382411274a245e115f86f4877596b6e = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_8659c99e54f702f3263ea2e54b5af239 = $(`<div id="html_8659c99e54f702f3263ea2e54b5af239" style="width: 100.0%; height: 100.0%;">La Boulange</div>`)[0];\n",
- " popup_bdcb211d43fd271502ac1aa981bcbef6.setContent(html_8659c99e54f702f3263ea2e54b5af239);\n",
+ " var html_26f12cbbe6309df1cb35561e3438b838 = $(`<div id="html_26f12cbbe6309df1cb35561e3438b838" style="width: 100.0%; height: 100.0%;">La Boulange</div>`)[0];\n",
+ " popup_f382411274a245e115f86f4877596b6e.setContent(html_26f12cbbe6309df1cb35561e3438b838);\n",
" \n",
" \n",
"\n",
- " marker_d482c499bbd7e806d756e344d93a9445.bindPopup(popup_bdcb211d43fd271502ac1aa981bcbef6)\n",
+ " marker_aba458719036d2cc572e05de31b0f743.bindPopup(popup_f382411274a245e115f86f4877596b6e)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_50377cc961cd72108e9999cd2ed8f09c = L.marker(\n",
+ " var marker_7da1f8fdaeff9e8adc8f40a778ebfa9c = L.marker(\n",
" [37.750899, -122.418143],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_ca731c331e05116f3acc948f4147bd30 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_4789a7317d305cd0e437ac03360d73e3 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_04d71e8d6c4d764c4906b5a5f5398a70 = $(`<div id="html_04d71e8d6c4d764c4906b5a5f5398a70" style="width: 100.0%; height: 100.0%;">La Taqueria</div>`)[0];\n",
- " popup_ca731c331e05116f3acc948f4147bd30.setContent(html_04d71e8d6c4d764c4906b5a5f5398a70);\n",
+ " var html_4ac74ca41372e7b9655abad7e505caf8 = $(`<div id="html_4ac74ca41372e7b9655abad7e505caf8" style="width: 100.0%; height: 100.0%;">La Taqueria</div>`)[0];\n",
+ " popup_4789a7317d305cd0e437ac03360d73e3.setContent(html_4ac74ca41372e7b9655abad7e505caf8);\n",
" \n",
" \n",
"\n",
- " marker_50377cc961cd72108e9999cd2ed8f09c.bindPopup(popup_ca731c331e05116f3acc948f4147bd30)\n",
+ " marker_7da1f8fdaeff9e8adc8f40a778ebfa9c.bindPopup(popup_4789a7317d305cd0e437ac03360d73e3)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_823dd2563cc036ea91e9038239d4c5e4 = L.marker(\n",
+ " var marker_1dfc5ae9d2cf72c021473d541fb46311 = L.marker(\n",
" [37.752774, -122.40867],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_00c85c299cf24a7be5cf304febe9636d = L.popup({"maxWidth": "100%"});\n",
+ " var popup_7de20913afdf1f68ec659468573d4c4e = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_36d12874706ef12da5992a47c29178d1 = $(`<div id="html_36d12874706ef12da5992a47c29178d1" style="width: 100.0%; height: 100.0%;">La Torta Gorda</div>`)[0];\n",
- " popup_00c85c299cf24a7be5cf304febe9636d.setContent(html_36d12874706ef12da5992a47c29178d1);\n",
+ " var html_426379b118d4feb0b31bfe4b0805a168 = $(`<div id="html_426379b118d4feb0b31bfe4b0805a168" style="width: 100.0%; height: 100.0%;">La Torta Gorda</div>`)[0];\n",
+ " popup_7de20913afdf1f68ec659468573d4c4e.setContent(html_426379b118d4feb0b31bfe4b0805a168);\n",
" \n",
" \n",
"\n",
- " marker_823dd2563cc036ea91e9038239d4c5e4.bindPopup(popup_00c85c299cf24a7be5cf304febe9636d)\n",
+ " marker_1dfc5ae9d2cf72c021473d541fb46311.bindPopup(popup_7de20913afdf1f68ec659468573d4c4e)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_7ed8055ed4540dfc077f3046b56d4486 = L.marker(\n",
+ " var marker_7c4c35914792e8ed30c6442b03551774 = L.marker(\n",
" [37.785611, -122.414996],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_6ea5dd227fcd442fdd1d01e8a8d45e14 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_14175c6f842a6d56d0d2aa361cd3a817 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_7d8bd9e4e388ee87cfb3a6d391f3e038 = $(`<div id="html_7d8bd9e4e388ee87cfb3a6d391f3e038" style="width: 100.0%; height: 100.0%;">Lahore Karahi</div>`)[0];\n",
- " popup_6ea5dd227fcd442fdd1d01e8a8d45e14.setContent(html_7d8bd9e4e388ee87cfb3a6d391f3e038);\n",
+ " var html_5793f4e42892dea5ae987cdab81020b2 = $(`<div id="html_5793f4e42892dea5ae987cdab81020b2" style="width: 100.0%; height: 100.0%;">Lahore Karahi</div>`)[0];\n",
+ " popup_14175c6f842a6d56d0d2aa361cd3a817.setContent(html_5793f4e42892dea5ae987cdab81020b2);\n",
" \n",
" \n",
"\n",
- " marker_7ed8055ed4540dfc077f3046b56d4486.bindPopup(popup_6ea5dd227fcd442fdd1d01e8a8d45e14)\n",
+ " marker_7c4c35914792e8ed30c6442b03551774.bindPopup(popup_14175c6f842a6d56d0d2aa361cd3a817)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_73cfe04ff00d3dfa8dfb4c92d112a009 = L.marker(\n",
+ " var marker_9b22669ced1432cd44e7b8285a9ff820 = L.marker(\n",
" [37.751221, -122.433213],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_642ca734ead00e83e7f614dd88a7aaa0 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_3d44a9c14592b15fdcb90a2b39f334e0 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_b2e95b92b291032477a06103f4ef1f81 = $(`<div id="html_b2e95b92b291032477a06103f4ef1f81" style="width: 100.0%; height: 100.0%;">Le Zinc</div>`)[0];\n",
- " popup_642ca734ead00e83e7f614dd88a7aaa0.setContent(html_b2e95b92b291032477a06103f4ef1f81);\n",
+ " var html_0db4bbd4c8722ffd3c8007b49cec4a3d = $(`<div id="html_0db4bbd4c8722ffd3c8007b49cec4a3d" style="width: 100.0%; height: 100.0%;">Le Zinc</div>`)[0];\n",
+ " popup_3d44a9c14592b15fdcb90a2b39f334e0.setContent(html_0db4bbd4c8722ffd3c8007b49cec4a3d);\n",
" \n",
" \n",
"\n",
- " marker_73cfe04ff00d3dfa8dfb4c92d112a009.bindPopup(popup_642ca734ead00e83e7f614dd88a7aaa0)\n",
+ " marker_9b22669ced1432cd44e7b8285a9ff820.bindPopup(popup_3d44a9c14592b15fdcb90a2b39f334e0)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_213252d4e6d3e02ecf8e7364d346b7b7 = L.marker(\n",
+ " var marker_23d3780d81d2d4af38ccbb826cdc1f1a = L.marker(\n",
" [37.787146, -122.408714],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_e603a2c5792c2273f9ccb784ce28a142 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_d9ffb97baab3be7a6f2ecd420c7f0b22 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_850773c6ab0ff11e70e188c772810705 = $(`<div id="html_850773c6ab0ff11e70e188c772810705" style="width: 100.0%; height: 100.0%;">Lefty O'Doul's</div>`)[0];\n",
- " popup_e603a2c5792c2273f9ccb784ce28a142.setContent(html_850773c6ab0ff11e70e188c772810705);\n",
+ " var html_a21d03878178441b488d7a6afaadf113 = $(`<div id="html_a21d03878178441b488d7a6afaadf113" style="width: 100.0%; height: 100.0%;">Lefty O'Doul's</div>`)[0];\n",
+ " popup_d9ffb97baab3be7a6f2ecd420c7f0b22.setContent(html_a21d03878178441b488d7a6afaadf113);\n",
" \n",
" \n",
"\n",
- " marker_213252d4e6d3e02ecf8e7364d346b7b7.bindPopup(popup_e603a2c5792c2273f9ccb784ce28a142)\n",
+ " marker_23d3780d81d2d4af38ccbb826cdc1f1a.bindPopup(popup_d9ffb97baab3be7a6f2ecd420c7f0b22)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_a3301f231cdfcb9f7c2f45369c5765d1 = L.marker(\n",
+ " var marker_dbfa57c5ddefb452a2f0bb0b002b5c6a = L.marker(\n",
" [37.798866, -122.422185],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_bc08d5f5bf27423405c2945d68ca93b7 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_8502402f64c4a01dee69398906796904 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_1a25cc914789b5d556d64cd061b9818c = $(`<div id="html_1a25cc914789b5d556d64cd061b9818c" style="width: 100.0%; height: 100.0%;">Leopold's</div>`)[0];\n",
- " popup_bc08d5f5bf27423405c2945d68ca93b7.setContent(html_1a25cc914789b5d556d64cd061b9818c);\n",
+ " var html_c49befd128546c86eb60893e8a6148af = $(`<div id="html_c49befd128546c86eb60893e8a6148af" style="width: 100.0%; height: 100.0%;">Leopold's</div>`)[0];\n",
+ " popup_8502402f64c4a01dee69398906796904.setContent(html_c49befd128546c86eb60893e8a6148af);\n",
" \n",
" \n",
"\n",
- " marker_a3301f231cdfcb9f7c2f45369c5765d1.bindPopup(popup_bc08d5f5bf27423405c2945d68ca93b7)\n",
+ " marker_dbfa57c5ddefb452a2f0bb0b002b5c6a.bindPopup(popup_8502402f64c4a01dee69398906796904)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_4b7990765b89773631acb33baf0f3add = L.marker(\n",
+ " var marker_ec84a299f0ceb399342a7ceb14d89906 = L.marker(\n",
" [37.764313, -122.46274],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_9c09b2939465d5a4a5ddbb6ef0e660d0 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_816dadbfec54808980df4c0d9a66677f = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_926788c3361cc0e6c677db19ccecb72d = $(`<div id="html_926788c3361cc0e6c677db19ccecb72d" style="width: 100.0%; height: 100.0%;">Lime Tree</div>`)[0];\n",
- " popup_9c09b2939465d5a4a5ddbb6ef0e660d0.setContent(html_926788c3361cc0e6c677db19ccecb72d);\n",
+ " var html_ef68e4b959826ffaf43b4f6e6d673b4f = $(`<div id="html_ef68e4b959826ffaf43b4f6e6d673b4f" style="width: 100.0%; height: 100.0%;">Lime Tree</div>`)[0];\n",
+ " popup_816dadbfec54808980df4c0d9a66677f.setContent(html_ef68e4b959826ffaf43b4f6e6d673b4f);\n",
" \n",
" \n",
"\n",
- " marker_4b7990765b89773631acb33baf0f3add.bindPopup(popup_9c09b2939465d5a4a5ddbb6ef0e660d0)\n",
+ " marker_ec84a299f0ceb399342a7ceb14d89906.bindPopup(popup_816dadbfec54808980df4c0d9a66677f)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_6bd14d1472996672da55cafebceeb321 = L.marker(\n",
+ " var marker_66b387a7ea112f7f86282691de1517cb = L.marker(\n",
" [37.764434, -122.421972],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_4c935a1a7a2fe396587c1650acac6855 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_bab61d6d847c045a32b6419d42abc139 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_7fce5736b17b185e81f471fd4985fa94 = $(`<div id="html_7fce5736b17b185e81f471fd4985fa94" style="width: 100.0%; height: 100.0%;">Limon Restaurant</div>`)[0];\n",
- " popup_4c935a1a7a2fe396587c1650acac6855.setContent(html_7fce5736b17b185e81f471fd4985fa94);\n",
+ " var html_98e828c7fa055bacd07a2fef646fc271 = $(`<div id="html_98e828c7fa055bacd07a2fef646fc271" style="width: 100.0%; height: 100.0%;">Limon Restaurant</div>`)[0];\n",
+ " popup_bab61d6d847c045a32b6419d42abc139.setContent(html_98e828c7fa055bacd07a2fef646fc271);\n",
" \n",
" \n",
"\n",
- " marker_6bd14d1472996672da55cafebceeb321.bindPopup(popup_4c935a1a7a2fe396587c1650acac6855)\n",
+ " marker_66b387a7ea112f7f86282691de1517cb.bindPopup(popup_bab61d6d847c045a32b6419d42abc139)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_3fb6c7e055bb7b77dce3a54294cb4962 = L.marker(\n",
+ " var marker_fdd44c45f1c4892ea3b3d3a947d54b52 = L.marker(\n",
" [37.777492, -122.438182],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_84db3a0e1718292b26a76420c6bd1549 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_15ae18532184e9f953267cca45bafd9f = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_f701929aef9fdac580787388c274017c = $(`<div id="html_f701929aef9fdac580787388c274017c" style="width: 100.0%; height: 100.0%;">Little Star Pizza</div>`)[0];\n",
- " popup_84db3a0e1718292b26a76420c6bd1549.setContent(html_f701929aef9fdac580787388c274017c);\n",
+ " var html_7f11983edd70456f4493942986d9445f = $(`<div id="html_7f11983edd70456f4493942986d9445f" style="width: 100.0%; height: 100.0%;">Little Star Pizza</div>`)[0];\n",
+ " popup_15ae18532184e9f953267cca45bafd9f.setContent(html_7f11983edd70456f4493942986d9445f);\n",
" \n",
" \n",
"\n",
- " marker_3fb6c7e055bb7b77dce3a54294cb4962.bindPopup(popup_84db3a0e1718292b26a76420c6bd1549)\n",
+ " marker_fdd44c45f1c4892ea3b3d3a947d54b52.bindPopup(popup_15ae18532184e9f953267cca45bafd9f)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_512ca2385639ca8a3a6045576d33c1e0 = L.marker(\n",
+ " var marker_829b49888376116b60370d1aa1461539 = L.marker(\n",
" [37.786826, -122.409602],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_e2ab4fd9e0bda9ddfab4c75b01282758 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_60760bc5f80663f20ba74ec72918fd7a = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_57200daf73ec1489675ea0fc2a849f3a = $(`<div id="html_57200daf73ec1489675ea0fc2a849f3a" style="width: 100.0%; height: 100.0%;">Lori's Diner</div>`)[0];\n",
- " popup_e2ab4fd9e0bda9ddfab4c75b01282758.setContent(html_57200daf73ec1489675ea0fc2a849f3a);\n",
+ " var html_bf727ca703d5b053885d2d13206a6ccc = $(`<div id="html_bf727ca703d5b053885d2d13206a6ccc" style="width: 100.0%; height: 100.0%;">Lori's Diner</div>`)[0];\n",
+ " popup_60760bc5f80663f20ba74ec72918fd7a.setContent(html_bf727ca703d5b053885d2d13206a6ccc);\n",
" \n",
" \n",
"\n",
- " marker_512ca2385639ca8a3a6045576d33c1e0.bindPopup(popup_e2ab4fd9e0bda9ddfab4c75b01282758)\n",
+ " marker_829b49888376116b60370d1aa1461539.bindPopup(popup_60760bc5f80663f20ba74ec72918fd7a)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_60a32384a803b2661170faedcfc38d5d = L.marker(\n",
+ " var marker_1717e43417c9737eecaa89fb3fadf95b = L.marker(\n",
" [37.805747, -122.422483],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_b1109b684da8b68816b1603e1ad00cdd = L.popup({"maxWidth": "100%"});\n",
+ " var popup_b61b1a9ed2007ed2edf7ed8bd932cf6e = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_058998aea05e9188dc613af6d36f4a92 = $(`<div id="html_058998aea05e9188dc613af6d36f4a92" style="width: 100.0%; height: 100.0%;">Lori's Diner</div>`)[0];\n",
- " popup_b1109b684da8b68816b1603e1ad00cdd.setContent(html_058998aea05e9188dc613af6d36f4a92);\n",
+ " var html_91cb178d28077392e2bc8a485449e3bb = $(`<div id="html_91cb178d28077392e2bc8a485449e3bb" style="width: 100.0%; height: 100.0%;">Lori's Diner</div>`)[0];\n",
+ " popup_b61b1a9ed2007ed2edf7ed8bd932cf6e.setContent(html_91cb178d28077392e2bc8a485449e3bb);\n",
" \n",
" \n",
"\n",
- " marker_60a32384a803b2661170faedcfc38d5d.bindPopup(popup_b1109b684da8b68816b1603e1ad00cdd)\n",
+ " marker_1717e43417c9737eecaa89fb3fadf95b.bindPopup(popup_b61b1a9ed2007ed2edf7ed8bd932cf6e)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_b046d88dcef20f68ccdf0ba4024fe2db = L.marker(\n",
+ " var marker_96e6bc077c5407d22eaaf317495b7c5f = L.marker(\n",
" [37.789249, -122.408743],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_ca476180355f060751f841dcf9f9c618 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_d65d2f979a8eefcf85faee633bab9dd4 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_c18e144dd3b93de0c820f6de5e733250 = $(`<div id="html_c18e144dd3b93de0c820f6de5e733250" style="width: 100.0%; height: 100.0%;">Lori's Diner</div>`)[0];\n",
- " popup_ca476180355f060751f841dcf9f9c618.setContent(html_c18e144dd3b93de0c820f6de5e733250);\n",
+ " var html_8907d0d4a139c7037e795aeb6112e22e = $(`<div id="html_8907d0d4a139c7037e795aeb6112e22e" style="width: 100.0%; height: 100.0%;">Lori's Diner</div>`)[0];\n",
+ " popup_d65d2f979a8eefcf85faee633bab9dd4.setContent(html_8907d0d4a139c7037e795aeb6112e22e);\n",
" \n",
" \n",
"\n",
- " marker_b046d88dcef20f68ccdf0ba4024fe2db.bindPopup(popup_ca476180355f060751f841dcf9f9c618)\n",
+ " marker_96e6bc077c5407d22eaaf317495b7c5f.bindPopup(popup_d65d2f979a8eefcf85faee633bab9dd4)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_b7105e503020dfbf6adbbeae258602e2 = L.marker(\n",
+ " var marker_bd5a830bb958a067042103430c7b78c2 = L.marker(\n",
" [37.781872, -122.40479],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_34eb2a60befb71ed03a6f3de12f784a7 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_d4323cc91a5e5a6265c4701fe577443b = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_ee4b879e75aac742cffaa48b861c376d = $(`<div id="html_ee4b879e75aac742cffaa48b861c376d" style="width: 100.0%; height: 100.0%;">Luce</div>`)[0];\n",
- " popup_34eb2a60befb71ed03a6f3de12f784a7.setContent(html_ee4b879e75aac742cffaa48b861c376d);\n",
+ " var html_c592bf1372ac05e4da87282ec9959d48 = $(`<div id="html_c592bf1372ac05e4da87282ec9959d48" style="width: 100.0%; height: 100.0%;">Luce</div>`)[0];\n",
+ " popup_d4323cc91a5e5a6265c4701fe577443b.setContent(html_c592bf1372ac05e4da87282ec9959d48);\n",
" \n",
" \n",
"\n",
- " marker_b7105e503020dfbf6adbbeae258602e2.bindPopup(popup_34eb2a60befb71ed03a6f3de12f784a7)\n",
+ " marker_bd5a830bb958a067042103430c7b78c2.bindPopup(popup_d4323cc91a5e5a6265c4701fe577443b)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_d91e2489d0bd78b06e22050b2c903aa5 = L.marker(\n",
+ " var marker_de37b37363e3ccfc59376a8bda59f68f = L.marker(\n",
" [37.781789, -122.401821],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_a3fd4f197f91e59c3951b34588031add = L.popup({"maxWidth": "100%"});\n",
+ " var popup_6a15b85998e5d5d08b9e97adf6547288 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_484a723805e487f8ee69727cc8942a30 = $(`<div id="html_484a723805e487f8ee69727cc8942a30" style="width: 100.0%; height: 100.0%;">LuLu</div>`)[0];\n",
- " popup_a3fd4f197f91e59c3951b34588031add.setContent(html_484a723805e487f8ee69727cc8942a30);\n",
+ " var html_32c4aed9771582739be140bf58f614b0 = $(`<div id="html_32c4aed9771582739be140bf58f614b0" style="width: 100.0%; height: 100.0%;">LuLu</div>`)[0];\n",
+ " popup_6a15b85998e5d5d08b9e97adf6547288.setContent(html_32c4aed9771582739be140bf58f614b0);\n",
" \n",
" \n",
"\n",
- " marker_d91e2489d0bd78b06e22050b2c903aa5.bindPopup(popup_a3fd4f197f91e59c3951b34588031add)\n",
+ " marker_de37b37363e3ccfc59376a8bda59f68f.bindPopup(popup_6a15b85998e5d5d08b9e97adf6547288)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_ecead318e16494ca24fed0dac847533f = L.marker(\n",
+ " var marker_4a0801fdd3d2dd8d1f4e24c34a564f91 = L.marker(\n",
" [37.770276, -122.445238],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_1430695809a88d2820d16c8a7be78c86 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_d6eeed2689131d2a6019a46e8bb4715c = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_31a39c41708b0d1fbaa1429ef5452f63 = $(`<div id="html_31a39c41708b0d1fbaa1429ef5452f63" style="width: 100.0%; height: 100.0%;">Magnolia Pub and Brewery</div>`)[0];\n",
- " popup_1430695809a88d2820d16c8a7be78c86.setContent(html_31a39c41708b0d1fbaa1429ef5452f63);\n",
+ " var html_60a7064c6979a049e912d37c8cf7c4bf = $(`<div id="html_60a7064c6979a049e912d37c8cf7c4bf" style="width: 100.0%; height: 100.0%;">Magnolia Pub and Brewery</div>`)[0];\n",
+ " popup_d6eeed2689131d2a6019a46e8bb4715c.setContent(html_60a7064c6979a049e912d37c8cf7c4bf);\n",
" \n",
" \n",
"\n",
- " marker_ecead318e16494ca24fed0dac847533f.bindPopup(popup_1430695809a88d2820d16c8a7be78c86)\n",
+ " marker_4a0801fdd3d2dd8d1f4e24c34a564f91.bindPopup(popup_d6eeed2689131d2a6019a46e8bb4715c)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_a8d1fd4d833092498ce6c6a505e13392 = L.marker(\n",
+ " var marker_fd4818c883493beaa8cc214866c17581 = L.marker(\n",
" [37.795132, -122.393349],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_50ce7a93bd5a10a201493d7faa2cdae6 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_e6511230698a8b0035c02e90bc957aa0 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_b80e2c0b7d77cce3b18666adc2ee3f97 = $(`<div id="html_b80e2c0b7d77cce3b18666adc2ee3f97" style="width: 100.0%; height: 100.0%;">MarketBar</div>`)[0];\n",
- " popup_50ce7a93bd5a10a201493d7faa2cdae6.setContent(html_b80e2c0b7d77cce3b18666adc2ee3f97);\n",
+ " var html_653eef096f4015482c508a062294401e = $(`<div id="html_653eef096f4015482c508a062294401e" style="width: 100.0%; height: 100.0%;">MarketBar</div>`)[0];\n",
+ " popup_e6511230698a8b0035c02e90bc957aa0.setContent(html_653eef096f4015482c508a062294401e);\n",
" \n",
" \n",
"\n",
- " marker_a8d1fd4d833092498ce6c6a505e13392.bindPopup(popup_50ce7a93bd5a10a201493d7faa2cdae6)\n",
+ " marker_fd4818c883493beaa8cc214866c17581.bindPopup(popup_e6511230698a8b0035c02e90bc957aa0)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_6a5c873a0cffd3fd3dc60264aedf46e6 = L.marker(\n",
+ " var marker_c4076df010bedd553dbd159337ccc910 = L.marker(\n",
" [37.776628, -122.395737],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_99cdc3aa44131d9e4b8419018257f3fa = L.popup({"maxWidth": "100%"});\n",
+ " var popup_f202501ae00d34dc70b757e8e98ab361 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_0bada8644fb62d31e611b6ff4103f66d = $(`<div id="html_0bada8644fb62d31e611b6ff4103f66d" style="width: 100.0%; height: 100.0%;">Marlowe</div>`)[0];\n",
- " popup_99cdc3aa44131d9e4b8419018257f3fa.setContent(html_0bada8644fb62d31e611b6ff4103f66d);\n",
+ " var html_816aceb9905e186a902dde87de6442de = $(`<div id="html_816aceb9905e186a902dde87de6442de" style="width: 100.0%; height: 100.0%;">Marlowe</div>`)[0];\n",
+ " popup_f202501ae00d34dc70b757e8e98ab361.setContent(html_816aceb9905e186a902dde87de6442de);\n",
" \n",
" \n",
"\n",
- " marker_6a5c873a0cffd3fd3dc60264aedf46e6.bindPopup(popup_99cdc3aa44131d9e4b8419018257f3fa)\n",
+ " marker_c4076df010bedd553dbd159337ccc910.bindPopup(popup_f202501ae00d34dc70b757e8e98ab361)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_31f9f83edd7e5d904a613d956117e82d = L.marker(\n",
+ " var marker_184d0b4a453b1cfbeced39d0c193c3b7 = L.marker(\n",
" [37.763281, -122.481814],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_f0d7b10387f533ea4b25e9c2bea6796c = L.popup({"maxWidth": "100%"});\n",
+ " var popup_51c2115718093826e71e7861e3f13c5d = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_3b8bf36e7617752c3631f8f8fbddac48 = $(`<div id="html_3b8bf36e7617752c3631f8f8fbddac48" style="width: 100.0%; height: 100.0%;">Marnee Thai</div>`)[0];\n",
- " popup_f0d7b10387f533ea4b25e9c2bea6796c.setContent(html_3b8bf36e7617752c3631f8f8fbddac48);\n",
+ " var html_16c0e57610b20ed3fc7b9efb74b605bd = $(`<div id="html_16c0e57610b20ed3fc7b9efb74b605bd" style="width: 100.0%; height: 100.0%;">Marnee Thai</div>`)[0];\n",
+ " popup_51c2115718093826e71e7861e3f13c5d.setContent(html_16c0e57610b20ed3fc7b9efb74b605bd);\n",
" \n",
" \n",
"\n",
- " marker_31f9f83edd7e5d904a613d956117e82d.bindPopup(popup_f0d7b10387f533ea4b25e9c2bea6796c)\n",
+ " marker_184d0b4a453b1cfbeced39d0c193c3b7.bindPopup(popup_51c2115718093826e71e7861e3f13c5d)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_28703bbca4dc425450bbf44b7a09638e = L.marker(\n",
+ " var marker_cd90b76a4a08c893d3b77910cbcd277d = L.marker(\n",
" [37.805898, -122.422545],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_ec9f0172e0233ab629f873b48525499c = L.popup({"maxWidth": "100%"});\n",
+ " var popup_628646ba63efabb93560db686270da05 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_f491e29678109c50963af1d08404e57b = $(`<div id="html_f491e29678109c50963af1d08404e57b" style="width: 100.0%; height: 100.0%;">McCormick & Kuleto's Seafood & Steaks</div>`)[0];\n",
- " popup_ec9f0172e0233ab629f873b48525499c.setContent(html_f491e29678109c50963af1d08404e57b);\n",
+ " var html_3b8b7a62f2be872f8e573679d1aa7828 = $(`<div id="html_3b8b7a62f2be872f8e573679d1aa7828" style="width: 100.0%; height: 100.0%;">McCormick & Kuleto's Seafood & Steaks</div>`)[0];\n",
+ " popup_628646ba63efabb93560db686270da05.setContent(html_3b8b7a62f2be872f8e573679d1aa7828);\n",
" \n",
" \n",
"\n",
- " marker_28703bbca4dc425450bbf44b7a09638e.bindPopup(popup_ec9f0172e0233ab629f873b48525499c)\n",
+ " marker_cd90b76a4a08c893d3b77910cbcd277d.bindPopup(popup_628646ba63efabb93560db686270da05)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_316adeba82678884ed2a99c4c4c85790 = L.marker(\n",
+ " var marker_7cf691cbc83665f7d7b7eaf572aa6122 = L.marker(\n",
" [37.784272, -122.404356],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_ae387a700f919bf663dc16631b899f3f = L.popup({"maxWidth": "100%"});\n",
+ " var popup_585e11a9472a1f7c97b68ff2ff8fef47 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_8b91c8b0839b48e56e3612a49305a9d7 = $(`<div id="html_8b91c8b0839b48e56e3612a49305a9d7" style="width: 100.0%; height: 100.0%;">Mel's Drive In</div>`)[0];\n",
- " popup_ae387a700f919bf663dc16631b899f3f.setContent(html_8b91c8b0839b48e56e3612a49305a9d7);\n",
+ " var html_832d82c7cac3ce5b26724318fc8c3707 = $(`<div id="html_832d82c7cac3ce5b26724318fc8c3707" style="width: 100.0%; height: 100.0%;">Mel's Drive In</div>`)[0];\n",
+ " popup_585e11a9472a1f7c97b68ff2ff8fef47.setContent(html_832d82c7cac3ce5b26724318fc8c3707);\n",
" \n",
" \n",
"\n",
- " marker_316adeba82678884ed2a99c4c4c85790.bindPopup(popup_ae387a700f919bf663dc16631b899f3f)\n",
+ " marker_7cf691cbc83665f7d7b7eaf572aa6122.bindPopup(popup_585e11a9472a1f7c97b68ff2ff8fef47)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_44e49458e148ee9955d9d1128e38bc88 = L.marker(\n",
+ " var marker_dc03c144f9fc4901f4254cf3b50fe969 = L.marker(\n",
" [37.785519, -122.420949],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_7c46032254932aeb887e60db78fdedd1 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_83f2eb0b414901ac5c96194c58eed08a = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_fd096271f335023f22b4d5f486b45466 = $(`<div id="html_fd096271f335023f22b4d5f486b45466" style="width: 100.0%; height: 100.0%;">Mel's Drive In</div>`)[0];\n",
- " popup_7c46032254932aeb887e60db78fdedd1.setContent(html_fd096271f335023f22b4d5f486b45466);\n",
+ " var html_840cf9e0665b9acb37041281c7977312 = $(`<div id="html_840cf9e0665b9acb37041281c7977312" style="width: 100.0%; height: 100.0%;">Mel's Drive In</div>`)[0];\n",
+ " popup_83f2eb0b414901ac5c96194c58eed08a.setContent(html_840cf9e0665b9acb37041281c7977312);\n",
" \n",
" \n",
"\n",
- " marker_44e49458e148ee9955d9d1128e38bc88.bindPopup(popup_7c46032254932aeb887e60db78fdedd1)\n",
+ " marker_dc03c144f9fc4901f4254cf3b50fe969.bindPopup(popup_83f2eb0b414901ac5c96194c58eed08a)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_9ee6bd9130d1d4c3a3f5f0560d831224 = L.marker(\n",
+ " var marker_9097cca8d9be28c6eac3e3ec1b05e054 = L.marker(\n",
" [37.801255, -122.411441],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_9374dcf193fcc6b59cc493023e6bb0e2 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_c730371879a8c208cea24b2d95dea774 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_d760ffe83bb7952dea49654212535d66 = $(`<div id="html_d760ffe83bb7952dea49654212535d66" style="width: 100.0%; height: 100.0%;">Melt</div>`)[0];\n",
- " popup_9374dcf193fcc6b59cc493023e6bb0e2.setContent(html_d760ffe83bb7952dea49654212535d66);\n",
+ " var html_ea7a366f9a1502ba826d83c0d96d605c = $(`<div id="html_ea7a366f9a1502ba826d83c0d96d605c" style="width: 100.0%; height: 100.0%;">Melt</div>`)[0];\n",
+ " popup_c730371879a8c208cea24b2d95dea774.setContent(html_ea7a366f9a1502ba826d83c0d96d605c);\n",
" \n",
" \n",
"\n",
- " marker_9ee6bd9130d1d4c3a3f5f0560d831224.bindPopup(popup_9374dcf193fcc6b59cc493023e6bb0e2)\n",
+ " marker_9097cca8d9be28c6eac3e3ec1b05e054.bindPopup(popup_c730371879a8c208cea24b2d95dea774)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_4bc63628c2e33571621fe4e570a887ce = L.marker(\n",
+ " var marker_e2aa01d3ca9e37eff1e1fd70b94ec5b2 = L.marker(\n",
" [37.772058, -122.431702],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_0ef5b1e37a37e95f3a95c9f7e411a1f7 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_fe490a37631336d243b6141562af2a41 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_a0a12f1908efbd15dcda216ae226fe09 = $(`<div id="html_a0a12f1908efbd15dcda216ae226fe09" style="width: 100.0%; height: 100.0%;">Memphis Minnies BBQ Joint</div>`)[0];\n",
- " popup_0ef5b1e37a37e95f3a95c9f7e411a1f7.setContent(html_a0a12f1908efbd15dcda216ae226fe09);\n",
+ " var html_d329823b0c51c07bf1fb61d0dbbb3cbb = $(`<div id="html_d329823b0c51c07bf1fb61d0dbbb3cbb" style="width: 100.0%; height: 100.0%;">Memphis Minnies BBQ Joint</div>`)[0];\n",
+ " popup_fe490a37631336d243b6141562af2a41.setContent(html_d329823b0c51c07bf1fb61d0dbbb3cbb);\n",
" \n",
" \n",
"\n",
- " marker_4bc63628c2e33571621fe4e570a887ce.bindPopup(popup_0ef5b1e37a37e95f3a95c9f7e411a1f7)\n",
+ " marker_e2aa01d3ca9e37eff1e1fd70b94ec5b2.bindPopup(popup_fe490a37631336d243b6141562af2a41)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_ccedcacbba87a3b9f6479aef0d0af7d1 = L.marker(\n",
+ " var marker_06c1c0ea3999fa38f0be67c2151dd569 = L.marker(\n",
" [37.795484, -122.393178],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_e7dd1e5d64dd8c46e34bc6c178e744b1 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_45bb5830c79a4225bb0824bba55f7ce3 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_17a22d8738afa9878527f206e0abef1d = $(`<div id="html_17a22d8738afa9878527f206e0abef1d" style="width: 100.0%; height: 100.0%;">Mijita</div>`)[0];\n",
- " popup_e7dd1e5d64dd8c46e34bc6c178e744b1.setContent(html_17a22d8738afa9878527f206e0abef1d);\n",
+ " var html_92ca1f60a5741b5a4d47eed1b19405a3 = $(`<div id="html_92ca1f60a5741b5a4d47eed1b19405a3" style="width: 100.0%; height: 100.0%;">Mijita</div>`)[0];\n",
+ " popup_45bb5830c79a4225bb0824bba55f7ce3.setContent(html_92ca1f60a5741b5a4d47eed1b19405a3);\n",
" \n",
" \n",
"\n",
- " marker_ccedcacbba87a3b9f6479aef0d0af7d1.bindPopup(popup_e7dd1e5d64dd8c46e34bc6c178e744b1)\n",
+ " marker_06c1c0ea3999fa38f0be67c2151dd569.bindPopup(popup_45bb5830c79a4225bb0824bba55f7ce3)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_5ab516a10f21c75627e932357542ba22 = L.marker(\n",
+ " var marker_4b2e3107c4afbd94506f47e0aabd40a2 = L.marker(\n",
" [37.782187, -122.448613],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_738cd8d95a1ab759e8ece54ab7a98fd0 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_3b13c70ff25caf8af9524f1c4b53f280 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_ec252e2685548631790aab22def4151b = $(`<div id="html_ec252e2685548631790aab22def4151b" style="width: 100.0%; height: 100.0%;">Nanis Coffee</div>`)[0];\n",
- " popup_738cd8d95a1ab759e8ece54ab7a98fd0.setContent(html_ec252e2685548631790aab22def4151b);\n",
+ " var html_7135ac611807175cfe0627ffa76967b8 = $(`<div id="html_7135ac611807175cfe0627ffa76967b8" style="width: 100.0%; height: 100.0%;">Nanis Coffee</div>`)[0];\n",
+ " popup_3b13c70ff25caf8af9524f1c4b53f280.setContent(html_7135ac611807175cfe0627ffa76967b8);\n",
" \n",
" \n",
"\n",
- " marker_5ab516a10f21c75627e932357542ba22.bindPopup(popup_738cd8d95a1ab759e8ece54ab7a98fd0)\n",
+ " marker_4b2e3107c4afbd94506f47e0aabd40a2.bindPopup(popup_3b13c70ff25caf8af9524f1c4b53f280)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_97760d0214a95ed46be49e67c4d6d36d = L.marker(\n",
+ " var marker_6e35c52892ec19b8fc7f6a852a43d2ad = L.marker(\n",
" [37.774839, -122.437615],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_b6c5f4004b93aa7fe327e17c5326dcc2 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_75def5d584f0208d407bdf1e948d7a51 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_cde726283495f98d0aec0dfb661f7033 = $(`<div id="html_cde726283495f98d0aec0dfb661f7033" style="width: 100.0%; height: 100.0%;">Nopa</div>`)[0];\n",
- " popup_b6c5f4004b93aa7fe327e17c5326dcc2.setContent(html_cde726283495f98d0aec0dfb661f7033);\n",
+ " var html_b5018791f01295cc161e664973b8d21b = $(`<div id="html_b5018791f01295cc161e664973b8d21b" style="width: 100.0%; height: 100.0%;">Nopa</div>`)[0];\n",
+ " popup_75def5d584f0208d407bdf1e948d7a51.setContent(html_b5018791f01295cc161e664973b8d21b);\n",
" \n",
" \n",
"\n",
- " marker_97760d0214a95ed46be49e67c4d6d36d.bindPopup(popup_b6c5f4004b93aa7fe327e17c5326dcc2)\n",
+ " marker_6e35c52892ec19b8fc7f6a852a43d2ad.bindPopup(popup_75def5d584f0208d407bdf1e948d7a51)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_ac82ecf7eee41b6f6b8d64afc08581d4 = L.marker(\n",
+ " var marker_d91ff0a35888b18b52193f44b36f7858 = L.marker(\n",
" [37.799702, -122.409446],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_e7a615477eb7ddbf9d3bab77a03d74d7 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_e2371a7e78fa69a84539ed4c3238804f = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_b2bbdc19cd516c59136f530c427c60c9 = $(`<div id="html_b2bbdc19cd516c59136f530c427c60c9" style="width: 100.0%; height: 100.0%;">Original US Restaurant</div>`)[0];\n",
- " popup_e7a615477eb7ddbf9d3bab77a03d74d7.setContent(html_b2bbdc19cd516c59136f530c427c60c9);\n",
+ " var html_f9395a995bf433fbaa06a42afb21f44b = $(`<div id="html_f9395a995bf433fbaa06a42afb21f44b" style="width: 100.0%; height: 100.0%;">Original US Restaurant</div>`)[0];\n",
+ " popup_e2371a7e78fa69a84539ed4c3238804f.setContent(html_f9395a995bf433fbaa06a42afb21f44b);\n",
" \n",
" \n",
"\n",
- " marker_ac82ecf7eee41b6f6b8d64afc08581d4.bindPopup(popup_e7a615477eb7ddbf9d3bab77a03d74d7)\n",
+ " marker_d91ff0a35888b18b52193f44b36f7858.bindPopup(popup_e2371a7e78fa69a84539ed4c3238804f)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_9255488acf41e3b7a7201a88c00aba67 = L.marker(\n",
+ " var marker_6bac0b065dfbccb43fc234a39ba3464a = L.marker(\n",
" [37.759777, -122.42126],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_1bee42f4f47a22de630dd6523c13be0e = L.popup({"maxWidth": "100%"});\n",
+ " var popup_118e4abbadefa9de509ebe9a8dffe83a = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_7b551b2beaacd411b391ce53771c356f = $(`<div id="html_7b551b2beaacd411b391ce53771c356f" style="width: 100.0%; height: 100.0%;">OSHA Thai</div>`)[0];\n",
- " popup_1bee42f4f47a22de630dd6523c13be0e.setContent(html_7b551b2beaacd411b391ce53771c356f);\n",
+ " var html_10627aec32a2f9d57a328c32206e9826 = $(`<div id="html_10627aec32a2f9d57a328c32206e9826" style="width: 100.0%; height: 100.0%;">OSHA Thai</div>`)[0];\n",
+ " popup_118e4abbadefa9de509ebe9a8dffe83a.setContent(html_10627aec32a2f9d57a328c32206e9826);\n",
" \n",
" \n",
"\n",
- " marker_9255488acf41e3b7a7201a88c00aba67.bindPopup(popup_1bee42f4f47a22de630dd6523c13be0e)\n",
+ " marker_6bac0b065dfbccb43fc234a39ba3464a.bindPopup(popup_118e4abbadefa9de509ebe9a8dffe83a)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_b9aa273a584ef23a4de6b899fa8996a1 = L.marker(\n",
+ " var marker_6c32d61bf8f54fdc0956124bbee21a89 = L.marker(\n",
" [37.787423, -122.398881],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_aea49cb2133f210319586f9e42e97a24 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_70d1f74f809f721c46cd44a2566aa230 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_960730d6d43dfabdd97e2ed25ec71f72 = $(`<div id="html_960730d6d43dfabdd97e2ed25ec71f72" style="width: 100.0%; height: 100.0%;">OSHA Thai Restaurant</div>`)[0];\n",
- " popup_aea49cb2133f210319586f9e42e97a24.setContent(html_960730d6d43dfabdd97e2ed25ec71f72);\n",
+ " var html_ea8f15935f17395d885f326483ed8475 = $(`<div id="html_ea8f15935f17395d885f326483ed8475" style="width: 100.0%; height: 100.0%;">OSHA Thai Restaurant</div>`)[0];\n",
+ " popup_70d1f74f809f721c46cd44a2566aa230.setContent(html_ea8f15935f17395d885f326483ed8475);\n",
" \n",
" \n",
"\n",
- " marker_b9aa273a584ef23a4de6b899fa8996a1.bindPopup(popup_aea49cb2133f210319586f9e42e97a24)\n",
+ " marker_6c32d61bf8f54fdc0956124bbee21a89.bindPopup(popup_70d1f74f809f721c46cd44a2566aa230)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_309243b9982e49001ec23e497192dcc8 = L.marker(\n",
+ " var marker_a593d912f9d7b46ea5c3bbd062c5aa93 = L.marker(\n",
" [37.779826, -122.494535],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_dd3f06e7ed3501c571ce6a5c8053c7d3 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_c9761ec8cccb1d1d1c44446ad8ce21f9 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_ea9b78e96e15ad10f0e3bd306ed12848 = $(`<div id="html_ea9b78e96e15ad10f0e3bd306ed12848" style="width: 100.0%; height: 100.0%;">Pacific Cafe</div>`)[0];\n",
- " popup_dd3f06e7ed3501c571ce6a5c8053c7d3.setContent(html_ea9b78e96e15ad10f0e3bd306ed12848);\n",
+ " var html_9b7b75c25e5ff1a58520e1e0c6e7ebcc = $(`<div id="html_9b7b75c25e5ff1a58520e1e0c6e7ebcc" style="width: 100.0%; height: 100.0%;">Pacific Cafe</div>`)[0];\n",
+ " popup_c9761ec8cccb1d1d1c44446ad8ce21f9.setContent(html_9b7b75c25e5ff1a58520e1e0c6e7ebcc);\n",
" \n",
" \n",
"\n",
- " marker_309243b9982e49001ec23e497192dcc8.bindPopup(popup_dd3f06e7ed3501c571ce6a5c8053c7d3)\n",
+ " marker_a593d912f9d7b46ea5c3bbd062c5aa93.bindPopup(popup_c9761ec8cccb1d1d1c44446ad8ce21f9)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_c02a2cfecf2c4a5ecc63e066c34bd60a = L.marker(\n",
+ " var marker_eef7d29e6be18ea2530da124de65641c = L.marker(\n",
" [37.765773, -122.466268],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_722adb548f906ee9219747fec97130c8 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_f1f26a6d8bd67287e478d11add425792 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_3d5189aeeff42875803dfa1765104b88 = $(`<div id="html_3d5189aeeff42875803dfa1765104b88" style="width: 100.0%; height: 100.0%;">Pacific Catch</div>`)[0];\n",
- " popup_722adb548f906ee9219747fec97130c8.setContent(html_3d5189aeeff42875803dfa1765104b88);\n",
+ " var html_8157b73a551b15c2691896acc397d5a9 = $(`<div id="html_8157b73a551b15c2691896acc397d5a9" style="width: 100.0%; height: 100.0%;">Pacific Catch</div>`)[0];\n",
+ " popup_f1f26a6d8bd67287e478d11add425792.setContent(html_8157b73a551b15c2691896acc397d5a9);\n",
" \n",
" \n",
"\n",
- " marker_c02a2cfecf2c4a5ecc63e066c34bd60a.bindPopup(popup_722adb548f906ee9219747fec97130c8)\n",
+ " marker_eef7d29e6be18ea2530da124de65641c.bindPopup(popup_f1f26a6d8bd67287e478d11add425792)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_2135de96dfcc8d6ad1f0a94ab7377f9c = L.marker(\n",
+ " var marker_d73bb3ff454ea1346a10b5d8e91d482d = L.marker(\n",
" [37.770036, -122.44629],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_a303e60e570b9ae3a9b5f8010a9a49c6 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_073580db8e19aa049ac60158cef50157 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_043ab9378f697a931be2d8577a218504 = $(`<div id="html_043ab9378f697a931be2d8577a218504" style="width: 100.0%; height: 100.0%;">Panini</div>`)[0];\n",
- " popup_a303e60e570b9ae3a9b5f8010a9a49c6.setContent(html_043ab9378f697a931be2d8577a218504);\n",
+ " var html_9e173aaaf038a5f5d6ef0dbbc520d6e1 = $(`<div id="html_9e173aaaf038a5f5d6ef0dbbc520d6e1" style="width: 100.0%; height: 100.0%;">Panini</div>`)[0];\n",
+ " popup_073580db8e19aa049ac60158cef50157.setContent(html_9e173aaaf038a5f5d6ef0dbbc520d6e1);\n",
" \n",
" \n",
"\n",
- " marker_2135de96dfcc8d6ad1f0a94ab7377f9c.bindPopup(popup_a303e60e570b9ae3a9b5f8010a9a49c6)\n",
+ " marker_d73bb3ff454ea1346a10b5d8e91d482d.bindPopup(popup_073580db8e19aa049ac60158cef50157)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_81b279a838e5d111e10f3dd77ef7956f = L.marker(\n",
+ " var marker_dfda742ba592ceeb86c203ea822b765c = L.marker(\n",
" [37.76524, -122.466318],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_be5e9242485ecf30dcbca443837780a9 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_f7257c5464ec721bee4f769794c69b55 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_16b551dc4b96f10331a62e74a33b1475 = $(`<div id="html_16b551dc4b96f10331a62e74a33b1475" style="width: 100.0%; height: 100.0%;">Park Chow</div>`)[0];\n",
- " popup_be5e9242485ecf30dcbca443837780a9.setContent(html_16b551dc4b96f10331a62e74a33b1475);\n",
+ " var html_ccf32da0f3ba9406f615a0886b3b57fe = $(`<div id="html_ccf32da0f3ba9406f615a0886b3b57fe" style="width: 100.0%; height: 100.0%;">Park Chow</div>`)[0];\n",
+ " popup_f7257c5464ec721bee4f769794c69b55.setContent(html_ccf32da0f3ba9406f615a0886b3b57fe);\n",
" \n",
" \n",
"\n",
- " marker_81b279a838e5d111e10f3dd77ef7956f.bindPopup(popup_be5e9242485ecf30dcbca443837780a9)\n",
+ " marker_dfda742ba592ceeb86c203ea822b765c.bindPopup(popup_f7257c5464ec721bee4f769794c69b55)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_99e664550f15783349c61aed1fdd4f35 = L.marker(\n",
+ " var marker_caedf850ecac7ad3731849a388981859 = L.marker(\n",
" [37.765736, -122.466553],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_b8573c17cda90bfa8923b2427a183dbe = L.popup({"maxWidth": "100%"});\n",
+ " var popup_505d1a4a06a343f1026a700a7725836d = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_3f61142645388d069e46e7e8dd4c9ff2 = $(`<div id="html_3f61142645388d069e46e7e8dd4c9ff2" style="width: 100.0%; height: 100.0%;">Park Gyros</div>`)[0];\n",
- " popup_b8573c17cda90bfa8923b2427a183dbe.setContent(html_3f61142645388d069e46e7e8dd4c9ff2);\n",
+ " var html_62a90e53e8daf16972a0681d2a3c4129 = $(`<div id="html_62a90e53e8daf16972a0681d2a3c4129" style="width: 100.0%; height: 100.0%;">Park Gyros</div>`)[0];\n",
+ " popup_505d1a4a06a343f1026a700a7725836d.setContent(html_62a90e53e8daf16972a0681d2a3c4129);\n",
" \n",
" \n",
"\n",
- " marker_99e664550f15783349c61aed1fdd4f35.bindPopup(popup_b8573c17cda90bfa8923b2427a183dbe)\n",
+ " marker_caedf850ecac7ad3731849a388981859.bindPopup(popup_505d1a4a06a343f1026a700a7725836d)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_a5ff795746776178c70bb1d4ba9c1558 = L.marker(\n",
+ " var marker_3d26531681cf1f4c93fb5c4038580737 = L.marker(\n",
" [37.803985, -122.414841],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_1a4f88ffae1eed490c2595ea7a28d9a4 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_781ecbae0a97778d70ca24a8bbbe1e3b = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_8bad17e10cbe404c6989574e4768b0d4 = $(`<div id="html_8bad17e10cbe404c6989574e4768b0d4" style="width: 100.0%; height: 100.0%;">Pat's Cafe</div>`)[0];\n",
- " popup_1a4f88ffae1eed490c2595ea7a28d9a4.setContent(html_8bad17e10cbe404c6989574e4768b0d4);\n",
+ " var html_f438bf2c800b99855fdc9f5ecc92a334 = $(`<div id="html_f438bf2c800b99855fdc9f5ecc92a334" style="width: 100.0%; height: 100.0%;">Pat's Cafe</div>`)[0];\n",
+ " popup_781ecbae0a97778d70ca24a8bbbe1e3b.setContent(html_f438bf2c800b99855fdc9f5ecc92a334);\n",
" \n",
" \n",
"\n",
- " marker_a5ff795746776178c70bb1d4ba9c1558.bindPopup(popup_1a4f88ffae1eed490c2595ea7a28d9a4)\n",
+ " marker_3d26531681cf1f4c93fb5c4038580737.bindPopup(popup_781ecbae0a97778d70ca24a8bbbe1e3b)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_ee9e05b57fe1afa0d0895406ade22005 = L.marker(\n",
+ " var marker_7560d96a6331ecf69939b7875aee5684 = L.marker(\n",
" [37.787739, -122.413641],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_7368fd9dd03f6a38bc5d7a0ad0d43717 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_e7c56bf314ff4c1b45088b80efe2fcc3 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_ea127740e6c470b1491266cccb37042f = $(`<div id="html_ea127740e6c470b1491266cccb37042f" style="width: 100.0%; height: 100.0%;">Pearl's Deluxe Burgers</div>`)[0];\n",
- " popup_7368fd9dd03f6a38bc5d7a0ad0d43717.setContent(html_ea127740e6c470b1491266cccb37042f);\n",
+ " var html_898658e039115ff7c158ab6b36e636ed = $(`<div id="html_898658e039115ff7c158ab6b36e636ed" style="width: 100.0%; height: 100.0%;">Pearl's Deluxe Burgers</div>`)[0];\n",
+ " popup_e7c56bf314ff4c1b45088b80efe2fcc3.setContent(html_898658e039115ff7c158ab6b36e636ed);\n",
" \n",
" \n",
"\n",
- " marker_ee9e05b57fe1afa0d0895406ade22005.bindPopup(popup_7368fd9dd03f6a38bc5d7a0ad0d43717)\n",
+ " marker_7560d96a6331ecf69939b7875aee5684.bindPopup(popup_e7c56bf314ff4c1b45088b80efe2fcc3)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_f9f798395c47846e4ad20acbae0c2690 = L.marker(\n",
+ " var marker_9d29a3d8025a95b00f1afa953e658513 = L.marker(\n",
" [37.797787, -122.431267],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_b75dca28aefdad33bd0c540ae13623ca = L.popup({"maxWidth": "100%"});\n",
+ " var popup_f37aec0515071c2eeb87f9a55b6f079f = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_a998ffe3e7475d627cb156efee67afd4 = $(`<div id="html_a998ffe3e7475d627cb156efee67afd4" style="width: 100.0%; height: 100.0%;">Perry's</div>`)[0];\n",
- " popup_b75dca28aefdad33bd0c540ae13623ca.setContent(html_a998ffe3e7475d627cb156efee67afd4);\n",
+ " var html_13670f249039b73d544ddc0a31737e50 = $(`<div id="html_13670f249039b73d544ddc0a31737e50" style="width: 100.0%; height: 100.0%;">Perry's</div>`)[0];\n",
+ " popup_f37aec0515071c2eeb87f9a55b6f079f.setContent(html_13670f249039b73d544ddc0a31737e50);\n",
" \n",
" \n",
"\n",
- " marker_f9f798395c47846e4ad20acbae0c2690.bindPopup(popup_b75dca28aefdad33bd0c540ae13623ca)\n",
+ " marker_9d29a3d8025a95b00f1afa953e658513.bindPopup(popup_f37aec0515071c2eeb87f9a55b6f079f)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_19aca31c2c55f3a7b7ed9668cd6a6f38 = L.marker(\n",
+ " var marker_826894d02e8bb78f7afcb247b6ed88dc = L.marker(\n",
" [37.792806, -122.392288],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_3ff6f70db7d2540996ce998f8adb094b = L.popup({"maxWidth": "100%"});\n",
+ " var popup_66d45c4019002723c1a8fa8b544320eb = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_845aa23e1ec0419e39e2f77daff516cf = $(`<div id="html_845aa23e1ec0419e39e2f77daff516cf" style="width: 100.0%; height: 100.0%;">Perry's</div>`)[0];\n",
- " popup_3ff6f70db7d2540996ce998f8adb094b.setContent(html_845aa23e1ec0419e39e2f77daff516cf);\n",
+ " var html_cc751dd2c714d0e550a24cea49388a27 = $(`<div id="html_cc751dd2c714d0e550a24cea49388a27" style="width: 100.0%; height: 100.0%;">Perry's</div>`)[0];\n",
+ " popup_66d45c4019002723c1a8fa8b544320eb.setContent(html_cc751dd2c714d0e550a24cea49388a27);\n",
" \n",
" \n",
"\n",
- " marker_19aca31c2c55f3a7b7ed9668cd6a6f38.bindPopup(popup_3ff6f70db7d2540996ce998f8adb094b)\n",
+ " marker_826894d02e8bb78f7afcb247b6ed88dc.bindPopup(popup_66d45c4019002723c1a8fa8b544320eb)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_1a128f1e656479bdb815dd96c6d63438 = L.marker(\n",
+ " var marker_a869c4dd9b8b0bd882c74738c9af691a = L.marker(\n",
" [37.797286, -122.422168],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_e2d079d294610b46825dfd750cb821f5 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_4994d216084fc669c41cf3c7749edbcf = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_ece5c3d70f567b8cff341cf94b4ebfdd = $(`<div id="html_ece5c3d70f567b8cff341cf94b4ebfdd" style="width: 100.0%; height: 100.0%;">Pesce</div>`)[0];\n",
- " popup_e2d079d294610b46825dfd750cb821f5.setContent(html_ece5c3d70f567b8cff341cf94b4ebfdd);\n",
+ " var html_507fb70382947569f9a9ce6d9733f8d5 = $(`<div id="html_507fb70382947569f9a9ce6d9733f8d5" style="width: 100.0%; height: 100.0%;">Pesce</div>`)[0];\n",
+ " popup_4994d216084fc669c41cf3c7749edbcf.setContent(html_507fb70382947569f9a9ce6d9733f8d5);\n",
" \n",
" \n",
"\n",
- " marker_1a128f1e656479bdb815dd96c6d63438.bindPopup(popup_e2d079d294610b46825dfd750cb821f5)\n",
+ " marker_a869c4dd9b8b0bd882c74738c9af691a.bindPopup(popup_4994d216084fc669c41cf3c7749edbcf)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_a686624e852c834c9910c8265473d7ca = L.marker(\n",
+ " var marker_0e1312259a85905bdf700d236171656d = L.marker(\n",
" [37.783914, -122.417772],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_3026f090a3a660a266c1f3311f9dd985 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_4d3c5f11db06fce9cd60e4661f606fba = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_f7043676f75312f6f281b4ad97a22fe6 = $(`<div id="html_f7043676f75312f6f281b4ad97a22fe6" style="width: 100.0%; height: 100.0%;">Pho 2000</div>`)[0];\n",
- " popup_3026f090a3a660a266c1f3311f9dd985.setContent(html_f7043676f75312f6f281b4ad97a22fe6);\n",
+ " var html_51a6670a2dd0c646aaabd5881e8600b2 = $(`<div id="html_51a6670a2dd0c646aaabd5881e8600b2" style="width: 100.0%; height: 100.0%;">Pho 2000</div>`)[0];\n",
+ " popup_4d3c5f11db06fce9cd60e4661f606fba.setContent(html_51a6670a2dd0c646aaabd5881e8600b2);\n",
" \n",
" \n",
"\n",
- " marker_a686624e852c834c9910c8265473d7ca.bindPopup(popup_3026f090a3a660a266c1f3311f9dd985)\n",
+ " marker_0e1312259a85905bdf700d236171656d.bindPopup(popup_4d3c5f11db06fce9cd60e4661f606fba)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_3ef0b378051997e4c0cd7ee3eb074910 = L.marker(\n",
+ " var marker_84b255bb17b482e09edad91cbd47df0d = L.marker(\n",
" [37.80947, -122.410211],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_fb74d658827bb8e8508f09c0c4d928c2 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_0d7802adf8da9ee6ffb59f4835a02fc5 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_e91fbee1bcd4f3d6d3ea32caeb89ba19 = $(`<div id="html_e91fbee1bcd4f3d6d3ea32caeb89ba19" style="width: 100.0%; height: 100.0%;">Pier Market Seafood Restaurant</div>`)[0];\n",
- " popup_fb74d658827bb8e8508f09c0c4d928c2.setContent(html_e91fbee1bcd4f3d6d3ea32caeb89ba19);\n",
+ " var html_1d02533d377a328b888b35598511ffee = $(`<div id="html_1d02533d377a328b888b35598511ffee" style="width: 100.0%; height: 100.0%;">Pier Market Seafood Restaurant</div>`)[0];\n",
+ " popup_0d7802adf8da9ee6ffb59f4835a02fc5.setContent(html_1d02533d377a328b888b35598511ffee);\n",
" \n",
" \n",
"\n",
- " marker_3ef0b378051997e4c0cd7ee3eb074910.bindPopup(popup_fb74d658827bb8e8508f09c0c4d928c2)\n",
+ " marker_84b255bb17b482e09edad91cbd47df0d.bindPopup(popup_0d7802adf8da9ee6ffb59f4835a02fc5)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_9464eef51fcbbda3503252b53691718d = L.marker(\n",
+ " var marker_ea57e1ff11ad0bed54a28b2591573a45 = L.marker(\n",
" [37.782054, -122.449182],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_350c5b2db103a6e06f03f54bd3084e0f = L.popup({"maxWidth": "100%"});\n",
+ " var popup_622f45f2bfc66eec3ce0cc0f8b1dcd49 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_89e51ee13d6082b89ffcf116cfe74fc4 = $(`<div id="html_89e51ee13d6082b89ffcf116cfe74fc4" style="width: 100.0%; height: 100.0%;">Pig & Whistle Bar</div>`)[0];\n",
- " popup_350c5b2db103a6e06f03f54bd3084e0f.setContent(html_89e51ee13d6082b89ffcf116cfe74fc4);\n",
+ " var html_1a23683724d87aa76d5f06286ea6b3d9 = $(`<div id="html_1a23683724d87aa76d5f06286ea6b3d9" style="width: 100.0%; height: 100.0%;">Pig & Whistle Bar</div>`)[0];\n",
+ " popup_622f45f2bfc66eec3ce0cc0f8b1dcd49.setContent(html_1a23683724d87aa76d5f06286ea6b3d9);\n",
" \n",
" \n",
"\n",
- " marker_9464eef51fcbbda3503252b53691718d.bindPopup(popup_350c5b2db103a6e06f03f54bd3084e0f)\n",
+ " marker_ea57e1ff11ad0bed54a28b2591573a45.bindPopup(popup_622f45f2bfc66eec3ce0cc0f8b1dcd49)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_9571de7288679692bea48ed0a4f4c890 = L.marker(\n",
+ " var marker_a19f29d04a40d20ad72dde210f1fbfa8 = L.marker(\n",
" [37.800685, -122.401678],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_3ad2b3d2a78686fc1556603210c88599 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_513decc1a1801ea457628a1735cf00a6 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_76ab060c077dfd2915c23378482315d7 = $(`<div id="html_76ab060c077dfd2915c23378482315d7" style="width: 100.0%; height: 100.0%;">Piperade</div>`)[0];\n",
- " popup_3ad2b3d2a78686fc1556603210c88599.setContent(html_76ab060c077dfd2915c23378482315d7);\n",
+ " var html_5c6682d7deaaa7e364b2bc0872fe0971 = $(`<div id="html_5c6682d7deaaa7e364b2bc0872fe0971" style="width: 100.0%; height: 100.0%;">Piperade</div>`)[0];\n",
+ " popup_513decc1a1801ea457628a1735cf00a6.setContent(html_5c6682d7deaaa7e364b2bc0872fe0971);\n",
" \n",
" \n",
"\n",
- " marker_9571de7288679692bea48ed0a4f4c890.bindPopup(popup_3ad2b3d2a78686fc1556603210c88599)\n",
+ " marker_a19f29d04a40d20ad72dde210f1fbfa8.bindPopup(popup_513decc1a1801ea457628a1735cf00a6)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_f90d5e36256e866694f1d8e5fab9de63 = L.marker(\n",
+ " var marker_1d0fe450ddffef155ec425841ca31906 = L.marker(\n",
" [37.732046, -122.405565],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_8e5905ff761e64a1c9adc20ea4410f48 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_8e95f4e406bd3a8e2db0c3605d9c29c6 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_100815578842c55409692998ead0b174 = $(`<div id="html_100815578842c55409692998ead0b174" style="width: 100.0%; height: 100.0%;">Pizza Joint</div>`)[0];\n",
- " popup_8e5905ff761e64a1c9adc20ea4410f48.setContent(html_100815578842c55409692998ead0b174);\n",
+ " var html_2a3bad5e0743d6601ab45ecc58ed93e1 = $(`<div id="html_2a3bad5e0743d6601ab45ecc58ed93e1" style="width: 100.0%; height: 100.0%;">Pizza Joint</div>`)[0];\n",
+ " popup_8e95f4e406bd3a8e2db0c3605d9c29c6.setContent(html_2a3bad5e0743d6601ab45ecc58ed93e1);\n",
" \n",
" \n",
"\n",
- " marker_f90d5e36256e866694f1d8e5fab9de63.bindPopup(popup_8e5905ff761e64a1c9adc20ea4410f48)\n",
+ " marker_1d0fe450ddffef155ec425841ca31906.bindPopup(popup_8e95f4e406bd3a8e2db0c3605d9c29c6)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_41906a0c16435cd816102c7d7e333456 = L.marker(\n",
+ " var marker_f68546ff765a4381269a49cfc0a5f378 = L.marker(\n",
" [37.761518, -122.424233],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_e90b0a0be9b8063d4293faf5acf180d7 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_23abc598a82da1b2b72563fd117a9740 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_90df8e7cc63d6cdc4b25675a50328032 = $(`<div id="html_90df8e7cc63d6cdc4b25675a50328032" style="width: 100.0%; height: 100.0%;">Pizzeria Delfina</div>`)[0];\n",
- " popup_e90b0a0be9b8063d4293faf5acf180d7.setContent(html_90df8e7cc63d6cdc4b25675a50328032);\n",
+ " var html_b2b671c8d9531e3f16bb9db6336bb1f0 = $(`<div id="html_b2b671c8d9531e3f16bb9db6336bb1f0" style="width: 100.0%; height: 100.0%;">Pizzeria Delfina</div>`)[0];\n",
+ " popup_23abc598a82da1b2b72563fd117a9740.setContent(html_b2b671c8d9531e3f16bb9db6336bb1f0);\n",
" \n",
" \n",
"\n",
- " marker_41906a0c16435cd816102c7d7e333456.bindPopup(popup_e90b0a0be9b8063d4293faf5acf180d7)\n",
+ " marker_f68546ff765a4381269a49cfc0a5f378.bindPopup(popup_23abc598a82da1b2b72563fd117a9740)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_bf0a4257bfb369f6d20b7592b18ea480 = L.marker(\n",
+ " var marker_a6a011ea39ce3eba5ef3ff844b532a34 = L.marker(\n",
" [37.788925, -122.434241],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_9668ad20144e9e684aec112eac3a71e6 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_4e2b2de983e237f0feb07a2ad16fc6c9 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_9aab541f4369ec39c077473193aedefc = $(`<div id="html_9aab541f4369ec39c077473193aedefc" style="width: 100.0%; height: 100.0%;">Pizzeria Delfina</div>`)[0];\n",
- " popup_9668ad20144e9e684aec112eac3a71e6.setContent(html_9aab541f4369ec39c077473193aedefc);\n",
+ " var html_48d283abf06a6625941c9f43ba5c6a76 = $(`<div id="html_48d283abf06a6625941c9f43ba5c6a76" style="width: 100.0%; height: 100.0%;">Pizzeria Delfina</div>`)[0];\n",
+ " popup_4e2b2de983e237f0feb07a2ad16fc6c9.setContent(html_48d283abf06a6625941c9f43ba5c6a76);\n",
" \n",
" \n",
"\n",
- " marker_bf0a4257bfb369f6d20b7592b18ea480.bindPopup(popup_9668ad20144e9e684aec112eac3a71e6)\n",
+ " marker_a6a011ea39ce3eba5ef3ff844b532a34.bindPopup(popup_4e2b2de983e237f0feb07a2ad16fc6c9)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_0e2c315f2a04f5677715ba2ae80cc895 = L.marker(\n",
+ " var marker_db29b1459b67523484d2e05c6ba3ce04 = L.marker(\n",
" [37.791286, -122.403731],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_5043af56b0a890c9cd5dc87313f74bc1 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_0b78930277a87214b9e4324cc93273e1 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_6dc476329719c8ff795e5615e83b8d4c = $(`<div id="html_6dc476329719c8ff795e5615e83b8d4c" style="width: 100.0%; height: 100.0%;">Plouf</div>`)[0];\n",
- " popup_5043af56b0a890c9cd5dc87313f74bc1.setContent(html_6dc476329719c8ff795e5615e83b8d4c);\n",
+ " var html_4bcb5e0a7cf3e28b6ae0148b105134ed = $(`<div id="html_4bcb5e0a7cf3e28b6ae0148b105134ed" style="width: 100.0%; height: 100.0%;">Plouf</div>`)[0];\n",
+ " popup_0b78930277a87214b9e4324cc93273e1.setContent(html_4bcb5e0a7cf3e28b6ae0148b105134ed);\n",
" \n",
" \n",
"\n",
- " marker_0e2c315f2a04f5677715ba2ae80cc895.bindPopup(popup_5043af56b0a890c9cd5dc87313f74bc1)\n",
+ " marker_db29b1459b67523484d2e05c6ba3ce04.bindPopup(popup_0b78930277a87214b9e4324cc93273e1)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_d7953aeb80831851412a0063fb1bfcd5 = L.marker(\n",
+ " var marker_2c1183e702b44d1db60b7a4f3347cabc = L.marker(\n",
" [37.797274, -122.448199],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_4bbc5432e354c077145c6136ad2124ab = L.popup({"maxWidth": "100%"});\n",
+ " var popup_5e9277f40c1efa5c7df7df79bcd6026a = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_573acb772bd9acdb2c40f84568929b01 = $(`<div id="html_573acb772bd9acdb2c40f84568929b01" style="width: 100.0%; height: 100.0%;">Presidio Social Club</div>`)[0];\n",
- " popup_4bbc5432e354c077145c6136ad2124ab.setContent(html_573acb772bd9acdb2c40f84568929b01);\n",
+ " var html_8db0c11b34dd58b848e2cf1fbb6df08c = $(`<div id="html_8db0c11b34dd58b848e2cf1fbb6df08c" style="width: 100.0%; height: 100.0%;">Presidio Social Club</div>`)[0];\n",
+ " popup_5e9277f40c1efa5c7df7df79bcd6026a.setContent(html_8db0c11b34dd58b848e2cf1fbb6df08c);\n",
" \n",
" \n",
"\n",
- " marker_d7953aeb80831851412a0063fb1bfcd5.bindPopup(popup_4bbc5432e354c077145c6136ad2124ab)\n",
+ " marker_2c1183e702b44d1db60b7a4f3347cabc.bindPopup(popup_5e9277f40c1efa5c7df7df79bcd6026a)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_bb8be82e41c65bd2ed3d6f00de984c0a = L.marker(\n",
+ " var marker_0655455f6fdcbd69af5aed897f22fb2b = L.marker(\n",
" [37.785294, -122.408638],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_ab47cd05d35dfb190bb5c8136d58e587 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_47e1a9c1252963161de6ded56f172615 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_7836f5a52a08dbb85259c469264a7917 = $(`<div id="html_7836f5a52a08dbb85259c469264a7917" style="width: 100.0%; height: 100.0%;">Puccini & Pinetti</div>`)[0];\n",
- " popup_ab47cd05d35dfb190bb5c8136d58e587.setContent(html_7836f5a52a08dbb85259c469264a7917);\n",
+ " var html_88a997b1793fe9fb47ee06186d90118a = $(`<div id="html_88a997b1793fe9fb47ee06186d90118a" style="width: 100.0%; height: 100.0%;">Puccini & Pinetti</div>`)[0];\n",
+ " popup_47e1a9c1252963161de6ded56f172615.setContent(html_88a997b1793fe9fb47ee06186d90118a);\n",
" \n",
" \n",
"\n",
- " marker_bb8be82e41c65bd2ed3d6f00de984c0a.bindPopup(popup_ab47cd05d35dfb190bb5c8136d58e587)\n",
+ " marker_0655455f6fdcbd69af5aed897f22fb2b.bindPopup(popup_47e1a9c1252963161de6ded56f172615)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_d2c261db8a2cec22f2baf0370da79124 = L.marker(\n",
+ " var marker_40d7cccee5f87de6c338df631bc65d92 = L.marker(\n",
" [37.752896, -122.408943],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_a36517cdbc4654b9a03d633ae8622b72 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_92061af5e31a8b48bf2bf389329aecb0 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_ae24a46a0d4e6b71951513c728b9cdf0 = $(`<div id="html_ae24a46a0d4e6b71951513c728b9cdf0" style="width: 100.0%; height: 100.0%;">Punjab Restaurant</div>`)[0];\n",
- " popup_a36517cdbc4654b9a03d633ae8622b72.setContent(html_ae24a46a0d4e6b71951513c728b9cdf0);\n",
+ " var html_5b0ca746d080067b5bd568106de2df13 = $(`<div id="html_5b0ca746d080067b5bd568106de2df13" style="width: 100.0%; height: 100.0%;">Punjab Restaurant</div>`)[0];\n",
+ " popup_92061af5e31a8b48bf2bf389329aecb0.setContent(html_5b0ca746d080067b5bd568106de2df13);\n",
" \n",
" \n",
"\n",
- " marker_d2c261db8a2cec22f2baf0370da79124.bindPopup(popup_a36517cdbc4654b9a03d633ae8622b72)\n",
+ " marker_40d7cccee5f87de6c338df631bc65d92.bindPopup(popup_92061af5e31a8b48bf2bf389329aecb0)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_a841833c922d2276619d5e7a87d65c95 = L.marker(\n",
+ " var marker_bd327a2e715d74efbfbbf96b305412a9 = L.marker(\n",
" [37.794096, -122.404829],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_4881282f81589fa459404b659a641b0f = L.popup({"maxWidth": "100%"});\n",
+ " var popup_dd79f00b5ec3e8b808f53f292053b6f6 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_0c9c182c421be8ec174dd5bb53fd9b75 = $(`<div id="html_0c9c182c421be8ec174dd5bb53fd9b75" style="width: 100.0%; height: 100.0%;">R & G Lounge</div>`)[0];\n",
- " popup_4881282f81589fa459404b659a641b0f.setContent(html_0c9c182c421be8ec174dd5bb53fd9b75);\n",
+ " var html_ee9a3ea0f4c0502274037c68cad43d3a = $(`<div id="html_ee9a3ea0f4c0502274037c68cad43d3a" style="width: 100.0%; height: 100.0%;">R & G Lounge</div>`)[0];\n",
+ " popup_dd79f00b5ec3e8b808f53f292053b6f6.setContent(html_ee9a3ea0f4c0502274037c68cad43d3a);\n",
" \n",
" \n",
"\n",
- " marker_a841833c922d2276619d5e7a87d65c95.bindPopup(popup_4881282f81589fa459404b659a641b0f)\n",
+ " marker_bd327a2e715d74efbfbbf96b305412a9.bindPopup(popup_dd79f00b5ec3e8b808f53f292053b6f6)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_dd2d7d84827c445dfbf8950dfd6ad543 = L.marker(\n",
+ " var marker_991cb59779e7eb984237b0eda9a75034 = L.marker(\n",
" [37.764202, -122.464998],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_c7b1cabf378c86c5536796a142f07568 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_3ee4a9d6cfd43264756ffe995363eb45 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_110db0fe9f41d465d9a08c2e7e140dea = $(`<div id="html_110db0fe9f41d465d9a08c2e7e140dea" style="width: 100.0%; height: 100.0%;">Rain Tree Cafe</div>`)[0];\n",
- " popup_c7b1cabf378c86c5536796a142f07568.setContent(html_110db0fe9f41d465d9a08c2e7e140dea);\n",
+ " var html_f916ef88b08c79b4e07c6dec9ff6c8ca = $(`<div id="html_f916ef88b08c79b4e07c6dec9ff6c8ca" style="width: 100.0%; height: 100.0%;">Rain Tree Cafe</div>`)[0];\n",
+ " popup_3ee4a9d6cfd43264756ffe995363eb45.setContent(html_f916ef88b08c79b4e07c6dec9ff6c8ca);\n",
" \n",
" \n",
"\n",
- " marker_dd2d7d84827c445dfbf8950dfd6ad543.bindPopup(popup_c7b1cabf378c86c5536796a142f07568)\n",
+ " marker_991cb59779e7eb984237b0eda9a75034.bindPopup(popup_3ee4a9d6cfd43264756ffe995363eb45)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_6609e40b5565d061a8111591077b0f8b = L.marker(\n",
+ " var marker_a57ddada223ab41f77a0836110471651 = L.marker(\n",
" [37.755442, -122.419788],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_596d3f3c4e301032becf46e0358c1a45 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_151d2f7c122095cc047d3e1a956bf905 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_0330d8add06941a63b5707b16d935042 = $(`<div id="html_0330d8add06941a63b5707b16d935042" style="width: 100.0%; height: 100.0%;">Revolution Cafe</div>`)[0];\n",
- " popup_596d3f3c4e301032becf46e0358c1a45.setContent(html_0330d8add06941a63b5707b16d935042);\n",
+ " var html_850a8a46abd7d6b0427d03b2b0e16740 = $(`<div id="html_850a8a46abd7d6b0427d03b2b0e16740" style="width: 100.0%; height: 100.0%;">Revolution Cafe</div>`)[0];\n",
+ " popup_151d2f7c122095cc047d3e1a956bf905.setContent(html_850a8a46abd7d6b0427d03b2b0e16740);\n",
" \n",
" \n",
"\n",
- " marker_6609e40b5565d061a8111591077b0f8b.bindPopup(popup_596d3f3c4e301032becf46e0358c1a45)\n",
+ " marker_a57ddada223ab41f77a0836110471651.bindPopup(popup_151d2f7c122095cc047d3e1a956bf905)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_a8a59662b68edfb28fc25273706cbf5d = L.marker(\n",
+ " var marker_a6454f0c36dd6c7a15c2c7c4c21cd5d4 = L.marker(\n",
" [37.775999, -122.408476],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_d8ed62fd824abbbb87eec03a46f1e0e9 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_3ef07d20f1911630e44858c43f527799 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_be2410dd76628aa600352b6ecc72af4b = $(`<div id="html_be2410dd76628aa600352b6ecc72af4b" style="width: 100.0%; height: 100.0%;">Rocco's Cafe</div>`)[0];\n",
- " popup_d8ed62fd824abbbb87eec03a46f1e0e9.setContent(html_be2410dd76628aa600352b6ecc72af4b);\n",
+ " var html_c6c0144158f658eeae5584d09fc65a73 = $(`<div id="html_c6c0144158f658eeae5584d09fc65a73" style="width: 100.0%; height: 100.0%;">Rocco's Cafe</div>`)[0];\n",
+ " popup_3ef07d20f1911630e44858c43f527799.setContent(html_c6c0144158f658eeae5584d09fc65a73);\n",
" \n",
" \n",
"\n",
- " marker_a8a59662b68edfb28fc25273706cbf5d.bindPopup(popup_d8ed62fd824abbbb87eec03a46f1e0e9)\n",
+ " marker_a6454f0c36dd6c7a15c2c7c4c21cd5d4.bindPopup(popup_3ef07d20f1911630e44858c43f527799)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_ca8f0bf114099c6de06c128b7101ab99 = L.marker(\n",
+ " var marker_3b274c07e4b1af6144b5d2ec9c152584 = L.marker(\n",
" [37.790748, -122.405187],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_78e916cd3cdf7450e3d48b7048fb2605 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_9aa2313b7206cc1afea97e4947258c1d = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_06460500ad09da6a6bac2e25cf7d0a10 = $(`<div id="html_06460500ad09da6a6bac2e25cf7d0a10" style="width: 100.0%; height: 100.0%;">Roots</div>`)[0];\n",
- " popup_78e916cd3cdf7450e3d48b7048fb2605.setContent(html_06460500ad09da6a6bac2e25cf7d0a10);\n",
+ " var html_5bd6434cf3c9d255714b67b2853fa81d = $(`<div id="html_5bd6434cf3c9d255714b67b2853fa81d" style="width: 100.0%; height: 100.0%;">Roots</div>`)[0];\n",
+ " popup_9aa2313b7206cc1afea97e4947258c1d.setContent(html_5bd6434cf3c9d255714b67b2853fa81d);\n",
" \n",
" \n",
"\n",
- " marker_ca8f0bf114099c6de06c128b7101ab99.bindPopup(popup_78e916cd3cdf7450e3d48b7048fb2605)\n",
+ " marker_3b274c07e4b1af6144b5d2ec9c152584.bindPopup(popup_9aa2313b7206cc1afea97e4947258c1d)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_426afc79516270dfd470e19c69de24f6 = L.marker(\n",
+ " var marker_271e34efcf8b1e10aff1ca62ca9951f6 = L.marker(\n",
" [37.797011, -122.437027],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_aa26fc54916b056a872418ccf5584506 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_e8365be2d42c5cbeb9564d85d08ed01d = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_14f20aab47d228a373292137f7dbb32b = $(`<div id="html_14f20aab47d228a373292137f7dbb32b" style="width: 100.0%; height: 100.0%;">Rose's Cafe</div>`)[0];\n",
- " popup_aa26fc54916b056a872418ccf5584506.setContent(html_14f20aab47d228a373292137f7dbb32b);\n",
+ " var html_3e4813bf61b92c6e6ab5d4975402f6ab = $(`<div id="html_3e4813bf61b92c6e6ab5d4975402f6ab" style="width: 100.0%; height: 100.0%;">Rose's Cafe</div>`)[0];\n",
+ " popup_e8365be2d42c5cbeb9564d85d08ed01d.setContent(html_3e4813bf61b92c6e6ab5d4975402f6ab);\n",
" \n",
" \n",
"\n",
- " marker_426afc79516270dfd470e19c69de24f6.bindPopup(popup_aa26fc54916b056a872418ccf5584506)\n",
+ " marker_271e34efcf8b1e10aff1ca62ca9951f6.bindPopup(popup_e8365be2d42c5cbeb9564d85d08ed01d)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_e84a7e691a2249f3615d7ea6b6b98459 = L.marker(\n",
+ " var marker_cb4363f458f01ca3f52e736df8a6d389 = L.marker(\n",
" [37.787891, -122.418058],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_cae406e626d7c472fca31da12be9091f = L.popup({"maxWidth": "100%"});\n",
+ " var popup_34291cf888c2ef0f2f5bfe768994f979 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_2d6b28a0627b07639c3f3253fa552ae4 = $(`<div id="html_2d6b28a0627b07639c3f3253fa552ae4" style="width: 100.0%; height: 100.0%;">Saha</div>`)[0];\n",
- " popup_cae406e626d7c472fca31da12be9091f.setContent(html_2d6b28a0627b07639c3f3253fa552ae4);\n",
+ " var html_a2c163c83e7d129a29326459e7a1637f = $(`<div id="html_a2c163c83e7d129a29326459e7a1637f" style="width: 100.0%; height: 100.0%;">Saha</div>`)[0];\n",
+ " popup_34291cf888c2ef0f2f5bfe768994f979.setContent(html_a2c163c83e7d129a29326459e7a1637f);\n",
" \n",
" \n",
"\n",
- " marker_e84a7e691a2249f3615d7ea6b6b98459.bindPopup(popup_cae406e626d7c472fca31da12be9091f)\n",
+ " marker_cb4363f458f01ca3f52e736df8a6d389.bindPopup(popup_34291cf888c2ef0f2f5bfe768994f979)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_1456a2058fa19ae8f8b6df9fde05cd77 = L.marker(\n",
+ " var marker_76d1cac66f77e9578991622a47bc3744 = L.marker(\n",
" [37.751454, -122.430029],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_ad19ec2926059bda4ec341185a19e6d0 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_2d35c7c91aef8a665bd2af958d47b3b3 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_c0c85213c8570e3c6a7f7fe553cd3e27 = $(`<div id="html_c0c85213c8570e3c6a7f7fe553cd3e27" style="width: 100.0%; height: 100.0%;">Savor Restaurant</div>`)[0];\n",
- " popup_ad19ec2926059bda4ec341185a19e6d0.setContent(html_c0c85213c8570e3c6a7f7fe553cd3e27);\n",
+ " var html_6ba3e002612feed846a3afea0e345404 = $(`<div id="html_6ba3e002612feed846a3afea0e345404" style="width: 100.0%; height: 100.0%;">Savor Restaurant</div>`)[0];\n",
+ " popup_2d35c7c91aef8a665bd2af958d47b3b3.setContent(html_6ba3e002612feed846a3afea0e345404);\n",
" \n",
" \n",
"\n",
- " marker_1456a2058fa19ae8f8b6df9fde05cd77.bindPopup(popup_ad19ec2926059bda4ec341185a19e6d0)\n",
+ " marker_76d1cac66f77e9578991622a47bc3744.bindPopup(popup_2d35c7c91aef8a665bd2af958d47b3b3)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_012ead5aee2f877b6ded3bef516605d8 = L.marker(\n",
+ " var marker_4b91ffc4b5613f4726a62610f8e39bdb = L.marker(\n",
" [37.808748, -122.417981],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_5a15a628d66fc70e40632e9ea4d83d41 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_0bede3c0e32b4e000f5688432cc7a8c5 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_a26c4fb6e17009b1adfb0ec5c7230fa0 = $(`<div id="html_a26c4fb6e17009b1adfb0ec5c7230fa0" style="width: 100.0%; height: 100.0%;">Scoma's Restaurant</div>`)[0];\n",
- " popup_5a15a628d66fc70e40632e9ea4d83d41.setContent(html_a26c4fb6e17009b1adfb0ec5c7230fa0);\n",
+ " var html_9570a804853cef8e206753fa9ef4d216 = $(`<div id="html_9570a804853cef8e206753fa9ef4d216" style="width: 100.0%; height: 100.0%;">Scoma's Restaurant</div>`)[0];\n",
+ " popup_0bede3c0e32b4e000f5688432cc7a8c5.setContent(html_9570a804853cef8e206753fa9ef4d216);\n",
" \n",
" \n",
"\n",
- " marker_012ead5aee2f877b6ded3bef516605d8.bindPopup(popup_5a15a628d66fc70e40632e9ea4d83d41)\n",
+ " marker_4b91ffc4b5613f4726a62610f8e39bdb.bindPopup(popup_0bede3c0e32b4e000f5688432cc7a8c5)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_0e30e7238502bfd23a7d9114210377fa = L.marker(\n",
+ " var marker_7b63230b0153369fd5fc476f55911032 = L.marker(\n",
" [37.788773, -122.40863],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_3620d9e528640df6685bc097f5bee3ec = L.popup({"maxWidth": "100%"});\n",
+ " var popup_d0e95c6cd30e840b6020878728f4547e = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_4d1127b25846d299ca42816218910561 = $(`<div id="html_4d1127b25846d299ca42816218910561" style="width: 100.0%; height: 100.0%;">Sears Fine Food</div>`)[0];\n",
- " popup_3620d9e528640df6685bc097f5bee3ec.setContent(html_4d1127b25846d299ca42816218910561);\n",
+ " var html_b2f0abd7903c15e11149b47deee2c352 = $(`<div id="html_b2f0abd7903c15e11149b47deee2c352" style="width: 100.0%; height: 100.0%;">Sears Fine Food</div>`)[0];\n",
+ " popup_d0e95c6cd30e840b6020878728f4547e.setContent(html_b2f0abd7903c15e11149b47deee2c352);\n",
" \n",
" \n",
"\n",
- " marker_0e30e7238502bfd23a7d9114210377fa.bindPopup(popup_3620d9e528640df6685bc097f5bee3ec)\n",
+ " marker_7b63230b0153369fd5fc476f55911032.bindPopup(popup_d0e95c6cd30e840b6020878728f4547e)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_9be661f302a5ff2c23003c2dbc84683b = L.marker(\n",
+ " var marker_480d3c025a3bde4f4e5928804c0f7e50 = L.marker(\n",
" [37.787369, -122.433663],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_f8d52403b4ef26d0e66c258cf7ad7b18 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_5878188f25aa04dcb0b5c18256f714a9 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_3430dc9332af5dd1e24614d77ef7de99 = $(`<div id="html_3430dc9332af5dd1e24614d77ef7de99" style="width: 100.0%; height: 100.0%;">Spqr</div>`)[0];\n",
- " popup_f8d52403b4ef26d0e66c258cf7ad7b18.setContent(html_3430dc9332af5dd1e24614d77ef7de99);\n",
+ " var html_d04c9a496b89f0ca0543be692de64061 = $(`<div id="html_d04c9a496b89f0ca0543be692de64061" style="width: 100.0%; height: 100.0%;">Spqr</div>`)[0];\n",
+ " popup_5878188f25aa04dcb0b5c18256f714a9.setContent(html_d04c9a496b89f0ca0543be692de64061);\n",
" \n",
" \n",
"\n",
- " marker_9be661f302a5ff2c23003c2dbc84683b.bindPopup(popup_f8d52403b4ef26d0e66c258cf7ad7b18)\n",
+ " marker_480d3c025a3bde4f4e5928804c0f7e50.bindPopup(popup_5878188f25aa04dcb0b5c18256f714a9)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_58807bb86f48a7f96556fb90bf92e5e8 = L.marker(\n",
+ " var marker_e27e0c1497b69e36bd8fe43064b8e5f4 = L.marker(\n",
" [37.787631, -122.452743],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_0f24a490039e34be3e702e8324e2ce54 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_aba58e7b3e934d250639a30f70cc5ef7 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_f8147d1f14f23343071eadd07456d56e = $(`<div id="html_f8147d1f14f23343071eadd07456d56e" style="width: 100.0%; height: 100.0%;">Spruce</div>`)[0];\n",
- " popup_0f24a490039e34be3e702e8324e2ce54.setContent(html_f8147d1f14f23343071eadd07456d56e);\n",
+ " var html_3d24b0f9326de0adc9cedf84bb51c5d1 = $(`<div id="html_3d24b0f9326de0adc9cedf84bb51c5d1" style="width: 100.0%; height: 100.0%;">Spruce</div>`)[0];\n",
+ " popup_aba58e7b3e934d250639a30f70cc5ef7.setContent(html_3d24b0f9326de0adc9cedf84bb51c5d1);\n",
" \n",
" \n",
"\n",
- " marker_58807bb86f48a7f96556fb90bf92e5e8.bindPopup(popup_0f24a490039e34be3e702e8324e2ce54)\n",
+ " marker_e27e0c1497b69e36bd8fe43064b8e5f4.bindPopup(popup_aba58e7b3e934d250639a30f70cc5ef7)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_3a1cbfab138b3d2695e6252ef67861e4 = L.marker(\n",
+ " var marker_91f1ab834438ab1377b8bb9046074dbf = L.marker(\n",
" [37.800168, -122.440531],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_45eb5ab49c1ac792182ea44f7a8a2ee0 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_4a50c2dd16c0ea5d48f8a3a86f6a6444 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_1efa8c604ddb7108881d7f87b973a569 = $(`<div id="html_1efa8c604ddb7108881d7f87b973a569" style="width: 100.0%; height: 100.0%;">Squat & Gobble Cafe</div>`)[0];\n",
- " popup_45eb5ab49c1ac792182ea44f7a8a2ee0.setContent(html_1efa8c604ddb7108881d7f87b973a569);\n",
+ " var html_fe525b1ad3e6ad61759ac4aef2debfb9 = $(`<div id="html_fe525b1ad3e6ad61759ac4aef2debfb9" style="width: 100.0%; height: 100.0%;">Squat & Gobble Cafe</div>`)[0];\n",
+ " popup_4a50c2dd16c0ea5d48f8a3a86f6a6444.setContent(html_fe525b1ad3e6ad61759ac4aef2debfb9);\n",
" \n",
" \n",
"\n",
- " marker_3a1cbfab138b3d2695e6252ef67861e4.bindPopup(popup_45eb5ab49c1ac792182ea44f7a8a2ee0)\n",
+ " marker_91f1ab834438ab1377b8bb9046074dbf.bindPopup(popup_4a50c2dd16c0ea5d48f8a3a86f6a6444)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_a87fc48b1401998c0a66ebcb767effd5 = L.marker(\n",
+ " var marker_1db93c48b322786fd13034d34808027a = L.marker(\n",
" [37.764279, -122.433357],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_2450453683c39e827f6cc2f4232b564f = L.popup({"maxWidth": "100%"});\n",
+ " var popup_71235d950179d58491de69626fcc5bc9 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_77671c4179679ef4ece829dc776e0ecd = $(`<div id="html_77671c4179679ef4ece829dc776e0ecd" style="width: 100.0%; height: 100.0%;">Squat and Gobble Cafe</div>`)[0];\n",
- " popup_2450453683c39e827f6cc2f4232b564f.setContent(html_77671c4179679ef4ece829dc776e0ecd);\n",
+ " var html_ddfb98ac2e5bbb97a1dfbc727f4a3867 = $(`<div id="html_ddfb98ac2e5bbb97a1dfbc727f4a3867" style="width: 100.0%; height: 100.0%;">Squat and Gobble Cafe</div>`)[0];\n",
+ " popup_71235d950179d58491de69626fcc5bc9.setContent(html_ddfb98ac2e5bbb97a1dfbc727f4a3867);\n",
" \n",
" \n",
"\n",
- " marker_a87fc48b1401998c0a66ebcb767effd5.bindPopup(popup_2450453683c39e827f6cc2f4232b564f)\n",
+ " marker_1db93c48b322786fd13034d34808027a.bindPopup(popup_71235d950179d58491de69626fcc5bc9)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_a37df6943836add849afb0a58bf0161e = L.marker(\n",
+ " var marker_4780789a0fd244ff3ba2a61ebad12a0f = L.marker(\n",
" [37.763202, -122.415206],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_7b8604a61b50b5288797029627be611c = L.popup({"maxWidth": "100%"});\n",
+ " var popup_d7b9e40571bca1508f022f36362a3914 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_3d52831d546416749dd98f823f5f3adb = $(`<div id="html_3d52831d546416749dd98f823f5f3adb" style="width: 100.0%; height: 100.0%;">Stable Cafe</div>`)[0];\n",
- " popup_7b8604a61b50b5288797029627be611c.setContent(html_3d52831d546416749dd98f823f5f3adb);\n",
+ " var html_a632d0a2c0b330c912886ad05bc12b60 = $(`<div id="html_a632d0a2c0b330c912886ad05bc12b60" style="width: 100.0%; height: 100.0%;">Stable Cafe</div>`)[0];\n",
+ " popup_d7b9e40571bca1508f022f36362a3914.setContent(html_a632d0a2c0b330c912886ad05bc12b60);\n",
" \n",
" \n",
"\n",
- " marker_a37df6943836add849afb0a58bf0161e.bindPopup(popup_7b8604a61b50b5288797029627be611c)\n",
+ " marker_4780789a0fd244ff3ba2a61ebad12a0f.bindPopup(popup_d7b9e40571bca1508f022f36362a3914)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_e981eda5823fdbb449fbffde9d36ef54 = L.marker(\n",
+ " var marker_1be0146d526bd6e8d9ce14215fd19abe = L.marker(\n",
" [37.788817, -122.41151],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_eae927cdbcc0434a1d73b9ed2a0745d3 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_830e514556f2eec61811693268d5d23b = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_fb89994885f621315c1f841d885417b5 = $(`<div id="html_fb89994885f621315c1f841d885417b5" style="width: 100.0%; height: 100.0%;">Sugar Cafe</div>`)[0];\n",
- " popup_eae927cdbcc0434a1d73b9ed2a0745d3.setContent(html_fb89994885f621315c1f841d885417b5);\n",
+ " var html_14d8af2ee51cde11e93e61c3dd5d7242 = $(`<div id="html_14d8af2ee51cde11e93e61c3dd5d7242" style="width: 100.0%; height: 100.0%;">Sugar Cafe</div>`)[0];\n",
+ " popup_830e514556f2eec61811693268d5d23b.setContent(html_14d8af2ee51cde11e93e61c3dd5d7242);\n",
" \n",
" \n",
"\n",
- " marker_e981eda5823fdbb449fbffde9d36ef54.bindPopup(popup_eae927cdbcc0434a1d73b9ed2a0745d3)\n",
+ " marker_1be0146d526bd6e8d9ce14215fd19abe.bindPopup(popup_830e514556f2eec61811693268d5d23b)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_05385c9443df2ff3d6897b933dceae4e = L.marker(\n",
+ " var marker_5ae60fa877c5fde1328d91e08d6248c4 = L.marker(\n",
" [37.776288, -122.426305],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_73568d265af067e0d143443ff0e1d24d = L.popup({"maxWidth": "100%"});\n",
+ " var popup_7789c95b66a2b63de13e9cb02cab1727 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_a767918d6d25df015e0917d983079626 = $(`<div id="html_a767918d6d25df015e0917d983079626" style="width: 100.0%; height: 100.0%;">Suppenküche</div>`)[0];\n",
- " popup_73568d265af067e0d143443ff0e1d24d.setContent(html_a767918d6d25df015e0917d983079626);\n",
+ " var html_7bff31fd988a39acee8dc79f23006d46 = $(`<div id="html_7bff31fd988a39acee8dc79f23006d46" style="width: 100.0%; height: 100.0%;">Suppenküche</div>`)[0];\n",
+ " popup_7789c95b66a2b63de13e9cb02cab1727.setContent(html_7bff31fd988a39acee8dc79f23006d46);\n",
" \n",
" \n",
"\n",
- " marker_05385c9443df2ff3d6897b933dceae4e.bindPopup(popup_73568d265af067e0d143443ff0e1d24d)\n",
+ " marker_5ae60fa877c5fde1328d91e08d6248c4.bindPopup(popup_7789c95b66a2b63de13e9cb02cab1727)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_5cd727fe56534ed2080f676553382b71 = L.marker(\n",
+ " var marker_b991e769c478ddbea4dce4b32df57aa0 = L.marker(\n",
" [37.790904, -122.420848],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_f966eb0e6b6e9b3e696577d04d28042d = L.popup({"maxWidth": "100%"});\n",
+ " var popup_20a2a578c6d04a94223a9fdd7193208e = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_b7783101293e7ee19609fe60a1ac5d95 = $(`<div id="html_b7783101293e7ee19609fe60a1ac5d95" style="width: 100.0%; height: 100.0%;">Swan Oyster Depot</div>`)[0];\n",
- " popup_f966eb0e6b6e9b3e696577d04d28042d.setContent(html_b7783101293e7ee19609fe60a1ac5d95);\n",
+ " var html_92266a5a303d6fe672519b98e444d876 = $(`<div id="html_92266a5a303d6fe672519b98e444d876" style="width: 100.0%; height: 100.0%;">Swan Oyster Depot</div>`)[0];\n",
+ " popup_20a2a578c6d04a94223a9fdd7193208e.setContent(html_92266a5a303d6fe672519b98e444d876);\n",
" \n",
" \n",
"\n",
- " marker_5cd727fe56534ed2080f676553382b71.bindPopup(popup_f966eb0e6b6e9b3e696577d04d28042d)\n",
+ " marker_b991e769c478ddbea4dce4b32df57aa0.bindPopup(popup_20a2a578c6d04a94223a9fdd7193208e)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_d5d1f7dc513d0e6b27ab32717ff6448f = L.marker(\n",
+ " var marker_3eaae69d2181846470da673e450b14c6 = L.marker(\n",
" [37.793381, -122.399367],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_317e48d6152de3332c6ece721d91d20c = L.popup({"maxWidth": "100%"});\n",
+ " var popup_7a5699ba396ede254f66866bac5dacf9 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_4383a1d766bb554537aa48f5f26da01b = $(`<div id="html_4383a1d766bb554537aa48f5f26da01b" style="width: 100.0%; height: 100.0%;">Tadich Grill</div>`)[0];\n",
- " popup_317e48d6152de3332c6ece721d91d20c.setContent(html_4383a1d766bb554537aa48f5f26da01b);\n",
+ " var html_ea7492cb9dd26af0913ec4e14c2ce6c1 = $(`<div id="html_ea7492cb9dd26af0913ec4e14c2ce6c1" style="width: 100.0%; height: 100.0%;">Tadich Grill</div>`)[0];\n",
+ " popup_7a5699ba396ede254f66866bac5dacf9.setContent(html_ea7492cb9dd26af0913ec4e14c2ce6c1);\n",
" \n",
" \n",
"\n",
- " marker_d5d1f7dc513d0e6b27ab32717ff6448f.bindPopup(popup_317e48d6152de3332c6ece721d91d20c)\n",
+ " marker_3eaae69d2181846470da673e450b14c6.bindPopup(popup_7a5699ba396ede254f66866bac5dacf9)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_a53337eb9b4c28e0c5254958b1b4380e = L.marker(\n",
+ " var marker_bee06d5334fc4c969548e5e85189d0b5 = L.marker(\n",
" [37.789103, -122.406723],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_badcb9d0652c8355a74c85d024e0d0bd = L.popup({"maxWidth": "100%"});\n",
+ " var popup_74a5ff1bb85fb5da2d3ea8887efc5705 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_e56e841df9ec4d4a2eede7dc5953426b = $(`<div id="html_e56e841df9ec4d4a2eede7dc5953426b" style="width: 100.0%; height: 100.0%;">Taj Campton Place</div>`)[0];\n",
- " popup_badcb9d0652c8355a74c85d024e0d0bd.setContent(html_e56e841df9ec4d4a2eede7dc5953426b);\n",
+ " var html_7b430f49e8ffb13b02c7a2aceddce7a1 = $(`<div id="html_7b430f49e8ffb13b02c7a2aceddce7a1" style="width: 100.0%; height: 100.0%;">Taj Campton Place</div>`)[0];\n",
+ " popup_74a5ff1bb85fb5da2d3ea8887efc5705.setContent(html_7b430f49e8ffb13b02c7a2aceddce7a1);\n",
" \n",
" \n",
"\n",
- " marker_a53337eb9b4c28e0c5254958b1b4380e.bindPopup(popup_badcb9d0652c8355a74c85d024e0d0bd)\n",
+ " marker_bee06d5334fc4c969548e5e85189d0b5.bindPopup(popup_74a5ff1bb85fb5da2d3ea8887efc5705)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_855819c8f4dbcb63a59ea4a0db503791 = L.marker(\n",
+ " var marker_5d4bcfa69b0ab626be2cb19962005d5a = L.marker(\n",
" [37.752958, -122.408085],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_667ec4f24340f3dfccb32c4b245d9ce0 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_1c4d01e88d8d913ec6a2e29532281ab8 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_289dca37a10a9f64b6f0ef7ab59111ad = $(`<div id="html_289dca37a10a9f64b6f0ef7ab59111ad" style="width: 100.0%; height: 100.0%;">Taqueria San Francisco</div>`)[0];\n",
- " popup_667ec4f24340f3dfccb32c4b245d9ce0.setContent(html_289dca37a10a9f64b6f0ef7ab59111ad);\n",
+ " var html_19092fc4be67a45418e93a9361d9b9b3 = $(`<div id="html_19092fc4be67a45418e93a9361d9b9b3" style="width: 100.0%; height: 100.0%;">Taqueria San Francisco</div>`)[0];\n",
+ " popup_1c4d01e88d8d913ec6a2e29532281ab8.setContent(html_19092fc4be67a45418e93a9361d9b9b3);\n",
" \n",
" \n",
"\n",
- " marker_855819c8f4dbcb63a59ea4a0db503791.bindPopup(popup_667ec4f24340f3dfccb32c4b245d9ce0)\n",
+ " marker_5d4bcfa69b0ab626be2cb19962005d5a.bindPopup(popup_1c4d01e88d8d913ec6a2e29532281ab8)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_23b00c3d2eac95b55c741ff87fff2506 = L.marker(\n",
+ " var marker_fe00f73f82ec5682749b5c88ea6326d9 = L.marker(\n",
" [37.787481, -122.400735],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var popup_05935e42395156899b12344c3d9638cd = L.popup({"maxWidth": "100%"});\n",
+ " var popup_0d2f7df4d6e6f7094e5ae4f0e6175984 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_2d73abeaf7cace9f7fe1501eede0e488 = $(`<div id="html_2d73abeaf7cace9f7fe1501eede0e488" style="width: 100.0%; height: 100.0%;">Tart To Tart</div>`)[0];\n",
- " popup_05935e42395156899b12344c3d9638cd.setContent(html_2d73abeaf7cace9f7fe1501eede0e488);\n",
+ " var html_1766110aaa3454d2dc700695446aadd5 = $(`<div id="html_1766110aaa3454d2dc700695446aadd5" style="width: 100.0%; height: 100.0%;">Tart To Tart</div>`)[0];\n",
+ " popup_0d2f7df4d6e6f7094e5ae4f0e6175984.setContent(html_1766110aaa3454d2dc700695446aadd5);\n",
" \n",
" \n",
"\n",
- " marker_23b00c3d2eac95b55c741ff87fff2506.bindPopup(popup_05935e42395156899b12344c3d9638cd)\n",
+ " marker_fe00f73f82ec5682749b5c88ea6326d9.bindPopup(popup_0d2f7df4d6e6f7094e5ae4f0e6175984)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var circle_4d898b00bc3ee8e2f1d59872e7867427 = L.circle(\n",
+ " var circle_8cd38ead16b2a5c5df7b5b5feb38fc15 = L.circle(\n",
" [37.779, -122.439],\n",
" {"bubblingMouseEvents": true, "color": "green", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.3, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 2000, "stroke": true, "weight": 3}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var marker_fa0c82d35102ca447f96395dfc52ce29 = L.marker(\n",
- " [37.777531, -122.424033],\n",
+ " var marker_83cca91e070e949826d3a69e90a9f218 = L.marker(\n",
+ " [37.788408, -122.43386],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var icon_32b615eebd5461dab564dbcb049c32bf = L.AwesomeMarkers.icon(\n",
+ " var icon_d40107038a55f83ac565e895c7be9f39 = L.AwesomeMarkers.icon(\n",
" {"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "red", "prefix": "glyphicon"}\n",
" );\n",
- " marker_fa0c82d35102ca447f96395dfc52ce29.setIcon(icon_32b615eebd5461dab564dbcb049c32bf);\n",
+ " marker_83cca91e070e949826d3a69e90a9f218.setIcon(icon_d40107038a55f83ac565e895c7be9f39);\n",
" \n",
" \n",
- " var popup_cd2d572ee425e81972a3fb66302c5dff = L.popup({"maxWidth": "100%"});\n",
+ " var popup_cc5a78c19554106ac82829afea87f0f5 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_1cd76defbb13780c0fc39b54d0818d46 = $(`<div id="html_1cd76defbb13780c0fc39b54d0818d46" style="width: 100.0%; height: 100.0%;">Double Decker 3.5 stars</div>`)[0];\n",
- " popup_cd2d572ee425e81972a3fb66302c5dff.setContent(html_1cd76defbb13780c0fc39b54d0818d46);\n",
+ " var html_f7cbf37de34900eb9fb00f6c345a115f = $(`<div id="html_f7cbf37de34900eb9fb00f6c345a115f" style="width: 100.0%; height: 100.0%;">La Boulange 4.5 stars</div>`)[0];\n",
+ " popup_cc5a78c19554106ac82829afea87f0f5.setContent(html_f7cbf37de34900eb9fb00f6c345a115f);\n",
" \n",
" \n",
"\n",
- " marker_fa0c82d35102ca447f96395dfc52ce29.bindPopup(popup_cd2d572ee425e81972a3fb66302c5dff)\n",
+ " marker_83cca91e070e949826d3a69e90a9f218.bindPopup(popup_cc5a78c19554106ac82829afea87f0f5)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_b18bb37b4da3cb53a3157d6c3b654058 = L.marker(\n",
- " [37.770276, -122.445238],\n",
+ " var marker_3e3b7ece1c935f5577dd4a28076caa17 = L.marker(\n",
+ " [37.764634, -122.432936],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var icon_c896a88e8bdc4dca905090ce3a8b3b85 = L.AwesomeMarkers.icon(\n",
+ " var icon_38b5dace15cf8e6afe190a23fe41eb55 = L.AwesomeMarkers.icon(\n",
" {"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "red", "prefix": "glyphicon"}\n",
" );\n",
- " marker_b18bb37b4da3cb53a3157d6c3b654058.setIcon(icon_c896a88e8bdc4dca905090ce3a8b3b85);\n",
+ " marker_3e3b7ece1c935f5577dd4a28076caa17.setIcon(icon_38b5dace15cf8e6afe190a23fe41eb55);\n",
" \n",
" \n",
- " var popup_014f210157ef677c7714e69f468f1d45 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_fc433109fedcc31df850377f1122aaf0 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_7470778822f4577fa16816ae7eec79ea = $(`<div id="html_7470778822f4577fa16816ae7eec79ea" style="width: 100.0%; height: 100.0%;">Magnolia Pub and Brewery 4 stars</div>`)[0];\n",
- " popup_014f210157ef677c7714e69f468f1d45.setContent(html_7470778822f4577fa16816ae7eec79ea);\n",
+ " var html_6b844072ff06cffb9a642c6bb88b8d3e = $(`<div id="html_6b844072ff06cffb9a642c6bb88b8d3e" style="width: 100.0%; height: 100.0%;">Cafe Flore 4 stars</div>`)[0];\n",
+ " popup_fc433109fedcc31df850377f1122aaf0.setContent(html_6b844072ff06cffb9a642c6bb88b8d3e);\n",
" \n",
" \n",
"\n",
- " marker_b18bb37b4da3cb53a3157d6c3b654058.bindPopup(popup_014f210157ef677c7714e69f468f1d45)\n",
+ " marker_3e3b7ece1c935f5577dd4a28076caa17.bindPopup(popup_fc433109fedcc31df850377f1122aaf0)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_9573ab460ce44c3ef35aafe05e2083ce = L.marker(\n",
- " [37.768755, -122.42914],\n",
+ " var marker_df3af416677c4a2b81f15051805853cd = L.marker(\n",
+ " [37.765881, -122.449727],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var icon_0215e74fd06ccb97c4e82f07410185b4 = L.AwesomeMarkers.icon(\n",
+ " var icon_1be668a13a426aad673dda33995c8e6d = L.AwesomeMarkers.icon(\n",
" {"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "red", "prefix": "glyphicon"}\n",
" );\n",
- " marker_9573ab460ce44c3ef35aafe05e2083ce.setIcon(icon_0215e74fd06ccb97c4e82f07410185b4);\n",
+ " marker_df3af416677c4a2b81f15051805853cd.setIcon(icon_1be668a13a426aad673dda33995c8e6d);\n",
" \n",
" \n",
- " var popup_9dd593b9fd0a2c346fefb57d22a017d2 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_91a03d97b95e59bb525b78d33cdb699e = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_2995dfd4a58701fd961abc95b34a4b0d = $(`<div id="html_2995dfd4a58701fd961abc95b34a4b0d" style="width: 100.0%; height: 100.0%;">Burgermeister 4 stars</div>`)[0];\n",
- " popup_9dd593b9fd0a2c346fefb57d22a017d2.setContent(html_2995dfd4a58701fd961abc95b34a4b0d);\n",
+ " var html_907fa6eb2a1b3bc8db9c2a5fc0854dd3 = $(`<div id="html_907fa6eb2a1b3bc8db9c2a5fc0854dd3" style="width: 100.0%; height: 100.0%;">Burgermeister 4 stars</div>`)[0];\n",
+ " popup_91a03d97b95e59bb525b78d33cdb699e.setContent(html_907fa6eb2a1b3bc8db9c2a5fc0854dd3);\n",
" \n",
" \n",
"\n",
- " marker_9573ab460ce44c3ef35aafe05e2083ce.bindPopup(popup_9dd593b9fd0a2c346fefb57d22a017d2)\n",
+ " marker_df3af416677c4a2b81f15051805853cd.bindPopup(popup_91a03d97b95e59bb525b78d33cdb699e)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_b51fd2594422ff84d04d932c5a4b619c = L.marker(\n",
- " [37.764634, -122.432936],\n",
+ " var marker_48388f2a4ff46d70c6cad8d514b41477 = L.marker(\n",
+ " [37.761957, -122.435213],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var icon_05a64e0d6e456cc1587cfd2487a8be9d = L.AwesomeMarkers.icon(\n",
+ " var icon_1d73b9ac1bc9482f27066e0661eeab5b = L.AwesomeMarkers.icon(\n",
" {"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "red", "prefix": "glyphicon"}\n",
" );\n",
- " marker_b51fd2594422ff84d04d932c5a4b619c.setIcon(icon_05a64e0d6e456cc1587cfd2487a8be9d);\n",
+ " marker_48388f2a4ff46d70c6cad8d514b41477.setIcon(icon_1d73b9ac1bc9482f27066e0661eeab5b);\n",
" \n",
" \n",
- " var popup_b0d598c811511779e3e4a77caf3ee80f = L.popup({"maxWidth": "100%"});\n",
+ " var popup_08eb4f5022114c41ef77aaabc8979276 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_3a22b700f563ec9bc72e1b41dc4d3a4c = $(`<div id="html_3a22b700f563ec9bc72e1b41dc4d3a4c" style="width: 100.0%; height: 100.0%;">Cafe Flore 4 stars</div>`)[0];\n",
- " popup_b0d598c811511779e3e4a77caf3ee80f.setContent(html_3a22b700f563ec9bc72e1b41dc4d3a4c);\n",
+ " var html_792df7955a84c1ecd87e809a791a2222 = $(`<div id="html_792df7955a84c1ecd87e809a791a2222" style="width: 100.0%; height: 100.0%;">Cove Cafe 4 stars</div>`)[0];\n",
+ " popup_08eb4f5022114c41ef77aaabc8979276.setContent(html_792df7955a84c1ecd87e809a791a2222);\n",
" \n",
" \n",
"\n",
- " marker_b51fd2594422ff84d04d932c5a4b619c.bindPopup(popup_b0d598c811511779e3e4a77caf3ee80f)\n",
+ " marker_48388f2a4ff46d70c6cad8d514b41477.bindPopup(popup_08eb4f5022114c41ef77aaabc8979276)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_3d1874d2d1b2e393a6aa05782bd0fb41 = L.marker(\n",
- " [37.788408, -122.43386],\n",
+ " var marker_4f3147dfc6fbe5da86f76caea9a7b664 = L.marker(\n",
+ " [37.783914, -122.417772],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var icon_02cf646d8bee2dfa0e8cff701b77b0d1 = L.AwesomeMarkers.icon(\n",
+ " var icon_c70639b79272077bbd1a2fbbc1fd541f = L.AwesomeMarkers.icon(\n",
" {"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "red", "prefix": "glyphicon"}\n",
" );\n",
- " marker_3d1874d2d1b2e393a6aa05782bd0fb41.setIcon(icon_02cf646d8bee2dfa0e8cff701b77b0d1);\n",
+ " marker_4f3147dfc6fbe5da86f76caea9a7b664.setIcon(icon_c70639b79272077bbd1a2fbbc1fd541f);\n",
" \n",
" \n",
- " var popup_c18c16083aba7a42749695251a86921f = L.popup({"maxWidth": "100%"});\n",
+ " var popup_a178a6414157052abbdd0132557a8524 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_e85f20fb4eaf2afc524709a94983487d = $(`<div id="html_e85f20fb4eaf2afc524709a94983487d" style="width: 100.0%; height: 100.0%;">La Boulange 4.5 stars</div>`)[0];\n",
- " popup_c18c16083aba7a42749695251a86921f.setContent(html_e85f20fb4eaf2afc524709a94983487d);\n",
+ " var html_e16805e069632ae3ef4a0b4768e768d0 = $(`<div id="html_e16805e069632ae3ef4a0b4768e768d0" style="width: 100.0%; height: 100.0%;">Pho 2000 4 stars</div>`)[0];\n",
+ " popup_a178a6414157052abbdd0132557a8524.setContent(html_e16805e069632ae3ef4a0b4768e768d0);\n",
" \n",
" \n",
"\n",
- " marker_3d1874d2d1b2e393a6aa05782bd0fb41.bindPopup(popup_c18c16083aba7a42749695251a86921f)\n",
+ " marker_4f3147dfc6fbe5da86f76caea9a7b664.bindPopup(popup_a178a6414157052abbdd0132557a8524)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_d7ed2d0765ec2f13ac5dceccdc8577fa = L.marker(\n",
- " [37.765881, -122.449727],\n",
+ " var marker_7f23868c7e0f5ba520615c19d1e216f6 = L.marker(\n",
+ " [37.788925, -122.434241],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var icon_4a20a705fd47cf1ce4b93e744a24e448 = L.AwesomeMarkers.icon(\n",
+ " var icon_abb7a46b7ef9aa1bd4f2641c04de34c4 = L.AwesomeMarkers.icon(\n",
" {"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "red", "prefix": "glyphicon"}\n",
" );\n",
- " marker_d7ed2d0765ec2f13ac5dceccdc8577fa.setIcon(icon_4a20a705fd47cf1ce4b93e744a24e448);\n",
+ " marker_7f23868c7e0f5ba520615c19d1e216f6.setIcon(icon_abb7a46b7ef9aa1bd4f2641c04de34c4);\n",
" \n",
" \n",
- " var popup_6c32d3a7f9cb0c6697a2fb4b47f77faa = L.popup({"maxWidth": "100%"});\n",
+ " var popup_8564da4bb5c71aaf8fce5cd472fd2446 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_a98fea008fb67e0d4c5253151a24f966 = $(`<div id="html_a98fea008fb67e0d4c5253151a24f966" style="width: 100.0%; height: 100.0%;">Burgermeister 4 stars</div>`)[0];\n",
- " popup_6c32d3a7f9cb0c6697a2fb4b47f77faa.setContent(html_a98fea008fb67e0d4c5253151a24f966);\n",
+ " var html_e4bf2d49ecf58d0348a4164c9adbf8d9 = $(`<div id="html_e4bf2d49ecf58d0348a4164c9adbf8d9" style="width: 100.0%; height: 100.0%;">Pizzeria Delfina 4.5 stars</div>`)[0];\n",
+ " popup_8564da4bb5c71aaf8fce5cd472fd2446.setContent(html_e4bf2d49ecf58d0348a4164c9adbf8d9);\n",
" \n",
" \n",
"\n",
- " marker_d7ed2d0765ec2f13ac5dceccdc8577fa.bindPopup(popup_6c32d3a7f9cb0c6697a2fb4b47f77faa)\n",
+ " marker_7f23868c7e0f5ba520615c19d1e216f6.bindPopup(popup_8564da4bb5c71aaf8fce5cd472fd2446)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_7e7890436b68823f197ef648b8798a13 = L.marker(\n",
- " [37.771303, -122.430158],\n",
+ " var marker_d8167f11899b3154e356cf6c540dc397 = L.marker(\n",
+ " [37.782187, -122.448613],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var icon_2378b6d48254a3119c68c6697134fe8d = L.AwesomeMarkers.icon(\n",
+ " var icon_4cac2b2ab2785cf64eb232a51c1cc618 = L.AwesomeMarkers.icon(\n",
" {"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "red", "prefix": "glyphicon"}\n",
" );\n",
- " marker_7e7890436b68823f197ef648b8798a13.setIcon(icon_2378b6d48254a3119c68c6697134fe8d);\n",
+ " marker_d8167f11899b3154e356cf6c540dc397.setIcon(icon_4cac2b2ab2785cf64eb232a51c1cc618);\n",
" \n",
" \n",
- " var popup_a0b5f32391329e6e50bc744f89d795f3 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_c9b657c89a8dd41caea36426611b99f1 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_b330c9d1dd94b6b678b67e1f1178d6e6 = $(`<div id="html_b330c9d1dd94b6b678b67e1f1178d6e6" style="width: 100.0%; height: 100.0%;">Cafe Du Soleil 4 stars</div>`)[0];\n",
- " popup_a0b5f32391329e6e50bc744f89d795f3.setContent(html_b330c9d1dd94b6b678b67e1f1178d6e6);\n",
+ " var html_e4e673fd3371f012ef5fc8636d2feb2f = $(`<div id="html_e4e673fd3371f012ef5fc8636d2feb2f" style="width: 100.0%; height: 100.0%;">Nanis Coffee 5 stars</div>`)[0];\n",
+ " popup_c9b657c89a8dd41caea36426611b99f1.setContent(html_e4e673fd3371f012ef5fc8636d2feb2f);\n",
" \n",
" \n",
"\n",
- " marker_7e7890436b68823f197ef648b8798a13.bindPopup(popup_a0b5f32391329e6e50bc744f89d795f3)\n",
+ " marker_d8167f11899b3154e356cf6c540dc397.bindPopup(popup_c9b657c89a8dd41caea36426611b99f1)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_a3222e493fe405660d26b561b459a0d4 = L.marker(\n",
- " [37.782187, -122.448613],\n",
+ " var marker_5cd175eacd31d23f267f53ec3e55c525 = L.marker(\n",
+ " [37.768755, -122.42914],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var icon_dd3a7a8b8a2ceda6a8e4cfd26c9e5ee5 = L.AwesomeMarkers.icon(\n",
+ " var icon_25c92b57187f54fd31fcec3012b3c2b1 = L.AwesomeMarkers.icon(\n",
" {"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "red", "prefix": "glyphicon"}\n",
" );\n",
- " marker_a3222e493fe405660d26b561b459a0d4.setIcon(icon_dd3a7a8b8a2ceda6a8e4cfd26c9e5ee5);\n",
+ " marker_5cd175eacd31d23f267f53ec3e55c525.setIcon(icon_25c92b57187f54fd31fcec3012b3c2b1);\n",
" \n",
" \n",
- " var popup_4554641558fca5939ada3753d4469734 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_0782f876014d387d2cd3f19db55d0f4d = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_539a92cea60f32a3c64a9d26880071e4 = $(`<div id="html_539a92cea60f32a3c64a9d26880071e4" style="width: 100.0%; height: 100.0%;">Nanis Coffee 5 stars</div>`)[0];\n",
- " popup_4554641558fca5939ada3753d4469734.setContent(html_539a92cea60f32a3c64a9d26880071e4);\n",
+ " var html_fe35ad504e5bf8209111162206b6c300 = $(`<div id="html_fe35ad504e5bf8209111162206b6c300" style="width: 100.0%; height: 100.0%;">Burgermeister 4 stars</div>`)[0];\n",
+ " popup_0782f876014d387d2cd3f19db55d0f4d.setContent(html_fe35ad504e5bf8209111162206b6c300);\n",
" \n",
" \n",
"\n",
- " marker_a3222e493fe405660d26b561b459a0d4.bindPopup(popup_4554641558fca5939ada3753d4469734)\n",
+ " marker_5cd175eacd31d23f267f53ec3e55c525.bindPopup(popup_0782f876014d387d2cd3f19db55d0f4d)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_28f08a8aae0c59b3be097669f1ba7e13 = L.marker(\n",
- " [37.764279, -122.433357],\n",
+ " var marker_c17ae1249b27be704473bbe93d83afca = L.marker(\n",
+ " [37.777531, -122.424033],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var icon_b420e5bb766fed67603824581bb4d67a = L.AwesomeMarkers.icon(\n",
+ " var icon_0d89d3942291705073625fb688a8d626 = L.AwesomeMarkers.icon(\n",
" {"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "red", "prefix": "glyphicon"}\n",
" );\n",
- " marker_28f08a8aae0c59b3be097669f1ba7e13.setIcon(icon_b420e5bb766fed67603824581bb4d67a);\n",
+ " marker_c17ae1249b27be704473bbe93d83afca.setIcon(icon_0d89d3942291705073625fb688a8d626);\n",
" \n",
" \n",
- " var popup_440cfbc0485b36b41d0589b0464ed7c6 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_c19a9759bda91a889498407c08618871 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_32ded77336f0a07092a325ab156ed68b = $(`<div id="html_32ded77336f0a07092a325ab156ed68b" style="width: 100.0%; height: 100.0%;">Squat and Gobble Cafe 3.5 stars</div>`)[0];\n",
- " popup_440cfbc0485b36b41d0589b0464ed7c6.setContent(html_32ded77336f0a07092a325ab156ed68b);\n",
+ " var html_fdab8e08d433d3e1ccb488c2755c156a = $(`<div id="html_fdab8e08d433d3e1ccb488c2755c156a" style="width: 100.0%; height: 100.0%;">Double Decker 3.5 stars</div>`)[0];\n",
+ " popup_c19a9759bda91a889498407c08618871.setContent(html_fdab8e08d433d3e1ccb488c2755c156a);\n",
" \n",
" \n",
"\n",
- " marker_28f08a8aae0c59b3be097669f1ba7e13.bindPopup(popup_440cfbc0485b36b41d0589b0464ed7c6)\n",
+ " marker_c17ae1249b27be704473bbe93d83afca.bindPopup(popup_c19a9759bda91a889498407c08618871)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_7b3a2ff1d3c348db66b95c3d4240e13f = L.marker(\n",
- " [37.772058, -122.431702],\n",
+ " var marker_acaa51be2dac979e0e46afceac159ca3 = L.marker(\n",
+ " [37.771303, -122.430158],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var icon_c22a6df2ee6fe9a32b948f0a9c19bdf1 = L.AwesomeMarkers.icon(\n",
+ " var icon_8de80b85e7f125ad31bc11da3a29aa13 = L.AwesomeMarkers.icon(\n",
" {"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "red", "prefix": "glyphicon"}\n",
" );\n",
- " marker_7b3a2ff1d3c348db66b95c3d4240e13f.setIcon(icon_c22a6df2ee6fe9a32b948f0a9c19bdf1);\n",
+ " marker_acaa51be2dac979e0e46afceac159ca3.setIcon(icon_8de80b85e7f125ad31bc11da3a29aa13);\n",
" \n",
" \n",
- " var popup_b9486ace95544f74e4fe6196c3dc2163 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_4c00001419cc5a89c210b4f10981b5f2 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_37698c51fb76c399fb88620a722eb6df = $(`<div id="html_37698c51fb76c399fb88620a722eb6df" style="width: 100.0%; height: 100.0%;">Memphis Minnies BBQ Joint 3.5 stars</div>`)[0];\n",
- " popup_b9486ace95544f74e4fe6196c3dc2163.setContent(html_37698c51fb76c399fb88620a722eb6df);\n",
+ " var html_4caa04431e5ebef97cffd3a81f2050b5 = $(`<div id="html_4caa04431e5ebef97cffd3a81f2050b5" style="width: 100.0%; height: 100.0%;">Cafe Du Soleil 4 stars</div>`)[0];\n",
+ " popup_4c00001419cc5a89c210b4f10981b5f2.setContent(html_4caa04431e5ebef97cffd3a81f2050b5);\n",
" \n",
" \n",
"\n",
- " marker_7b3a2ff1d3c348db66b95c3d4240e13f.bindPopup(popup_b9486ace95544f74e4fe6196c3dc2163)\n",
+ " marker_acaa51be2dac979e0e46afceac159ca3.bindPopup(popup_4c00001419cc5a89c210b4f10981b5f2)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_ad291b2a1153ddde31226684292c70f8 = L.marker(\n",
- " [37.761957, -122.435213],\n",
+ " var marker_6dc3a4dd605a0a9c3318851438763613 = L.marker(\n",
+ " [37.770036, -122.44629],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var icon_2146c5f97fa33853706e3b8df48854e2 = L.AwesomeMarkers.icon(\n",
+ " var icon_f92d64fdeaa949ccc60f6093cce064ba = L.AwesomeMarkers.icon(\n",
" {"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "red", "prefix": "glyphicon"}\n",
" );\n",
- " marker_ad291b2a1153ddde31226684292c70f8.setIcon(icon_2146c5f97fa33853706e3b8df48854e2);\n",
+ " marker_6dc3a4dd605a0a9c3318851438763613.setIcon(icon_f92d64fdeaa949ccc60f6093cce064ba);\n",
" \n",
" \n",
- " var popup_4555be46e4980921b1a406f11ca0c41c = L.popup({"maxWidth": "100%"});\n",
+ " var popup_61f1df319d30d3b3e3f4e1c6e8d54820 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_14dd5bcded6bcfa011783c6e5b62c8c7 = $(`<div id="html_14dd5bcded6bcfa011783c6e5b62c8c7" style="width: 100.0%; height: 100.0%;">Cove Cafe 4 stars</div>`)[0];\n",
- " popup_4555be46e4980921b1a406f11ca0c41c.setContent(html_14dd5bcded6bcfa011783c6e5b62c8c7);\n",
+ " var html_1619d5d4b0f3cfa219434039ff2ff5d1 = $(`<div id="html_1619d5d4b0f3cfa219434039ff2ff5d1" style="width: 100.0%; height: 100.0%;">Panini 3.5 stars</div>`)[0];\n",
+ " popup_61f1df319d30d3b3e3f4e1c6e8d54820.setContent(html_1619d5d4b0f3cfa219434039ff2ff5d1);\n",
" \n",
" \n",
"\n",
- " marker_ad291b2a1153ddde31226684292c70f8.bindPopup(popup_4555be46e4980921b1a406f11ca0c41c)\n",
+ " marker_6dc3a4dd605a0a9c3318851438763613.bindPopup(popup_61f1df319d30d3b3e3f4e1c6e8d54820)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_da6b7d4d1f97ddb6b9adc9f825b9f890 = L.marker(\n",
- " [37.770036, -122.44629],\n",
+ " var marker_4b41a9fd3a86e08c61e45e6ad8822454 = L.marker(\n",
+ " [37.772058, -122.431702],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var icon_16efc9ea4982049d1628649d08331449 = L.AwesomeMarkers.icon(\n",
+ " var icon_9011f76b26dc1c1f2ad2f1d4e1d7c219 = L.AwesomeMarkers.icon(\n",
" {"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "red", "prefix": "glyphicon"}\n",
" );\n",
- " marker_da6b7d4d1f97ddb6b9adc9f825b9f890.setIcon(icon_16efc9ea4982049d1628649d08331449);\n",
+ " marker_4b41a9fd3a86e08c61e45e6ad8822454.setIcon(icon_9011f76b26dc1c1f2ad2f1d4e1d7c219);\n",
" \n",
" \n",
- " var popup_e0d3dd037ec982596b3bae3c09665f0a = L.popup({"maxWidth": "100%"});\n",
+ " var popup_85b89073ee7ab0eae252ccbdb9110f7d = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_9cf81ec05067fce006148012a65cecf6 = $(`<div id="html_9cf81ec05067fce006148012a65cecf6" style="width: 100.0%; height: 100.0%;">Panini 3.5 stars</div>`)[0];\n",
- " popup_e0d3dd037ec982596b3bae3c09665f0a.setContent(html_9cf81ec05067fce006148012a65cecf6);\n",
+ " var html_431ba841d09f70bd21c2a56480950c86 = $(`<div id="html_431ba841d09f70bd21c2a56480950c86" style="width: 100.0%; height: 100.0%;">Memphis Minnies BBQ Joint 3.5 stars</div>`)[0];\n",
+ " popup_85b89073ee7ab0eae252ccbdb9110f7d.setContent(html_431ba841d09f70bd21c2a56480950c86);\n",
" \n",
" \n",
"\n",
- " marker_da6b7d4d1f97ddb6b9adc9f825b9f890.bindPopup(popup_e0d3dd037ec982596b3bae3c09665f0a)\n",
+ " marker_4b41a9fd3a86e08c61e45e6ad8822454.bindPopup(popup_85b89073ee7ab0eae252ccbdb9110f7d)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_1861d48c0ff405551fd9be280649ddd9 = L.marker(\n",
- " [37.783008, -122.460684],\n",
+ " var marker_cb162f901738f17642100a25d485c432 = L.marker(\n",
+ " [37.764279, -122.433357],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var icon_1b234e3e7e0775c82336145b038adbdf = L.AwesomeMarkers.icon(\n",
+ " var icon_f2920c6e63aceb49c49a6a833625f628 = L.AwesomeMarkers.icon(\n",
" {"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "red", "prefix": "glyphicon"}\n",
" );\n",
- " marker_1861d48c0ff405551fd9be280649ddd9.setIcon(icon_1b234e3e7e0775c82336145b038adbdf);\n",
+ " marker_cb162f901738f17642100a25d485c432.setIcon(icon_f2920c6e63aceb49c49a6a833625f628);\n",
" \n",
" \n",
- " var popup_b3b54df43b51b0376c1f8e2907e47758 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_4d8969e8949f271bd5b89359fbccb486 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_6623be02a219f3bad63649bdb2da11f0 = $(`<div id="html_6623be02a219f3bad63649bdb2da11f0" style="width: 100.0%; height: 100.0%;">B Star Cafe 4.5 stars</div>`)[0];\n",
- " popup_b3b54df43b51b0376c1f8e2907e47758.setContent(html_6623be02a219f3bad63649bdb2da11f0);\n",
+ " var html_ccb223603cc1f40156a924328fbe354b = $(`<div id="html_ccb223603cc1f40156a924328fbe354b" style="width: 100.0%; height: 100.0%;">Squat and Gobble Cafe 3.5 stars</div>`)[0];\n",
+ " popup_4d8969e8949f271bd5b89359fbccb486.setContent(html_ccb223603cc1f40156a924328fbe354b);\n",
" \n",
" \n",
"\n",
- " marker_1861d48c0ff405551fd9be280649ddd9.bindPopup(popup_b3b54df43b51b0376c1f8e2907e47758)\n",
+ " marker_cb162f901738f17642100a25d485c432.bindPopup(popup_4d8969e8949f271bd5b89359fbccb486)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_d9fc6e7b496b9374d22c838051f70109 = L.marker(\n",
+ " var marker_bdb7435509bbb311cec7f1bc8465c533 = L.marker(\n",
" [37.782872, -122.419023],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var icon_065686cbd27028e7330f02bbc907a4c8 = L.AwesomeMarkers.icon(\n",
+ " var icon_3f4a9c454137fe927b0ac07aca56d0f6 = L.AwesomeMarkers.icon(\n",
" {"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "red", "prefix": "glyphicon"}\n",
" );\n",
- " marker_d9fc6e7b496b9374d22c838051f70109.setIcon(icon_065686cbd27028e7330f02bbc907a4c8);\n",
+ " marker_bdb7435509bbb311cec7f1bc8465c533.setIcon(icon_3f4a9c454137fe927b0ac07aca56d0f6);\n",
" \n",
" \n",
- " var popup_8ba89d38f57e16fe687f47aa37df4396 = L.popup({"maxWidth": "100%"});\n",
+ " var popup_4af616a34ad45e304b974a6a628f3d62 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_a3971c85af9a118d3d3f8d9363e9a970 = $(`<div id="html_a3971c85af9a118d3d3f8d9363e9a970" style="width: 100.0%; height: 100.0%;">Brenda's French Soul Food 4.5 stars</div>`)[0];\n",
- " popup_8ba89d38f57e16fe687f47aa37df4396.setContent(html_a3971c85af9a118d3d3f8d9363e9a970);\n",
+ " var html_fbd9e95e593e378bf04604cc4a9fae6e = $(`<div id="html_fbd9e95e593e378bf04604cc4a9fae6e" style="width: 100.0%; height: 100.0%;">Brenda's French Soul Food 4.5 stars</div>`)[0];\n",
+ " popup_4af616a34ad45e304b974a6a628f3d62.setContent(html_fbd9e95e593e378bf04604cc4a9fae6e);\n",
" \n",
" \n",
"\n",
- " marker_d9fc6e7b496b9374d22c838051f70109.bindPopup(popup_8ba89d38f57e16fe687f47aa37df4396)\n",
+ " marker_bdb7435509bbb311cec7f1bc8465c533.bindPopup(popup_4af616a34ad45e304b974a6a628f3d62)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
- " var marker_172620f4b05cfd1adc0996bbf98d07b4 = L.marker(\n",
- " [37.783914, -122.417772],\n",
+ " var marker_3719b487117e60576a7ddda40a803d22 = L.marker(\n",
+ " [37.770276, -122.445238],\n",
" {}\n",
- " ).addTo(map_9d8ebd90d11293693f178e7701f744c4);\n",
+ " ).addTo(map_9cdc89c58cb07ccb06d4c5a7a630999a);\n",
" \n",
" \n",
- " var icon_ef7fb9aa634ee7cfc45393a84888dbac = L.AwesomeMarkers.icon(\n",
+ " var icon_7bdf0390caf91587169002841a157ca4 = L.AwesomeMarkers.icon(\n",
" {"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "red", "prefix": "glyphicon"}\n",
" );\n",
- " marker_172620f4b05cfd1adc0996bbf98d07b4.setIcon(icon_ef7fb9aa634ee7cfc45393a84888dbac);\n",
+ " marker_3719b487117e60576a7ddda40a803d22.setIcon(icon_7bdf0390caf91587169002841a157ca4);\n",
" \n",
" \n",
- " var popup_360cd2b9adf173bb369b2b7678316a7e = L.popup({"maxWidth": "100%"});\n",
+ " var popup_2615eacf3fd05818c5df896f69c601fe = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
- " var html_df7ea79b2e77083b76c4d56dc5058bbf = $(`<div id="html_df7ea79b2e77083b76c4d56dc5058bbf" style="width: 100.0%; height: 100.0%;">Pho 2000 4 stars</div>`)[0];\n",
- " popup_360cd2b9adf173bb369b2b7678316a7e.setContent(html_df7ea79b2e77083b76c4d56dc5058bbf);\n",
+ " var html_970421ad74265da49b18a306ec1f4ae9 = $(`<div id="html_970421ad74265da49b18a306ec1f4ae9" style="width: 100.0%; height: 100.0%;">Magnolia Pub and Brewery 4 stars</div>`)[0];\n",
+ " popup_2615eacf3fd05818c5df896f69c601fe.setContent(html_970421ad74265da49b18a306ec1f4ae9);\n",
" \n",
" \n",
"\n",
- " marker_172620f4b05cfd1adc0996bbf98d07b4.bindPopup(popup_360cd2b9adf173bb369b2b7678316a7e)\n",
+ " marker_3719b487117e60576a7ddda40a803d22.bindPopup(popup_2615eacf3fd05818c5df896f69c601fe)\n",
" ;\n",
"\n",
" \n",
@@ -4971,7 +5034,7 @@
"</html>\" width=\"700\" height=\"600\"style=\"border:none !important;\" \"allowfullscreen\" \"webkitallowfullscreen\" \"mozallowfullscreen\">"
],
"text/plain": [
- ""
+ ""
]
},
"metadata": {},
@@ -4980,7 +5043,6 @@
],
"source": [
"import folium\n",
- "import clipboard\n",
"from IPython.display import display\n",
"\n",
"# create a map centered around San Francisco\n",
@@ -5060,7 +5122,7 @@
},
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": 20,
"metadata": {},
"outputs": [
{
@@ -5076,7 +5138,7 @@
"1000"
]
},
- "execution_count": 21,
+ "execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}